chitfund/DEPLOYMENT.md

245 lines
4.5 KiB
Markdown

# 🚀 LuckyChit Deployment Guide
Complete production deployment guide.
---
## 📍 Production Setup
**Server IP**: 192.168.8.148
**Domain**: chitfund.deepteklabs.com
**User**: luckychit
**Project**: /home/luckychit/apps/chitfund
**Branch**: prodnew
---
## 🏗️ Architecture
```
Internet
Cloudflare (SSL, CDN)
Nginx Proxy (LXC 1)
Application Server (LXC 2: 192.168.8.148)
├── PM2: luckychit-api (Port 3000)
├── PM2: luckychit-frontend (Port 8080)
└── PostgreSQL (Port 5432)
```
---
## ⚡ Quick Deploy
```bash
ssh luckychit@192.168.8.148
cd /home/luckychit/apps/chitfund
./scripts/deploy.sh
```
### Deploy Options:
```bash
./scripts/deploy.sh # Deploy both backend + frontend
./scripts/deploy.sh backend # Backend only
./scripts/deploy.sh frontend # Frontend only
```
---
## 🔧 Manual Deployment
### Backend
```bash
cd /home/luckychit/apps/chitfund
git pull origin prodnew
cd backend
npm install
pm2 restart luckychit-api
pm2 logs luckychit-api --lines 20
```
### Frontend
```bash
cd /home/luckychit/apps/chitfund
git pull origin prodnew
cd luckychit
flutter pub get
flutter build web --release --pwa-strategy=none
pm2 restart luckychit-frontend
pm2 logs luckychit-frontend --lines 20
```
---
## 📊 PM2 Commands
```bash
pm2 status # Show all processes
pm2 logs # Live logs
pm2 logs luckychit-api # Backend logs
pm2 logs luckychit-frontend # Frontend logs
pm2 restart all # Restart everything
pm2 monit # Real-time monitoring
```
---
## 🗑️ Clear Caches (After Deployment)
### 1. Server Cache
```bash
pm2 restart all
```
### 2. Nginx Proxy Cache (if using separate LXC)
```bash
ssh root@<nginx-lxc-ip>
sudo rm -rf /var/cache/nginx/*
sudo systemctl reload nginx
```
### 3. Cloudflare Cache
- Login to Cloudflare dashboard
- Caching → Purge Everything
### 4. Browser Cache
```
Hard Refresh: Ctrl + Shift + R (Windows) or Cmd + Shift + R (Mac)
Or test in Incognito: Ctrl + Shift + N
```
---
## 🔥 Emergency: Complete Cache Clear
```bash
cd /home/luckychit/apps/chitfund
./scripts/deploy.sh --force
```
This will:
1. Clean all build caches
2. Rebuild from scratch
3. Restart all services
4. Clear nginx cache (if configured)
---
## 🗄️ Database Backup
### Manual Backup
```bash
./scripts/backup-db.sh
```
### Automated Daily Backup
```bash
# Add to crontab
crontab -e
# Add: 0 2 * * * /home/luckychit/apps/chitfund/scripts/backup-db.sh
```
### Restore from Backup
```bash
./scripts/restore-db.sh
```
---
## 🔍 Initial Server Setup (One-Time)
### 1. Install Dependencies
```bash
# Node.js, Flutter, PM2, PostgreSQL
# See PM2_PRODUCTION_GUIDE.md for details
```
### 2. Setup PM2
```bash
cd /home/luckychit/apps/chitfund/backend
pm2 start src/server.js --name luckychit-api
cd ../luckychit
pm2 serve build/web 8080 --name luckychit-frontend --spa
pm2 save
pm2 startup systemd -u luckychit --hp /home/luckychit
```
### 3. Configure Auto-start
```bash
pm2 startup
# Run the command it outputs
pm2 save
```
---
## 🔐 Security Checklist
- [ ] Firewall configured (ports 3000, 8080)
- [ ] Strong database password
- [ ] JWT secret set (32+ characters)
- [ ] SSL/TLS enabled (via Cloudflare)
- [ ] Database backups automated
- [ ] PM2 auto-start configured
---
## 📋 Pre-Deployment Checklist
- [ ] Changes tested locally
- [ ] Committed to git
- [ ] Pushed to `prodnew` branch
- [ ] Database migrations ready (if any)
- [ ] Backup recent (< 24 hours)
---
## 📋 Post-Deployment Checklist
- [ ] `pm2 status` shows all online
- [ ] No errors in `pm2 logs`
- [ ] Backend health check works: `curl http://localhost:3000/health`
- [ ] Frontend loads: `curl http://localhost:8080`
- [ ] Domain works: https://chitfund.deepteklabs.com
- [ ] Login works
- [ ] Clear browser cache tested
---
## 🆘 Troubleshooting
See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for common issues and fixes.
Quick diagnostics:
```bash
./scripts/diagnose.sh
```
---
## 📞 Emergency Contacts
**If everything is broken:**
```bash
./scripts/diagnose.sh # See what's wrong
./scripts/fix-502.sh # Fix 502 errors
pm2 restart all # Restart everything
```
---
## 📚 Additional Resources
- **PM2 Production Guide**: [PM2_PRODUCTION_GUIDE.md](PM2_PRODUCTION_GUIDE.md)
- **Quick Reference**: [QUICK_REFERENCE.md](QUICK_REFERENCE.md)
- **Backend API Docs**: [backend/API_DOCUMENTATION.md](backend/API_DOCUMENTATION.md)
---
**Last Updated**: November 2025