# 🔧 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! 🚀