194 lines
3.7 KiB
Markdown
194 lines
3.7 KiB
Markdown
# 🔧 Update API URL for Production
|
|
|
|
Your Flutter app is currently configured to use `localhost:3000` for API calls.
|
|
For production, you need to change it to your server IP: `192.168.8.148`
|
|
|
|
## 📝 File to Update
|
|
|
|
**File:** `luckychit/lib/core/services/api_service.dart`
|
|
|
|
**Line 5:** Change from:
|
|
```dart
|
|
static const String baseUrl = 'http://localhost:3000/api';
|
|
```
|
|
|
|
To:
|
|
```dart
|
|
static const String baseUrl = 'http://192.168.8.148:3000/api';
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Three Ways to Deploy
|
|
|
|
### Option 1: Automated Script (Recommended)
|
|
|
|
Upload `deploy-frontend.sh` to your server and run:
|
|
|
|
```bash
|
|
# On your server (as root)
|
|
cd /home/luckychit/apps/chitfund
|
|
chmod +x deploy-frontend.sh
|
|
./deploy-frontend.sh
|
|
```
|
|
|
|
This script will:
|
|
- ✅ Backup current files
|
|
- ✅ Update API URL automatically
|
|
- ✅ Build Flutter web app
|
|
- ✅ Deploy to Nginx
|
|
- ✅ Restore original file for future edits
|
|
|
|
---
|
|
|
|
### Option 2: Quick One-Liner
|
|
|
|
Upload `deploy-frontend-simple.sh` and run:
|
|
|
|
```bash
|
|
# On your server (as root)
|
|
chmod +x deploy-frontend-simple.sh
|
|
./deploy-frontend-simple.sh
|
|
```
|
|
|
|
---
|
|
|
|
### Option 3: Manual Steps
|
|
|
|
```bash
|
|
# 1. Update API URL
|
|
cd /home/luckychit/apps/chitfund/luckychit
|
|
nano lib/core/services/api_service.dart
|
|
# Change line 5 to: static const String baseUrl = 'http://192.168.8.148:3000/api';
|
|
|
|
# 2. Build
|
|
flutter pub get
|
|
flutter build web --release
|
|
|
|
# 3. Deploy
|
|
cp -r build/web/* /var/www/luckychit/
|
|
chown -R www-data:www-data /var/www/luckychit
|
|
```
|
|
|
|
---
|
|
|
|
## 🌐 Access Your App
|
|
|
|
After deployment:
|
|
- **Frontend:** http://192.168.8.148
|
|
- **API Health:** http://192.168.8.148:3000/health
|
|
- **API Base:** http://192.168.8.148:3000/api
|
|
|
|
---
|
|
|
|
## 🔄 Update Process
|
|
|
|
When you need to update the frontend:
|
|
|
|
```bash
|
|
# Pull latest code
|
|
cd /home/luckychit/apps/chitfund
|
|
git pull
|
|
|
|
# Run deployment script
|
|
cd luckychit
|
|
./deploy-frontend.sh
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ Important Notes
|
|
|
|
1. **Development vs Production:**
|
|
- Keep `localhost:3000` in your local code
|
|
- Only change to server IP when deploying to production
|
|
- The automated scripts handle this for you
|
|
|
|
2. **CORS Settings:**
|
|
- Your backend `.env` should already allow this IP
|
|
- Check: `ALLOWED_ORIGINS=http://192.168.8.148`
|
|
|
|
3. **Firewall:**
|
|
- Make sure port 80 (HTTP) is open
|
|
- Make sure port 3000 (API) is open
|
|
- Check: `sudo ufw status`
|
|
|
|
---
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Can't connect to API
|
|
```bash
|
|
# Check backend is running
|
|
pm2 status
|
|
|
|
# Test API directly
|
|
curl http://192.168.8.148:3000/health
|
|
|
|
# Check firewall
|
|
sudo ufw status | grep 3000
|
|
```
|
|
|
|
### Frontend shows blank page
|
|
```bash
|
|
# Check Nginx logs
|
|
sudo tail -f /var/log/nginx/error.log
|
|
|
|
# Check files deployed
|
|
ls -la /var/www/luckychit/
|
|
|
|
# Restart Nginx
|
|
sudo systemctl restart nginx
|
|
```
|
|
|
|
### API URL not updated
|
|
```bash
|
|
# Verify the change in built files
|
|
grep -r "192.168.8.148" /var/www/luckychit/
|
|
|
|
# If not found, rebuild and redeploy
|
|
cd /home/luckychit/apps/chitfund/luckychit
|
|
./deploy-frontend.sh
|
|
```
|
|
|
|
---
|
|
|
|
## 🔐 Production Best Practices
|
|
|
|
For production, consider:
|
|
|
|
1. **Use Environment Variables:**
|
|
Create a config file instead of hardcoding IPs
|
|
|
|
2. **Use Domain Name:**
|
|
Setup a domain and use it instead of IP
|
|
|
|
3. **Enable HTTPS:**
|
|
```bash
|
|
sudo apt install certbot python3-certbot-nginx
|
|
sudo certbot --nginx -d yourdomain.com
|
|
```
|
|
|
|
4. **Update API URL to domain:**
|
|
```dart
|
|
static const String baseUrl = 'https://api.yourdomain.com';
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Quick Reference
|
|
|
|
| Task | Command |
|
|
|------|---------|
|
|
| Deploy frontend | `./deploy-frontend.sh` |
|
|
| Quick deploy | `./deploy-frontend-simple.sh` |
|
|
| Check backend | `pm2 status` |
|
|
| View API logs | `pm2 logs luckychit-api` |
|
|
| Test API | `curl http://192.168.8.148:3000/health` |
|
|
| View web logs | `sudo tail -f /var/log/nginx/access.log` |
|
|
|
|
---
|
|
|
|
Good luck! 🚀
|
|
|