chitfund/URGENT_BACKEND_DEPLOY.md

170 lines
2.7 KiB
Markdown

# 🚨 URGENT: Deploy Backend Fix
## The Issue
Your **production backend is crashing** and returning 401 for all authenticated requests.
**Production server logs show:**
```
Error: Route.post() requires callback function but got [object Undefined]
at phonepe.js:11:8
```
---
## ✅ Quick Fix - Deploy to Production
### Option 1: Using Git (Recommended)
#### On Your Local Machine (Windows):
```bash
# 1. Commit the fixes
git add backend/src/
git add luckychit/lib/core/services/api_service.dart
git commit -m "Fix: Backend auth middleware and ApiService singleton"
git push origin main
```
#### On Your Production Server:
```bash
# SSH into server
ssh your_username@your_server_ip
# Navigate to app directory
cd /home/luckychit/apps/chitfund
# Pull latest code
git pull origin main
# Restart all services
pm2 restart all
# Watch logs to verify it starts
pm2 logs luckychit
```
Press **Ctrl+C** after you see "Server listening on port 3000"
---
### Option 2: Quick File Copy (if no git)
Copy just these files to production:
**Files to upload:**
1. `backend/src/middleware/auth.js`
2. `backend/src/controllers/phonePeController.js`
3. `backend/src/routes/phonepe.js`
4. `backend/src/server.js`
**Upload to:**
```
/home/luckychit/apps/chitfund/backend/src/...
```
Then:
```bash
pm2 restart all
```
---
### Option 3: Use Your Deploy Script
If you have existing deploy scripts:
```bash
cd backend
./deploy.sh
```
Or:
```bash
./scripts/deploy.sh
```
---
## ✅ How to Verify It's Fixed
### After deployment, check PM2 logs:
```bash
pm2 logs luckychit --lines 50
```
**Should see:**
```
✅ Server started successfully
✅ Database connected
✅ Listening on port 3000
```
**Should NOT see:**
```
❌ Error: Route.post() requires callback...
❌ [object Undefined]
```
### Then test from Flutter app:
1. Refresh browser (F5)
2. Login as manager
3. Go to Auto-Sync
4. Click "Sync Transactions"
5. Should work! ✅
---
## 📋 Deployment Checklist
- [ ] Committed changes locally
- [ ] Pushed to git repository (or uploaded files)
- [ ] SSH'd into production server
- [ ] Pulled latest code (`git pull`)
- [ ] Restarted PM2 (`pm2 restart all`)
- [ ] Checked logs (`pm2 logs luckychit`)
- [ ] Verified "Server listening" message
- [ ] Tested from Flutter app
- [ ] Auto-Sync now works! ✅
---
## 🐛 If Deployment Fails
### Check Git Status:
```bash
git status
git log --oneline -5
```
### Check PM2 Status:
```bash
pm2 status
pm2 logs luckychit --err --lines 30
```
### Manual Restart:
```bash
pm2 stop luckychit
pm2 start luckychit
```
---
## 💡 Need Help?
Tell me:
1. How do you currently deploy to production?
2. Do you have SSH access?
3. Do you use git on the server?
I'll provide exact commands for your setup!
---
**Deploy now to fix the 401 errors!** 🚀