262 lines
4.9 KiB
Markdown
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!** 🚀
|
|
|