chitfund/DEPLOY_TO_FIX_401.md

262 lines
4.9 KiB
Markdown

# 🚀 Deploy to Fix 401 Errors - Quick Guide
## ✅ Good News: Frontend is Fixed!
The Flutter app is NOW working perfectly:
- ✅ Token is being retrieved correctly
- ✅ Authorization header is being added
- ✅ Requests are sent properly
**Your console logs prove it:**
```
✅ Token found: true
✅ Authorization header added
✅ Request sent to backend
```
---
## 🚨 Problem: Production Backend is Broken
Your production server (`chitfund.deepteklabs.com`) has **old/broken code**:
```
Error: Route.post() requires a callback function but got [object Undefined]
at phonepe.js:11:8
```
The backend **crashes on startup** and can't handle any requests properly.
---
## 🎯 Solution: Deploy Updated Backend Files
### Method 1: Automated Deployment (Easiest)
Run this script:
```bash
./deploy-backend-fix.bat
```
Or on Linux/Mac:
```bash
chmod +x deploy-backend-fix.sh
./deploy-backend-fix.sh
```
This will:
1. ✅ Commit the fixed files
2. ✅ Push to your git repository
3. ✅ Show you commands to run on server
---
### Method 2: Manual Deployment
#### Step 1: Commit Changes Locally
```bash
cd C:\Users\sunde\workspace\chitfund
git add backend/src/middleware/auth.js
git add backend/src/controllers/phonePeController.js
git add backend/src/routes/phonepe.js
git add backend/src/server.js
git add luckychit/lib/core/services/api_service.dart
git commit -m "Fix: Auth middleware, singleton ApiService, UPI settings"
git push origin main
```
#### Step 2: SSH to Production Server
```bash
ssh your_username@chitfund.deepteklabs.com
```
#### Step 3: Pull and Restart
```bash
cd /home/luckychit/apps/chitfund
# Pull latest code
git pull origin main
# Restart backend
pm2 restart all
# Watch logs to verify it starts
pm2 logs luckychit --lines 50
```
---
## ✅ What to Look For After Deploy
### In PM2 Logs, You Should See:
**Success (Backend starts properly):**
```
✅ LuckyChit API is running
✅ Database connected
✅ Server listening on port 3000
```
**And when you test Auto-Sync:**
```
🔐 [Auth] Authenticating request: GET /api/transaction-sync/review-queue
🔐 [Auth] Authorization header present: true
🔐 [Auth] Token received, verifying...
✅ [Auth] Token verified successfully
✅ [Auth] User found: Your Name
✅ [Auth] Authentication successful
```
---
## 🐛 If You Don't Have Git Access to Server
### Alternative: Direct File Upload
Upload these files via FTP/SFTP to your server:
**Local → Server:**
1. `backend/src/middleware/auth.js`
`/home/luckychit/apps/chitfund/backend/src/middleware/auth.js`
2. `backend/src/controllers/phonePeController.js`
`/home/luckychit/apps/chitfund/backend/src/controllers/phonePeController.js`
3. `backend/src/routes/phonepe.js`
`/home/luckychit/apps/chitfund/backend/src/routes/phonepe.js`
4. `backend/src/server.js`
`/home/luckychit/apps/chitfund/backend/src/server.js`
Then restart PM2:
```bash
pm2 restart all
```
---
## 📊 Current Status
| Component | Status | Issue |
|-----------|--------|-------|
| **Flutter App** | ✅ **FIXED** | Singleton pattern working |
| **Authorization Header** | ✅ **WORKING** | Being sent correctly |
| **Token Management** | ✅ **WORKING** | Token found and used |
| **Production Backend** | ❌ **BROKEN** | Has old code, crashes on startup |
---
## 🎯 What Will Happen After Deploy
### Before (Current State):
```
Flutter → Sends request with Auth header ✅
Production Backend (crashed/old code) ❌
Returns 401 or error
```
### After Deploy:
```
Flutter → Sends request with Auth header ✅
Production Backend (new code, working) ✅
Verifies token ✅
Returns data ✅
```
---
## ⚡ Quick Deploy Command
If you have your deployment set up:
```bash
# From local machine
./deploy-backend-fix.bat
# Then SSH to server
ssh your_server
cd /home/luckychit/apps/chitfund
git pull
pm2 restart all
```
---
## 📋 Verification After Deploy
### 1. Check Backend Starts
```bash
pm2 logs luckychit --lines 20
```
Should show:
```
✅ Server listening on port 3000
✅ Database connected
```
### 2. Test from Flutter App
1. Refresh browser (F5)
2. Go to Auto-Sync page
3. Click "Sync Transactions"
4. Should work! ✅
### 3. Check Backend Logs
```bash
pm2 logs luckychit --lines 50
```
Should show:
```
🔐 [Auth] Authenticating request...
✅ [Auth] Authentication successful
```
---
## 💡 Summary
**Problem:** Production backend has old code and crashes
**Solution:** Deploy updated files to production
**How:** Run `deploy-backend-fix.bat` and follow instructions
**Once deployed:**
- ✅ Backend will start properly
- ✅ Auth will work correctly
- ✅ 401 errors will be gone
- ✅ Auto-Sync will work!
---
## 🚀 Do This Now
```bash
./deploy-backend-fix.bat
```
Then SSH to server and:
```bash
cd /home/luckychit/apps/chitfund
git pull
pm2 restart all
```
**That's it!** 🎉
---
**Need help with deployment? Let me know and I can guide you through it!** 🚀