170 lines
2.7 KiB
Markdown
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!** 🚀
|
|
|