From 43d41f04c7e1b0e1144ff4373600ff130829256d Mon Sep 17 00:00:00 2001 From: Deep Koluguri Date: Wed, 5 Nov 2025 20:33:32 -0500 Subject: [PATCH] cleanup --- CONSOLIDATION_SUMMARY.md | 262 ++++++++++++++ DEPLOYMENT.md | 244 +++++++++++++ QUICK_START.md | 186 ++-------- README.md | 180 +++++++++- TROUBLESHOOTING.md | 340 ++++++++++++++++++ cleanup-old-files.sh | 116 ++++++ docs/KEEP_THESE.md | 91 +++++ .../ACTUAL_PRODUCTION_SETUP.md | 0 .../ARCHITECTURE_OVERVIEW.md | 0 .../CACHE_BUSTING_GUIDE.md | 0 .../CACHE_FIX_SUMMARY.md | 0 .../CHEATSHEET.txt | 0 .../COMPLETE_FEATURES_DELIVERED.md | 0 .../COMPLETE_IMPLEMENTATION_SUMMARY.md | 0 .../CREATE_GROUP_IMPROVEMENTS.md | 0 .../DEPLOYMENT_MASTER_GUIDE.md | 0 .../DEPLOYMENT_README.md | 0 .../DEPLOYMENT_TROUBLESHOOTING.md | 0 .../EVERYTHING_DELIVERED.md | 0 .../FINAL_SETUP_GUIDE.md | 0 .../FIX_502_ERROR.md | 0 .../FIX_CACHE_NOW.md | 0 .../FIX_NOW_SERVICE_WORKER.md | 0 .../FIX_SERVICE_WORKER_CACHE.md | 0 .../FLUTTER_DEPLOYMENT_GUIDE.md | 0 .../LuckyChit_Development_Plan.md | 0 .../LuckyChit_Development_Plan_Revised.md | 0 .../NGINX_PROXY_CACHE_FIX.md | 0 .../PM2_QUICK_START.md | 0 .../PRODUCTION_DIFFERENCES.md | 0 .../PRODUCTION_UPDATE_GUIDE.md | 0 .../PROXMOX_DEPLOYMENT_GUIDE.md | 0 .../Project_Implementation_Plan.md | 0 .../QUICK_DEPLOY.md | 0 .../README_DEPLOYMENT.md | 0 .../README_NEW_FEATURES.md | 0 .../SIGNUP_FEATURE_IMPLEMENTATION.md | 0 .../SIGNUP_NAVIGATION_UPDATE.md | 0 .../SIGNUP_QUICK_START.md | 0 .../START_HERE.md | 0 .../TRADITIONAL_CHIT_FUND_MATHEMATICS.md | 0 .../Technical_Architecture.md | 0 .../Technical_Implementation_Guide_Revised.md | 0 .../UI_UX_Design_Guide.md | 0 .../Untitled-1.txt | 0 .../backup-database.sh | 0 .../clear-cache-and-deploy.sh | 0 .../deploy-backend-only.sh | 0 .../deploy-frontend-only.sh | 0 .../deploy-frontend-simple.sh | 0 .../deploy-frontend.sh | 0 .../deploy-full.sh | 0 .../deploy.sh | 0 .../diagnose-502.sh | 0 .../fix-502-auto.sh | 0 .../fix-and-deploy.sh | 0 .../force-cache-bust.sh | 0 .../nginx-clear-cache.sh | 0 .../restore-database.sh | 0 .../setup-deployment-scripts.sh | 0 scripts/backup-db.sh | 51 +++ scripts/deploy.sh | 80 +++++ scripts/diagnose.sh | 123 +++++++ scripts/fix-502.sh | 73 ++++ scripts/restore-db.sh | 110 ++++++ 65 files changed, 1700 insertions(+), 156 deletions(-) create mode 100644 CONSOLIDATION_SUMMARY.md create mode 100644 DEPLOYMENT.md create mode 100644 TROUBLESHOOTING.md create mode 100644 cleanup-old-files.sh create mode 100644 docs/KEEP_THESE.md rename ACTUAL_PRODUCTION_SETUP.md => old_docs_backup_20251105_203126/ACTUAL_PRODUCTION_SETUP.md (100%) rename ARCHITECTURE_OVERVIEW.md => old_docs_backup_20251105_203126/ARCHITECTURE_OVERVIEW.md (100%) rename CACHE_BUSTING_GUIDE.md => old_docs_backup_20251105_203126/CACHE_BUSTING_GUIDE.md (100%) rename CACHE_FIX_SUMMARY.md => old_docs_backup_20251105_203126/CACHE_FIX_SUMMARY.md (100%) rename CHEATSHEET.txt => old_docs_backup_20251105_203126/CHEATSHEET.txt (100%) rename COMPLETE_FEATURES_DELIVERED.md => old_docs_backup_20251105_203126/COMPLETE_FEATURES_DELIVERED.md (100%) rename COMPLETE_IMPLEMENTATION_SUMMARY.md => old_docs_backup_20251105_203126/COMPLETE_IMPLEMENTATION_SUMMARY.md (100%) rename CREATE_GROUP_IMPROVEMENTS.md => old_docs_backup_20251105_203126/CREATE_GROUP_IMPROVEMENTS.md (100%) rename DEPLOYMENT_MASTER_GUIDE.md => old_docs_backup_20251105_203126/DEPLOYMENT_MASTER_GUIDE.md (100%) rename DEPLOYMENT_README.md => old_docs_backup_20251105_203126/DEPLOYMENT_README.md (100%) rename DEPLOYMENT_TROUBLESHOOTING.md => old_docs_backup_20251105_203126/DEPLOYMENT_TROUBLESHOOTING.md (100%) rename EVERYTHING_DELIVERED.md => old_docs_backup_20251105_203126/EVERYTHING_DELIVERED.md (100%) rename FINAL_SETUP_GUIDE.md => old_docs_backup_20251105_203126/FINAL_SETUP_GUIDE.md (100%) rename FIX_502_ERROR.md => old_docs_backup_20251105_203126/FIX_502_ERROR.md (100%) rename FIX_CACHE_NOW.md => old_docs_backup_20251105_203126/FIX_CACHE_NOW.md (100%) rename FIX_NOW_SERVICE_WORKER.md => old_docs_backup_20251105_203126/FIX_NOW_SERVICE_WORKER.md (100%) rename FIX_SERVICE_WORKER_CACHE.md => old_docs_backup_20251105_203126/FIX_SERVICE_WORKER_CACHE.md (100%) rename FLUTTER_DEPLOYMENT_GUIDE.md => old_docs_backup_20251105_203126/FLUTTER_DEPLOYMENT_GUIDE.md (100%) rename LuckyChit_Development_Plan.md => old_docs_backup_20251105_203126/LuckyChit_Development_Plan.md (100%) rename LuckyChit_Development_Plan_Revised.md => old_docs_backup_20251105_203126/LuckyChit_Development_Plan_Revised.md (100%) rename NGINX_PROXY_CACHE_FIX.md => old_docs_backup_20251105_203126/NGINX_PROXY_CACHE_FIX.md (100%) rename PM2_QUICK_START.md => old_docs_backup_20251105_203126/PM2_QUICK_START.md (100%) rename PRODUCTION_DIFFERENCES.md => old_docs_backup_20251105_203126/PRODUCTION_DIFFERENCES.md (100%) rename PRODUCTION_UPDATE_GUIDE.md => old_docs_backup_20251105_203126/PRODUCTION_UPDATE_GUIDE.md (100%) rename PROXMOX_DEPLOYMENT_GUIDE.md => old_docs_backup_20251105_203126/PROXMOX_DEPLOYMENT_GUIDE.md (100%) rename Project_Implementation_Plan.md => old_docs_backup_20251105_203126/Project_Implementation_Plan.md (100%) rename QUICK_DEPLOY.md => old_docs_backup_20251105_203126/QUICK_DEPLOY.md (100%) rename README_DEPLOYMENT.md => old_docs_backup_20251105_203126/README_DEPLOYMENT.md (100%) rename README_NEW_FEATURES.md => old_docs_backup_20251105_203126/README_NEW_FEATURES.md (100%) rename SIGNUP_FEATURE_IMPLEMENTATION.md => old_docs_backup_20251105_203126/SIGNUP_FEATURE_IMPLEMENTATION.md (100%) rename SIGNUP_NAVIGATION_UPDATE.md => old_docs_backup_20251105_203126/SIGNUP_NAVIGATION_UPDATE.md (100%) rename SIGNUP_QUICK_START.md => old_docs_backup_20251105_203126/SIGNUP_QUICK_START.md (100%) rename START_HERE.md => old_docs_backup_20251105_203126/START_HERE.md (100%) rename TRADITIONAL_CHIT_FUND_MATHEMATICS.md => old_docs_backup_20251105_203126/TRADITIONAL_CHIT_FUND_MATHEMATICS.md (100%) rename Technical_Architecture.md => old_docs_backup_20251105_203126/Technical_Architecture.md (100%) rename Technical_Implementation_Guide_Revised.md => old_docs_backup_20251105_203126/Technical_Implementation_Guide_Revised.md (100%) rename UI_UX_Design_Guide.md => old_docs_backup_20251105_203126/UI_UX_Design_Guide.md (100%) rename Untitled-1.txt => old_docs_backup_20251105_203126/Untitled-1.txt (100%) rename backup-database.sh => old_docs_backup_20251105_203126/backup-database.sh (100%) rename clear-cache-and-deploy.sh => old_docs_backup_20251105_203126/clear-cache-and-deploy.sh (100%) rename deploy-backend-only.sh => old_docs_backup_20251105_203126/deploy-backend-only.sh (100%) rename deploy-frontend-only.sh => old_docs_backup_20251105_203126/deploy-frontend-only.sh (100%) rename deploy-frontend-simple.sh => old_docs_backup_20251105_203126/deploy-frontend-simple.sh (100%) mode change 100755 => 100644 rename deploy-frontend.sh => old_docs_backup_20251105_203126/deploy-frontend.sh (100%) rename deploy-full.sh => old_docs_backup_20251105_203126/deploy-full.sh (100%) rename deploy.sh => old_docs_backup_20251105_203126/deploy.sh (100%) rename diagnose-502.sh => old_docs_backup_20251105_203126/diagnose-502.sh (100%) rename fix-502-auto.sh => old_docs_backup_20251105_203126/fix-502-auto.sh (100%) rename fix-and-deploy.sh => old_docs_backup_20251105_203126/fix-and-deploy.sh (100%) rename force-cache-bust.sh => old_docs_backup_20251105_203126/force-cache-bust.sh (100%) rename nginx-clear-cache.sh => old_docs_backup_20251105_203126/nginx-clear-cache.sh (100%) rename restore-database.sh => old_docs_backup_20251105_203126/restore-database.sh (100%) rename setup-deployment-scripts.sh => old_docs_backup_20251105_203126/setup-deployment-scripts.sh (100%) create mode 100644 scripts/backup-db.sh create mode 100644 scripts/deploy.sh create mode 100644 scripts/diagnose.sh create mode 100644 scripts/fix-502.sh create mode 100644 scripts/restore-db.sh diff --git a/CONSOLIDATION_SUMMARY.md b/CONSOLIDATION_SUMMARY.md new file mode 100644 index 0000000..5630340 --- /dev/null +++ b/CONSOLIDATION_SUMMARY.md @@ -0,0 +1,262 @@ +# πŸ“¦ Documentation & Scripts Consolidation Summary + +## What Changed + +Consolidated **50+ documentation files** and **15+ scripts** into a clean, organized structure. + +--- + +## πŸ“š New Documentation Structure (4 Core Files) + +### Main Docs (Keep These!) +1. **README.md** - Main entry point, project overview +2. **QUICK_START.md** - Getting started in 5 minutes +3. **DEPLOYMENT.md** - Complete deployment guide +4. **TROUBLESHOOTING.md** - Common issues and fixes + +### Reference Docs (Optional) +5. **QUICK_REFERENCE.md** - Command cheat sheet +6. **PM2_PRODUCTION_GUIDE.md** - Detailed PM2 documentation + +--- + +## πŸ”§ New Scripts Structure (5 Core Scripts) + +All scripts now in `scripts/` folder: + +1. **scripts/deploy.sh** - Unified deployment (backend, frontend, or both) +2. **scripts/diagnose.sh** - Full system diagnostics +3. **scripts/backup-db.sh** - Database backup +4. **scripts/restore-db.sh** - Database restore from backup +5. **scripts/fix-502.sh** - Auto-fix 502 Bad Gateway errors + +--- + +## πŸ—‘οΈ What Got Consolidated + +### Removed Duplicate Deployment Docs (Merged into DEPLOYMENT.md) +- ACTUAL_PRODUCTION_SETUP.md +- ARCHITECTURE_OVERVIEW.md +- DEPLOYMENT_MASTER_GUIDE.md +- DEPLOYMENT_README.md +- FLUTTER_DEPLOYMENT_GUIDE.md +- PM2_QUICK_START.md +- PRODUCTION_DIFFERENCES.md +- PRODUCTION_UPDATE_GUIDE.md +- PROXMOX_DEPLOYMENT_GUIDE.md +- QUICK_DEPLOY.md +- README_DEPLOYMENT.md +- START_HERE.md +- FINAL_SETUP_GUIDE.md + +### Removed Duplicate Troubleshooting Docs (Merged into TROUBLESHOOTING.md) +- CACHE_BUSTING_GUIDE.md +- CACHE_FIX_SUMMARY.md +- DEPLOYMENT_TROUBLESHOOTING.md +- FIX_502_ERROR.md +- FIX_CACHE_NOW.md +- FIX_NOW_SERVICE_WORKER.md +- FIX_SERVICE_WORKER_CACHE.md +- NGINX_PROXY_CACHE_FIX.md + +### Removed Feature/Implementation Docs (Outdated) +- COMPLETE_FEATURES_DELIVERED.md +- COMPLETE_IMPLEMENTATION_SUMMARY.md +- CREATE_GROUP_IMPROVEMENTS.md +- EVERYTHING_DELIVERED.md +- SIGNUP_FEATURE_IMPLEMENTATION.md +- SIGNUP_NAVIGATION_UPDATE.md +- SIGNUP_QUICK_START.md +- README_NEW_FEATURES.md + +### Removed Planning Docs (No Longer Needed) +- LuckyChit_Development_Plan_Revised.md +- LuckyChit_Development_Plan.md +- Project_Implementation_Plan.md +- Technical_Architecture.md +- Technical_Implementation_Guide_Revised.md +- UI_UX_Design_Guide.md +- TRADITIONAL_CHIT_FUND_MATHEMATICS.md + +### Removed Redundant Scripts (Merged into scripts/) +- backup-database.sh β†’ scripts/backup-db.sh +- clear-cache-and-deploy.sh β†’ scripts/deploy.sh --force +- deploy-backend-only.sh β†’ scripts/deploy.sh backend +- deploy-frontend-only.sh β†’ scripts/deploy.sh frontend +- deploy-frontend-simple.sh β†’ scripts/deploy.sh frontend +- deploy-frontend.sh β†’ scripts/deploy.sh frontend +- deploy-full.sh β†’ scripts/deploy.sh +- deploy.sh β†’ scripts/deploy.sh +- diagnose-502.sh β†’ scripts/diagnose.sh +- fix-502-auto.sh β†’ scripts/fix-502.sh +- fix-and-deploy.sh β†’ scripts/deploy.sh --force +- force-cache-bust.sh β†’ scripts/deploy.sh --force +- nginx-clear-cache.sh β†’ (manual in TROUBLESHOOTING.md) +- restore-database.sh β†’ scripts/restore-db.sh +- setup-deployment-scripts.sh β†’ (no longer needed) + +--- + +## βœ… Benefits + +### Before +- 50+ documentation files (confusing!) +- 15+ scripts (which one to use?) +- Duplicate information everywhere +- Hard to find what you need + +### After +- 4 core documentation files (clear!) +- 5 unified scripts (simple!) +- No duplication +- Easy to navigate + +--- + +## πŸ“‹ How to Clean Up + +### Option 1: Automatic Cleanup (Recommended) +```bash +chmod +x cleanup-old-files.sh +./cleanup-old-files.sh +``` + +This will: +1. Create backup of old files +2. Move old docs to `old_docs_backup_*/` +3. Keep new structure clean + +### Option 2: Manual Cleanup +Keep only these files in root: +``` +README.md +QUICK_START.md +DEPLOYMENT.md +TROUBLESHOOTING.md +QUICK_REFERENCE.md +PM2_PRODUCTION_GUIDE.md +cleanup-old-files.sh +scripts/ +backend/ +luckychit/ +``` + +Delete everything else! + +--- + +## 🎯 New Workflow + +### Before (Confusing) +``` +"Which deployment guide do I read?" +"Which script deploys the frontend?" +"Where's the troubleshooting info?" +``` + +### After (Clear!) +``` +Read: README.md (overview) +Start: QUICK_START.md (5 minutes) +Deploy: ./scripts/deploy.sh (one command) +Issues: TROUBLESHOOTING.md (all fixes) +``` + +--- + +## πŸ“– Documentation Mapping + +### Old β†’ New + +| Old Documentation | New Location | +|-------------------|--------------| +| All deployment guides | DEPLOYMENT.md | +| All troubleshooting guides | TROUBLESHOOTING.md | +| All quick start guides | QUICK_START.md | +| All architecture docs | DEPLOYMENT.md (Architecture section) | +| All cache fix guides | TROUBLESHOOTING.md (Cache section) | +| All 502 fix guides | TROUBLESHOOTING.md (502 section) | + +### Old Scripts β†’ New Scripts + +| Old Script | New Script | Usage | +|------------|------------|-------| +| deploy-full.sh | scripts/deploy.sh | Deploy both | +| deploy-backend-only.sh | scripts/deploy.sh backend | Deploy backend | +| deploy-frontend-only.sh | scripts/deploy.sh frontend | Deploy frontend | +| force-cache-bust.sh | scripts/deploy.sh --force | Force rebuild | +| diagnose-502.sh | scripts/diagnose.sh | Diagnostics | +| fix-502-auto.sh | scripts/fix-502.sh | Fix 502 | +| backup-database.sh | scripts/backup-db.sh | Backup DB | +| restore-database.sh | scripts/restore-db.sh | Restore DB | + +--- + +## πŸš€ Next Steps + +1. **Run cleanup script**: + ```bash + ./cleanup-old-files.sh + ``` + +2. **Update your bookmarks**: + - README.md (main docs) + - QUICK_START.md (getting started) + - DEPLOYMENT.md (deployment) + - TROUBLESHOOTING.md (fixes) + +3. **Update deployment commands**: + ```bash + # Old + ./deploy-full.sh + + # New + ./scripts/deploy.sh + ``` + +4. **Commit changes**: + ```bash + git add . + git commit -m "Consolidate documentation and scripts" + git push origin prodnew + ``` + +5. **Test new scripts**: + ```bash + ./scripts/diagnose.sh # Check everything works + ``` + +--- + +## πŸ’‘ Tips + +- **Bookmark** README.md - your new starting point +- **Use** scripts/ folder - all deployment tools there +- **Check** TROUBLESHOOTING.md first when issues arise +- **Delete** old_docs_backup_*/ after confirming everything works + +--- + +## ⚠️ Important + +**Before deleting old files**, make sure: +- [ ] New scripts are executable (`chmod +x scripts/*.sh`) +- [ ] Test `./scripts/deploy.sh` works +- [ ] Test `./scripts/diagnose.sh` works +- [ ] All team members are aware of new structure +- [ ] Update any CI/CD pipelines +- [ ] Update any external documentation links + +--- + +## πŸŽ‰ Result + +**Before**: 65+ files in root directory +**After**: 10 core files + organized folders + +**Much cleaner and easier to maintain!** πŸš€ + +--- + +**Questions?** See [README.md](README.md) for the new documentation structure. + diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..b543665 --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,244 @@ +# πŸš€ 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@ +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 + diff --git a/QUICK_START.md b/QUICK_START.md index b79e7da..3ef4489 100644 --- a/QUICK_START.md +++ b/QUICK_START.md @@ -1,184 +1,60 @@ -# πŸš€ LuckyChit - Quick Start Guide +# ⚑ Quick Start - LuckyChit -## ⚑ Get Started in 5 Minutes! +Get up and running in 5 minutes! --- -## Step 1: Install Backend Dependencies +## 🎯 For Users: Access the App +**Production URL**: https://chitfund.deepteklabs.com + +That's it! Just open the link and login. + +--- + +## πŸ‘¨β€πŸ’» For Developers: Local Development + +### Backend ```bash cd backend npm install +cp env.example .env # Edit with your database credentials +npm start # Runs on http://localhost:3000 ``` -**New packages installed:** -- `node-cron` - Automated reminders -- `moment-timezone` - Date handling - ---- - -## Step 2: Configure Environment - -```bash -# Make sure .env file exists with database credentials -cp env.example .env # If needed - -# Update .env with your PostgreSQL details -``` - ---- - -## Step 3: Start Backend - -```bash -npm run dev -``` - -**You should see:** -``` -βœ… Database models synchronized -⏰ Starting payment reminder scheduler... -πŸš€ Server running on port 3000 -πŸ“± WhatsApp share: http://localhost:3000/api/share -πŸ”” Notifications: http://localhost:3000/api/notifications -``` - ---- - -## Step 4: Install Frontend Dependencies - +### Frontend ```bash cd luckychit flutter pub get +flutter run -d chrome # Opens in browser ``` -**Already included in pubspec.yaml:** -- `url_launcher` - WhatsApp integration -- `shared_preferences` - Theme persistence -- `fl_chart` - Payment charts -- All other dependencies - --- -## Step 5: Run Flutter App +## πŸš€ For Ops: Deploy to Production ```bash -flutter run +ssh luckychit@192.168.8.148 +cd /home/luckychit/apps/chitfund +./scripts/deploy.sh ``` ---- - -## ✨ **Test New Features!** - -### 1. **Dark Mode** -- Open app β†’ Navigate to Settings -- Toggle "Dark Mode" switch -- See instant theme change! - -### 2. **Notifications** -- Look for notification bell icon (top right) -- Badge shows unread count -- Click to see notification center - -### 3. **WhatsApp Sharing** (Test on real device) -- Record a payment -- See success dialog -- Click "Share on WhatsApp" -- WhatsApp opens with receipt! - -### 4. **Loading States** -- Login β†’ See skeleton loader -- Dashboard loads smoothly - -### 5. **Empty States** -- Manager with no groups -- See beautiful empty state -- "Create Your First Group" button +That's it! See [DEPLOYMENT.md](DEPLOYMENT.md) for details. --- -## 🎯 **Key Features** +## πŸ†˜ Something Broken? -βœ… Beautiful loading screens (skeleton) -βœ… Helpful empty states -βœ… Professional notifications -βœ… Interactive cards -βœ… Dark mode support -βœ… **WhatsApp integration** -βœ… **Automated payment reminders** -βœ… **Notification system** -βœ… Payment charts -βœ… Search & filter +```bash +./scripts/diagnose.sh # Shows what's wrong +``` + +See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for fixes. --- -## πŸ“± **Test WhatsApp (Important!)** - -**Must test on physical device with WhatsApp:** - -1. Build & install on Android: - ```bash - flutter build apk - flutter install - ``` - -2. Or run directly: - ```bash - flutter run - ``` - -3. Go through payment flow -4. Click "Share on WhatsApp" -5. WhatsApp opens with pre-filled message! - ---- - -## ⏰ **Payment Reminders** - -**Automatic reminders run daily at 9:00 AM IST** - -Reminders sent at: -- 7 days before due -- 3 days before due -- 1 day before due -- On due date -- 1, 3, 7, 14, 30 days after (if overdue) - -**Check console logs at 9 AM IST to see scheduler running!** - ---- - -## πŸ“š **Documentation** - -Everything is documented! Start here: - -1. **`FINAL_SETUP_GUIDE.md`** - Complete setup -2. **`EVERYTHING_DELIVERED.md`** - What you got -3. **`WHATSAPP_USAGE_EXAMPLES.md`** - WhatsApp integration -4. **`COMPLETE_UX_IMPROVEMENTS_GUIDE.md`** - UX features -5. **`API_DOCUMENTATION.md`** - All APIs - ---- - -## πŸŽ‰ **You're Ready!** - -All features implemented, tested, and documented. - -**Next:** Customize messages, test thoroughly, and launch! πŸš€ - ---- - -## πŸ’‘ **Need Help?** - -Check the documentation files or: -- Review code comments -- Check API documentation -- See usage examples -- Monitor console logs - ---- - -**Time to launch!** πŸš€βœ¨ - -_Your chit fund app is now world-class!_ +## πŸ“š Need More Info? +- **Deployment**: [DEPLOYMENT.md](DEPLOYMENT.md) +- **Troubleshooting**: [TROUBLESHOOTING.md](TROUBLESHOOTING.md) +- **Full README**: [README.md](README.md) diff --git a/README.md b/README.md index 95c8ccf..686c088 100644 --- a/README.md +++ b/README.md @@ -1 +1,179 @@ -# chitfund \ No newline at end of file +# πŸš€ LuckyChit - Digital Chit Fund Management + +Complete production-ready chit fund management system with Flutter frontend and Node.js backend. + +--- + +## πŸ“š Documentation + +| Document | Purpose | Audience | +|----------|---------|----------| +| **[QUICK_START.md](QUICK_START.md)** | Get started in 5 minutes | Everyone | +| **[DEPLOYMENT.md](DEPLOYMENT.md)** | Complete deployment guide | DevOps/Developers | +| **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** | Fix common issues | Everyone | +| **[QUICK_REFERENCE.md](QUICK_REFERENCE.md)** | Command cheat sheet | DevOps | + +--- + +## ⚑ Quick Commands + +### πŸš€ Deploy to Production +```bash +ssh luckychit@192.168.8.148 +cd /home/luckychit/apps/chitfund +./scripts/deploy.sh +``` + +### πŸ“Š Check Status +```bash +pm2 status +pm2 logs --lines 50 +``` + +### πŸ”§ Fix Issues +```bash +./scripts/diagnose.sh # What's wrong? +./scripts/fix-502.sh # Fix 502 errors +``` + +--- + +## πŸ—οΈ Architecture + +``` +Internet + ↓ +Cloudflare (SSL, CDN, DDoS Protection) + ↓ +Nginx Proxy (Reverse Proxy) + ↓ +Application Server (192.168.8.148) +β”œβ”€β”€ PM2: luckychit-api (Backend - Port 3000) +β”œβ”€β”€ PM2: luckychit-frontend (Frontend - Port 8080) +└── PostgreSQL Database (Port 5432) +``` + +**Production URL**: https://chitfund.deepteklabs.com + +--- + +## πŸ“ Project Structure + +``` +chitfund/ +β”œβ”€β”€ README.md # This file +β”œβ”€β”€ QUICK_START.md # Getting started +β”œβ”€β”€ DEPLOYMENT.md # Deployment guide +β”œβ”€β”€ TROUBLESHOOTING.md # Issue fixes +β”‚ +β”œβ”€β”€ scripts/ # All deployment scripts +β”‚ β”œβ”€β”€ deploy.sh # Main deployment +β”‚ β”œβ”€β”€ diagnose.sh # System diagnostics +β”‚ β”œβ”€β”€ backup-db.sh # Database backup +β”‚ β”œβ”€β”€ restore-db.sh # Database restore +β”‚ └── fix-502.sh # Fix 502 errors +β”‚ +β”œβ”€β”€ backend/ # Node.js Express API +β”‚ β”œβ”€β”€ src/ # Source code +β”‚ β”œβ”€β”€ README.md # Backend docs +β”‚ └── API_DOCUMENTATION.md +β”‚ +└── luckychit/ # Flutter Web App + β”œβ”€β”€ lib/ # Dart source code + β”œβ”€β”€ web/ # Web assets + └── README.md # Frontend docs +``` + +--- + +## πŸš€ Getting Started + +### For Users +Just visit: **https://chitfund.deepteklabs.com** + +### For Developers (Local) +```bash +# Backend +cd backend +npm install +npm start # http://localhost:3000 + +# Frontend +cd luckychit +flutter pub get +flutter run -d chrome # Opens in browser +``` + +### For DevOps (Production) +See **[DEPLOYMENT.md](DEPLOYMENT.md)** + +--- + +## πŸ“Š Tech Stack + +**Frontend** +- Flutter Web +- GetX (State Management) +- Dio (HTTP Client) + +**Backend** +- Node.js + Express +- PostgreSQL +- JWT Authentication +- Sequelize ORM + +**Infrastructure** +- PM2 (Process Manager) +- Nginx (Reverse Proxy) +- Cloudflare (CDN + SSL) +- LXC Containers (Isolation) + +--- + +## πŸ†˜ Need Help? + +**Something not working?** +1. Check [TROUBLESHOOTING.md](TROUBLESHOOTING.md) +2. Run `./scripts/diagnose.sh` +3. Check PM2 logs: `pm2 logs` + +**Want to deploy?** +- See [DEPLOYMENT.md](DEPLOYMENT.md) +- Quick: `./scripts/deploy.sh` + +**Learning the system?** +- Start with [QUICK_START.md](QUICK_START.md) +- Reference [QUICK_REFERENCE.md](QUICK_REFERENCE.md) + +--- + +## πŸ“ Recent Updates + +- βœ… Removed demo credentials from login +- βœ… Fixed all caching issues (browser, service worker, nginx) +- βœ… Added signup navigation to dashboard +- βœ… Consolidated documentation and scripts +- βœ… Created unified deployment system + +--- + +## 🎯 Quick Links + +- **Production**: https://chitfund.deepteklabs.com +- **Backend API**: http://192.168.8.148:3000 +- **Frontend**: http://192.168.8.148:8080 +- **API Docs**: [backend/API_DOCUMENTATION.md](backend/API_DOCUMENTATION.md) + +--- + +**Version**: 1.0.0 +**Last Updated**: November 6, 2025 +**Status**: βœ… Production Ready + +--- + +## πŸ“„ License & Documentation + +For complete feature documentation, see individual README files in `backend/` and `luckychit/` directories. + +**Questions?** Check [TROUBLESHOOTING.md](TROUBLESHOOTING.md) first! diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md new file mode 100644 index 0000000..9f47e25 --- /dev/null +++ b/TROUBLESHOOTING.md @@ -0,0 +1,340 @@ +# πŸ”§ LuckyChit Troubleshooting Guide + +Quick fixes for common issues. + +--- + +## 🚨 Quick Diagnostics + +```bash +cd /home/luckychit/apps/chitfund +./scripts/diagnose.sh +``` + +This shows exactly what's wrong! + +--- + +## Common Issues + +### πŸ”΄ 502 Bad Gateway Error + +**Symptom**: Site shows "502 Bad Gateway" +**Cause**: PM2 processes are down or nginx can't reach backend + +**Fix**: +```bash +# Check PM2 +pm2 status + +# If processes are down +pm2 restart all + +# If processes don't exist +cd /home/luckychit/apps/chitfund +./scripts/fix-502.sh + +# Test +curl http://localhost:3000/health +curl http://localhost:8080 +``` + +--- + +### πŸ”΄ Changes Not Showing (Cache Issue) + +**Symptom**: Deployed code but seeing old version +**Cause**: Multiple cache layers (browser, service worker, nginx, Cloudflare) + +**Fix**: +```bash +# 1. Clear browser service worker +# F12 β†’ Application β†’ Service Workers β†’ Unregister +# Then: Ctrl + Shift + R (hard refresh) + +# 2. Or test in incognito +# Ctrl + Shift + N (no cache at all) + +# 3. Force rebuild on server +cd /home/luckychit/apps/chitfund +./scripts/deploy.sh --force + +# 4. Clear nginx cache (if using separate proxy) +ssh root@ +sudo rm -rf /var/cache/nginx/* +sudo systemctl reload nginx + +# 5. Purge Cloudflare cache +# Dashboard β†’ Caching β†’ Purge Everything +``` + +--- + +### πŸ”΄ PM2 Not Running After Reboot + +**Symptom**: Server restarted, apps not running +**Cause**: PM2 auto-start not configured + +**Fix**: +```bash +# Restore processes +pm2 resurrect + +# Or setup auto-start +pm2 startup systemd -u luckychit --hp /home/luckychit +# Run the command it outputs +pm2 save +``` + +--- + +### πŸ”΄ "invalid ELF header" Error + +**Symptom**: Backend crashes with bcrypt error +**Cause**: node_modules installed on Windows, running on Linux + +**Fix**: +```bash +cd /home/luckychit/apps/chitfund/backend +rm -rf node_modules package-lock.json +npm install +pm2 restart luckychit-api +``` + +--- + +### πŸ”΄ Database Connection Error + +**Symptom**: Backend logs show "connection refused" +**Cause**: PostgreSQL not running or wrong credentials + +**Fix**: +```bash +# Check PostgreSQL +sudo systemctl status postgresql + +# If not running +sudo systemctl start postgresql + +# Test connection +psql -U luckychit -h localhost -d luckychit + +# Check .env credentials +cd /home/luckychit/apps/chitfund/backend +cat .env | grep DB_ +``` + +--- + +### πŸ”΄ Port Already in Use + +**Symptom**: "Port 3000 already in use" +**Cause**: Old process still running + +**Fix**: +```bash +# Find process +netstat -tulpn | grep 3000 + +# Kill process +kill -9 + +# Or restart PM2 +pm2 restart luckychit-api +``` + +--- + +### πŸ”΄ Out of Memory + +**Symptom**: PM2 processes keep crashing +**Cause**: Server out of RAM + +**Fix**: +```bash +# Check memory +free -h + +# Check PM2 memory usage +pm2 monit + +# Restart to free memory +pm2 restart all + +# Or reboot server +sudo reboot +``` + +--- + +### πŸ”΄ Frontend Won't Build + +**Symptom**: `flutter build web` fails +**Cause**: Corrupted cache or missing dependencies + +**Fix**: +```bash +cd /home/luckychit/apps/chitfund/luckychit +flutter clean +rm -rf .dart_tool build +flutter pub get +flutter build web --release --pwa-strategy=none +``` + +--- + +### πŸ”΄ Service Worker Errors in Browser + +**Symptom**: Console shows "Loading from existing service worker" + errors +**Cause**: Old service worker serving stale code + +**Fix**: +```bash +# In browser: +# 1. Press F12 +# 2. Application tab β†’ Service Workers +# 3. Click "Unregister" for all +# 4. Application tab β†’ Clear storage β†’ Clear site data +# 5. Close DevTools +# 6. Hard refresh: Ctrl + Shift + R + +# Already fixed in code - rebuilds now disable service worker +``` + +--- + +### πŸ”΄ Nginx Not Forwarding Requests + +**Symptom**: 502 only on domain, direct IP works +**Cause**: Nginx config issue or cache + +**Fix**: +```bash +# SSH to nginx proxy LXC +ssh root@ + +# Test backend connectivity +curl http://192.168.8.148:3000/health +curl http://192.168.8.148:8080 + +# Check nginx config +sudo nginx -t + +# Clear cache +sudo rm -rf /var/cache/nginx/* + +# Reload nginx +sudo systemctl reload nginx + +# Check logs +sudo tail -f /var/log/nginx/error.log +``` + +--- + +### πŸ”΄ Firewall Blocking Access + +**Symptom**: Can't access from outside server +**Cause**: Firewall rules + +**Fix**: +```bash +# Check firewall +sudo ufw status + +# Allow ports +sudo ufw allow 3000/tcp +sudo ufw allow 8080/tcp +sudo ufw reload + +# Test +curl http://192.168.8.148:3000/health +``` + +--- + +## πŸ” Diagnostic Commands + +```bash +# Check everything +./scripts/diagnose.sh + +# PM2 status +pm2 status +pm2 logs --lines 50 + +# Test connectivity +curl http://localhost:3000/health # Backend +curl http://localhost:8080 # Frontend + +# Check disk space +df -h + +# Check memory +free -h + +# Check ports +netstat -tulpn | grep -E '(3000|8080)' + +# Check database +psql -U luckychit -h localhost -d luckychit +``` + +--- + +## πŸš€ Emergency Recovery + +### Complete Reset +```bash +# Stop everything +pm2 kill + +# Restart from scratch +cd /home/luckychit/apps/chitfund + +# Backend +cd backend +pm2 start src/server.js --name luckychit-api + +# Frontend +cd ../luckychit +pm2 serve build/web 8080 --name luckychit-frontend --spa + +# Save +pm2 save + +# Verify +pm2 status +``` + +### Nuclear Option (Full Rebuild) +```bash +cd /home/luckychit/apps/chitfund +./scripts/deploy.sh --force +``` + +--- + +## πŸ“ž Still Stuck? + +1. **Run diagnostics**: `./scripts/diagnose.sh` +2. **Check PM2 logs**: `pm2 logs --lines 100` +3. **Try in incognito**: Rules out browser cache +4. **Restart everything**: `pm2 restart all` +5. **Check all docs**: [DEPLOYMENT.md](DEPLOYMENT.md) + +--- + +## 🎯 Prevention Tips + +1. **Always test locally** before deploying +2. **Use deployment script** (handles caching automatically) +3. **Check logs after deploy**: `pm2 logs --lines 20` +4. **Test in incognito** first (no cache) +5. **Backup database** before major changes +6. **Monitor PM2**: `pm2 monit` + +--- + +**Most issues are cache-related. When in doubt, clear all caches and rebuild!** + diff --git a/cleanup-old-files.sh b/cleanup-old-files.sh new file mode 100644 index 0000000..d633d7b --- /dev/null +++ b/cleanup-old-files.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# Cleanup Old Documentation and Scripts +# Run this to remove redundant files after consolidation + +echo "🧹 Cleaning up old documentation and scripts..." +echo "" + +# Backup before deletion +BACKUP_DIR="old_docs_backup_$(date +%Y%m%d_%H%M%S)" +mkdir -p "$BACKUP_DIR" + +echo "πŸ“¦ Creating backup in: $BACKUP_DIR" + +# List of files to remove +OLD_DOCS=( + "ACTUAL_PRODUCTION_SETUP.md" + "ARCHITECTURE_OVERVIEW.md" + "CACHE_BUSTING_GUIDE.md" + "CACHE_FIX_SUMMARY.md" + "COMPLETE_FEATURES_DELIVERED.md" + "COMPLETE_IMPLEMENTATION_SUMMARY.md" + "CREATE_GROUP_IMPROVEMENTS.md" + "DEPLOYMENT_MASTER_GUIDE.md" + "DEPLOYMENT_README.md" + "DEPLOYMENT_TROUBLESHOOTING.md" + "EVERYTHING_DELIVERED.md" + "FINAL_SETUP_GUIDE.md" + "FIX_502_ERROR.md" + "FIX_CACHE_NOW.md" + "FIX_NOW_SERVICE_WORKER.md" + "FIX_SERVICE_WORKER_CACHE.md" + "FLUTTER_DEPLOYMENT_GUIDE.md" + "LuckyChit_Development_Plan_Revised.md" + "LuckyChit_Development_Plan.md" + "NGINX_PROXY_CACHE_FIX.md" + "PM2_QUICK_START.md" + "PRODUCTION_DIFFERENCES.md" + "PRODUCTION_UPDATE_GUIDE.md" + "Project_Implementation_Plan.md" + "PROXMOX_DEPLOYMENT_GUIDE.md" + "QUICK_DEPLOY.md" + "README_DEPLOYMENT.md" + "README_NEW_FEATURES.md" + "SIGNUP_FEATURE_IMPLEMENTATION.md" + "SIGNUP_NAVIGATION_UPDATE.md" + "SIGNUP_QUICK_START.md" + "START_HERE.md" + "Technical_Architecture.md" + "Technical_Implementation_Guide_Revised.md" + "TRADITIONAL_CHIT_FUND_MATHEMATICS.md" + "UI_UX_Design_Guide.md" + "CHEATSHEET.txt" + "Untitled-1.txt" +) + +OLD_SCRIPTS=( + "backup-database.sh" + "clear-cache-and-deploy.sh" + "deploy-backend-only.sh" + "deploy-frontend-only.sh" + "deploy-frontend-simple.sh" + "deploy-frontend.sh" + "deploy-full.sh" + "deploy.sh" + "diagnose-502.sh" + "fix-502-auto.sh" + "fix-and-deploy.sh" + "force-cache-bust.sh" + "nginx-clear-cache.sh" + "restore-database.sh" + "setup-deployment-scripts.sh" +) + +# Move docs to backup +echo "" +echo "Moving old documentation..." +for file in "${OLD_DOCS[@]}"; do + if [ -f "$file" ]; then + mv "$file" "$BACKUP_DIR/" 2>/dev/null && echo " βœ“ $file" + fi +done + +# Move scripts to backup +echo "" +echo "Moving old scripts..." +for file in "${OLD_SCRIPTS[@]}"; do + if [ -f "$file" ]; then + mv "$file" "$BACKUP_DIR/" 2>/dev/null && echo " βœ“ $file" + fi +done + +echo "" +echo "βœ… Cleanup complete!" +echo "" +echo "πŸ“¦ Old files backed up to: $BACKUP_DIR" +echo "" +echo "πŸ“š New documentation structure:" +echo " README.md - Main documentation" +echo " QUICK_START.md - Getting started" +echo " DEPLOYMENT.md - Deployment guide" +echo " TROUBLESHOOTING.md - Common issues & fixes" +echo "" +echo "πŸ”§ New scripts (in scripts/ folder):" +echo " scripts/deploy.sh - Unified deployment" +echo " scripts/diagnose.sh - Full diagnostics" +echo " scripts/backup-db.sh - Database backup" +echo " scripts/restore-db.sh - Database restore" +echo " scripts/fix-502.sh - Fix 502 errors" +echo "" +echo "πŸ’‘ To restore old files if needed:" +echo " cp $BACKUP_DIR/* ." +echo "" +echo "πŸ—‘οΈ To permanently delete backup:" +echo " rm -rf $BACKUP_DIR" + diff --git a/docs/KEEP_THESE.md b/docs/KEEP_THESE.md new file mode 100644 index 0000000..873b32e --- /dev/null +++ b/docs/KEEP_THESE.md @@ -0,0 +1,91 @@ +# πŸ“š Documentation Reference + +## Main Documentation (Root) + +Keep these files in the root directory: + +### Core Docs +- **README.md** - Main documentation entry point +- **QUICK_START.md** - Getting started guide +- **DEPLOYMENT.md** - Complete deployment guide +- **TROUBLESHOOTING.md** - Common issues and fixes + +### Reference Docs +- **PM2_PRODUCTION_GUIDE.md** - Detailed PM2 documentation +- **QUICK_REFERENCE.md** - Quick command reference + +--- + +## Scripts + +All deployment scripts are in `scripts/` folder: + +- **deploy.sh** - Unified deployment script +- **diagnose.sh** - Full system diagnostics +- **backup-db.sh** - Database backup +- **restore-db.sh** - Database restore +- **fix-502.sh** - Auto-fix 502 errors + +--- + +## Backend Docs + +Keep in `backend/` folder: + +- **README.md** - Backend documentation +- **API_DOCUMENTATION.md** - API endpoints reference +- **WHATSAPP_AND_REMINDERS_IMPLEMENTATION_STATUS.md** - WhatsApp features +- **WHATSAPP_USAGE_EXAMPLES.md** - WhatsApp usage + +--- + +## Frontend Docs + +Keep in `luckychit/` folder: + +- **README.md** - Frontend documentation +- Various feature implementation docs + +--- + +## Old Files + +All old/redundant files have been moved to `old_docs_backup_*/` + +You can safely delete the backup folder after confirming everything works: +```bash +rm -rf old_docs_backup_* +``` + +--- + +## Documentation Structure (Final) + +``` +chitfund/ +β”œβ”€β”€ README.md # Main docs +β”œβ”€β”€ QUICK_START.md # Getting started +β”œβ”€β”€ DEPLOYMENT.md # Deployment guide +β”œβ”€β”€ TROUBLESHOOTING.md # Troubleshooting +β”œβ”€β”€ PM2_PRODUCTION_GUIDE.md # Detailed PM2 docs +β”œβ”€β”€ QUICK_REFERENCE.md # Quick reference +β”‚ +β”œβ”€β”€ scripts/ # All scripts here +β”‚ β”œβ”€β”€ deploy.sh +β”‚ β”œβ”€β”€ diagnose.sh +β”‚ β”œβ”€β”€ backup-db.sh +β”‚ β”œβ”€β”€ restore-db.sh +β”‚ └── fix-502.sh +β”‚ +β”œβ”€β”€ backend/ # Backend +β”‚ β”œβ”€β”€ README.md +β”‚ └── API_DOCUMENTATION.md +β”‚ +└── luckychit/ # Frontend + └── README.md +``` + +--- + +**Clean, organized, and easy to maintain!** πŸŽ‰ + diff --git a/ACTUAL_PRODUCTION_SETUP.md b/old_docs_backup_20251105_203126/ACTUAL_PRODUCTION_SETUP.md similarity index 100% rename from ACTUAL_PRODUCTION_SETUP.md rename to old_docs_backup_20251105_203126/ACTUAL_PRODUCTION_SETUP.md diff --git a/ARCHITECTURE_OVERVIEW.md b/old_docs_backup_20251105_203126/ARCHITECTURE_OVERVIEW.md similarity index 100% rename from ARCHITECTURE_OVERVIEW.md rename to old_docs_backup_20251105_203126/ARCHITECTURE_OVERVIEW.md diff --git a/CACHE_BUSTING_GUIDE.md b/old_docs_backup_20251105_203126/CACHE_BUSTING_GUIDE.md similarity index 100% rename from CACHE_BUSTING_GUIDE.md rename to old_docs_backup_20251105_203126/CACHE_BUSTING_GUIDE.md diff --git a/CACHE_FIX_SUMMARY.md b/old_docs_backup_20251105_203126/CACHE_FIX_SUMMARY.md similarity index 100% rename from CACHE_FIX_SUMMARY.md rename to old_docs_backup_20251105_203126/CACHE_FIX_SUMMARY.md diff --git a/CHEATSHEET.txt b/old_docs_backup_20251105_203126/CHEATSHEET.txt similarity index 100% rename from CHEATSHEET.txt rename to old_docs_backup_20251105_203126/CHEATSHEET.txt diff --git a/COMPLETE_FEATURES_DELIVERED.md b/old_docs_backup_20251105_203126/COMPLETE_FEATURES_DELIVERED.md similarity index 100% rename from COMPLETE_FEATURES_DELIVERED.md rename to old_docs_backup_20251105_203126/COMPLETE_FEATURES_DELIVERED.md diff --git a/COMPLETE_IMPLEMENTATION_SUMMARY.md b/old_docs_backup_20251105_203126/COMPLETE_IMPLEMENTATION_SUMMARY.md similarity index 100% rename from COMPLETE_IMPLEMENTATION_SUMMARY.md rename to old_docs_backup_20251105_203126/COMPLETE_IMPLEMENTATION_SUMMARY.md diff --git a/CREATE_GROUP_IMPROVEMENTS.md b/old_docs_backup_20251105_203126/CREATE_GROUP_IMPROVEMENTS.md similarity index 100% rename from CREATE_GROUP_IMPROVEMENTS.md rename to old_docs_backup_20251105_203126/CREATE_GROUP_IMPROVEMENTS.md diff --git a/DEPLOYMENT_MASTER_GUIDE.md b/old_docs_backup_20251105_203126/DEPLOYMENT_MASTER_GUIDE.md similarity index 100% rename from DEPLOYMENT_MASTER_GUIDE.md rename to old_docs_backup_20251105_203126/DEPLOYMENT_MASTER_GUIDE.md diff --git a/DEPLOYMENT_README.md b/old_docs_backup_20251105_203126/DEPLOYMENT_README.md similarity index 100% rename from DEPLOYMENT_README.md rename to old_docs_backup_20251105_203126/DEPLOYMENT_README.md diff --git a/DEPLOYMENT_TROUBLESHOOTING.md b/old_docs_backup_20251105_203126/DEPLOYMENT_TROUBLESHOOTING.md similarity index 100% rename from DEPLOYMENT_TROUBLESHOOTING.md rename to old_docs_backup_20251105_203126/DEPLOYMENT_TROUBLESHOOTING.md diff --git a/EVERYTHING_DELIVERED.md b/old_docs_backup_20251105_203126/EVERYTHING_DELIVERED.md similarity index 100% rename from EVERYTHING_DELIVERED.md rename to old_docs_backup_20251105_203126/EVERYTHING_DELIVERED.md diff --git a/FINAL_SETUP_GUIDE.md b/old_docs_backup_20251105_203126/FINAL_SETUP_GUIDE.md similarity index 100% rename from FINAL_SETUP_GUIDE.md rename to old_docs_backup_20251105_203126/FINAL_SETUP_GUIDE.md diff --git a/FIX_502_ERROR.md b/old_docs_backup_20251105_203126/FIX_502_ERROR.md similarity index 100% rename from FIX_502_ERROR.md rename to old_docs_backup_20251105_203126/FIX_502_ERROR.md diff --git a/FIX_CACHE_NOW.md b/old_docs_backup_20251105_203126/FIX_CACHE_NOW.md similarity index 100% rename from FIX_CACHE_NOW.md rename to old_docs_backup_20251105_203126/FIX_CACHE_NOW.md diff --git a/FIX_NOW_SERVICE_WORKER.md b/old_docs_backup_20251105_203126/FIX_NOW_SERVICE_WORKER.md similarity index 100% rename from FIX_NOW_SERVICE_WORKER.md rename to old_docs_backup_20251105_203126/FIX_NOW_SERVICE_WORKER.md diff --git a/FIX_SERVICE_WORKER_CACHE.md b/old_docs_backup_20251105_203126/FIX_SERVICE_WORKER_CACHE.md similarity index 100% rename from FIX_SERVICE_WORKER_CACHE.md rename to old_docs_backup_20251105_203126/FIX_SERVICE_WORKER_CACHE.md diff --git a/FLUTTER_DEPLOYMENT_GUIDE.md b/old_docs_backup_20251105_203126/FLUTTER_DEPLOYMENT_GUIDE.md similarity index 100% rename from FLUTTER_DEPLOYMENT_GUIDE.md rename to old_docs_backup_20251105_203126/FLUTTER_DEPLOYMENT_GUIDE.md diff --git a/LuckyChit_Development_Plan.md b/old_docs_backup_20251105_203126/LuckyChit_Development_Plan.md similarity index 100% rename from LuckyChit_Development_Plan.md rename to old_docs_backup_20251105_203126/LuckyChit_Development_Plan.md diff --git a/LuckyChit_Development_Plan_Revised.md b/old_docs_backup_20251105_203126/LuckyChit_Development_Plan_Revised.md similarity index 100% rename from LuckyChit_Development_Plan_Revised.md rename to old_docs_backup_20251105_203126/LuckyChit_Development_Plan_Revised.md diff --git a/NGINX_PROXY_CACHE_FIX.md b/old_docs_backup_20251105_203126/NGINX_PROXY_CACHE_FIX.md similarity index 100% rename from NGINX_PROXY_CACHE_FIX.md rename to old_docs_backup_20251105_203126/NGINX_PROXY_CACHE_FIX.md diff --git a/PM2_QUICK_START.md b/old_docs_backup_20251105_203126/PM2_QUICK_START.md similarity index 100% rename from PM2_QUICK_START.md rename to old_docs_backup_20251105_203126/PM2_QUICK_START.md diff --git a/PRODUCTION_DIFFERENCES.md b/old_docs_backup_20251105_203126/PRODUCTION_DIFFERENCES.md similarity index 100% rename from PRODUCTION_DIFFERENCES.md rename to old_docs_backup_20251105_203126/PRODUCTION_DIFFERENCES.md diff --git a/PRODUCTION_UPDATE_GUIDE.md b/old_docs_backup_20251105_203126/PRODUCTION_UPDATE_GUIDE.md similarity index 100% rename from PRODUCTION_UPDATE_GUIDE.md rename to old_docs_backup_20251105_203126/PRODUCTION_UPDATE_GUIDE.md diff --git a/PROXMOX_DEPLOYMENT_GUIDE.md b/old_docs_backup_20251105_203126/PROXMOX_DEPLOYMENT_GUIDE.md similarity index 100% rename from PROXMOX_DEPLOYMENT_GUIDE.md rename to old_docs_backup_20251105_203126/PROXMOX_DEPLOYMENT_GUIDE.md diff --git a/Project_Implementation_Plan.md b/old_docs_backup_20251105_203126/Project_Implementation_Plan.md similarity index 100% rename from Project_Implementation_Plan.md rename to old_docs_backup_20251105_203126/Project_Implementation_Plan.md diff --git a/QUICK_DEPLOY.md b/old_docs_backup_20251105_203126/QUICK_DEPLOY.md similarity index 100% rename from QUICK_DEPLOY.md rename to old_docs_backup_20251105_203126/QUICK_DEPLOY.md diff --git a/README_DEPLOYMENT.md b/old_docs_backup_20251105_203126/README_DEPLOYMENT.md similarity index 100% rename from README_DEPLOYMENT.md rename to old_docs_backup_20251105_203126/README_DEPLOYMENT.md diff --git a/README_NEW_FEATURES.md b/old_docs_backup_20251105_203126/README_NEW_FEATURES.md similarity index 100% rename from README_NEW_FEATURES.md rename to old_docs_backup_20251105_203126/README_NEW_FEATURES.md diff --git a/SIGNUP_FEATURE_IMPLEMENTATION.md b/old_docs_backup_20251105_203126/SIGNUP_FEATURE_IMPLEMENTATION.md similarity index 100% rename from SIGNUP_FEATURE_IMPLEMENTATION.md rename to old_docs_backup_20251105_203126/SIGNUP_FEATURE_IMPLEMENTATION.md diff --git a/SIGNUP_NAVIGATION_UPDATE.md b/old_docs_backup_20251105_203126/SIGNUP_NAVIGATION_UPDATE.md similarity index 100% rename from SIGNUP_NAVIGATION_UPDATE.md rename to old_docs_backup_20251105_203126/SIGNUP_NAVIGATION_UPDATE.md diff --git a/SIGNUP_QUICK_START.md b/old_docs_backup_20251105_203126/SIGNUP_QUICK_START.md similarity index 100% rename from SIGNUP_QUICK_START.md rename to old_docs_backup_20251105_203126/SIGNUP_QUICK_START.md diff --git a/START_HERE.md b/old_docs_backup_20251105_203126/START_HERE.md similarity index 100% rename from START_HERE.md rename to old_docs_backup_20251105_203126/START_HERE.md diff --git a/TRADITIONAL_CHIT_FUND_MATHEMATICS.md b/old_docs_backup_20251105_203126/TRADITIONAL_CHIT_FUND_MATHEMATICS.md similarity index 100% rename from TRADITIONAL_CHIT_FUND_MATHEMATICS.md rename to old_docs_backup_20251105_203126/TRADITIONAL_CHIT_FUND_MATHEMATICS.md diff --git a/Technical_Architecture.md b/old_docs_backup_20251105_203126/Technical_Architecture.md similarity index 100% rename from Technical_Architecture.md rename to old_docs_backup_20251105_203126/Technical_Architecture.md diff --git a/Technical_Implementation_Guide_Revised.md b/old_docs_backup_20251105_203126/Technical_Implementation_Guide_Revised.md similarity index 100% rename from Technical_Implementation_Guide_Revised.md rename to old_docs_backup_20251105_203126/Technical_Implementation_Guide_Revised.md diff --git a/UI_UX_Design_Guide.md b/old_docs_backup_20251105_203126/UI_UX_Design_Guide.md similarity index 100% rename from UI_UX_Design_Guide.md rename to old_docs_backup_20251105_203126/UI_UX_Design_Guide.md diff --git a/Untitled-1.txt b/old_docs_backup_20251105_203126/Untitled-1.txt similarity index 100% rename from Untitled-1.txt rename to old_docs_backup_20251105_203126/Untitled-1.txt diff --git a/backup-database.sh b/old_docs_backup_20251105_203126/backup-database.sh similarity index 100% rename from backup-database.sh rename to old_docs_backup_20251105_203126/backup-database.sh diff --git a/clear-cache-and-deploy.sh b/old_docs_backup_20251105_203126/clear-cache-and-deploy.sh similarity index 100% rename from clear-cache-and-deploy.sh rename to old_docs_backup_20251105_203126/clear-cache-and-deploy.sh diff --git a/deploy-backend-only.sh b/old_docs_backup_20251105_203126/deploy-backend-only.sh similarity index 100% rename from deploy-backend-only.sh rename to old_docs_backup_20251105_203126/deploy-backend-only.sh diff --git a/deploy-frontend-only.sh b/old_docs_backup_20251105_203126/deploy-frontend-only.sh similarity index 100% rename from deploy-frontend-only.sh rename to old_docs_backup_20251105_203126/deploy-frontend-only.sh diff --git a/deploy-frontend-simple.sh b/old_docs_backup_20251105_203126/deploy-frontend-simple.sh old mode 100755 new mode 100644 similarity index 100% rename from deploy-frontend-simple.sh rename to old_docs_backup_20251105_203126/deploy-frontend-simple.sh diff --git a/deploy-frontend.sh b/old_docs_backup_20251105_203126/deploy-frontend.sh similarity index 100% rename from deploy-frontend.sh rename to old_docs_backup_20251105_203126/deploy-frontend.sh diff --git a/deploy-full.sh b/old_docs_backup_20251105_203126/deploy-full.sh similarity index 100% rename from deploy-full.sh rename to old_docs_backup_20251105_203126/deploy-full.sh diff --git a/deploy.sh b/old_docs_backup_20251105_203126/deploy.sh similarity index 100% rename from deploy.sh rename to old_docs_backup_20251105_203126/deploy.sh diff --git a/diagnose-502.sh b/old_docs_backup_20251105_203126/diagnose-502.sh similarity index 100% rename from diagnose-502.sh rename to old_docs_backup_20251105_203126/diagnose-502.sh diff --git a/fix-502-auto.sh b/old_docs_backup_20251105_203126/fix-502-auto.sh similarity index 100% rename from fix-502-auto.sh rename to old_docs_backup_20251105_203126/fix-502-auto.sh diff --git a/fix-and-deploy.sh b/old_docs_backup_20251105_203126/fix-and-deploy.sh similarity index 100% rename from fix-and-deploy.sh rename to old_docs_backup_20251105_203126/fix-and-deploy.sh diff --git a/force-cache-bust.sh b/old_docs_backup_20251105_203126/force-cache-bust.sh similarity index 100% rename from force-cache-bust.sh rename to old_docs_backup_20251105_203126/force-cache-bust.sh diff --git a/nginx-clear-cache.sh b/old_docs_backup_20251105_203126/nginx-clear-cache.sh similarity index 100% rename from nginx-clear-cache.sh rename to old_docs_backup_20251105_203126/nginx-clear-cache.sh diff --git a/restore-database.sh b/old_docs_backup_20251105_203126/restore-database.sh similarity index 100% rename from restore-database.sh rename to old_docs_backup_20251105_203126/restore-database.sh diff --git a/setup-deployment-scripts.sh b/old_docs_backup_20251105_203126/setup-deployment-scripts.sh similarity index 100% rename from setup-deployment-scripts.sh rename to old_docs_backup_20251105_203126/setup-deployment-scripts.sh diff --git a/scripts/backup-db.sh b/scripts/backup-db.sh new file mode 100644 index 0000000..5962d12 --- /dev/null +++ b/scripts/backup-db.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# LuckyChit Database Backup Script + +set -e + +DB_NAME="luckychit" +DB_USER="luckychit" +DB_HOST="localhost" +BACKUP_DIR="/home/luckychit/backups" +RETENTION_DAYS=7 + +mkdir -p "$BACKUP_DIR" + +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +BACKUP_FILE="$BACKUP_DIR/luckychit_backup_$TIMESTAMP.sql" + +echo "πŸ—„οΈ Starting database backup..." +echo "Database: $DB_NAME" +echo "Backup file: $BACKUP_FILE" +echo "" + +pg_dump -U "$DB_USER" -h "$DB_HOST" "$DB_NAME" > "$BACKUP_FILE" + +if [ $? -eq 0 ]; then + FILE_SIZE=$(du -h "$BACKUP_FILE" | cut -f1) + echo "βœ… Backup completed successfully!" + echo "πŸ“¦ File size: $FILE_SIZE" + + echo "" + echo "πŸ—œοΈ Compressing backup..." + gzip "$BACKUP_FILE" + COMPRESSED_SIZE=$(du -h "$BACKUP_FILE.gz" | cut -f1) + echo "βœ… Compressed size: $COMPRESSED_SIZE" + + echo "" + echo "🧹 Cleaning up old backups (older than $RETENTION_DAYS days)..." + DELETED=$(find "$BACKUP_DIR" -name "luckychit_backup_*.sql.gz" -mtime +$RETENTION_DAYS -delete -print | wc -l) + echo "βœ… Deleted $DELETED old backup(s)" + + echo "" + echo "πŸ“Š Current backups:" + ls -lh "$BACKUP_DIR"/luckychit_backup_*.sql.gz 2>/dev/null || echo "No backups found" + + echo "" + echo "βœ… Backup complete: $BACKUP_FILE.gz" +else + echo "❌ Backup failed!" + exit 1 +fi + diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100644 index 0000000..539aa0f --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +# LuckyChit Unified Deployment Script +# Usage: ./deploy.sh [backend|frontend|--force] + +set -e + +PROJECT_DIR="/home/luckychit/apps/chitfund" +FORCE_REBUILD=false + +# Check for force flag +if [ "$1" == "--force" ] || [ "$2" == "--force" ]; then + FORCE_REBUILD=true +fi + +cd $PROJECT_DIR + +echo "πŸš€ LuckyChit Deployment" +echo "=======================" +echo "" + +# Git pull +echo "πŸ“₯ Pulling latest code..." +git stash 2>/dev/null || true +git pull origin prodnew +echo "" + +# Deploy backend +if [ "$1" == "" ] || [ "$1" == "backend" ] || [ "$1" == "--force" ]; then + echo "πŸ”§ Deploying Backend..." + cd $PROJECT_DIR/backend + + if [ "$FORCE_REBUILD" = true ]; then + echo "πŸ—‘οΈ Force rebuild: Removing node_modules..." + rm -rf node_modules package-lock.json + fi + + npm install + pm2 restart luckychit-api + echo "βœ… Backend deployed" + echo "" +fi + +# Deploy frontend +if [ "$1" == "" ] || [ "$1" == "frontend" ] || [ "$1" == "--force" ]; then + echo "🎨 Deploying Frontend..." + cd $PROJECT_DIR/luckychit + + if [ "$FORCE_REBUILD" = true ]; then + echo "πŸ—‘οΈ Force rebuild: Cleaning Flutter cache..." + flutter clean + rm -rf .dart_tool build + fi + + flutter pub get + + BUILD_NUMBER=$(date +%s) + flutter build web --release --web-renderer html --pwa-strategy=none --build-number=$BUILD_NUMBER + echo "πŸ“¦ Build version: $BUILD_NUMBER" + + pm2 restart luckychit-frontend + echo "βœ… Frontend deployed" + echo "" +fi + +# Status +echo "πŸ“Š PM2 Status:" +pm2 status + +echo "" +echo "βœ… Deployment complete!" +echo "" +echo "πŸ§ͺ Test:" +echo " Backend: curl http://localhost:3000/health" +echo " Frontend: curl http://localhost:8080" +echo " Domain: https://chitfund.deepteklabs.com" +echo "" +echo "πŸ“ Check logs: pm2 logs --lines 20" +echo "πŸ’‘ Clear browser cache: Ctrl + Shift + R" + diff --git a/scripts/diagnose.sh b/scripts/diagnose.sh new file mode 100644 index 0000000..4d81339 --- /dev/null +++ b/scripts/diagnose.sh @@ -0,0 +1,123 @@ +#!/bin/bash + +# LuckyChit Diagnostic Script +# Checks everything and reports issues + +echo "πŸ” LuckyChit Diagnostic Report" +echo "===============================" +echo "" + +# PM2 Status +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "1️⃣ PM2 Process Status" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +pm2 status +echo "" + +# Port Check +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "2️⃣ Port Listening Check" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +PORTS=$(netstat -tulpn 2>/dev/null | grep -E '(3000|8080)') +if [ -z "$PORTS" ]; then + echo "❌ No processes listening on ports 3000 or 8080" +else + echo "βœ… Ports are listening:" + echo "$PORTS" +fi +echo "" + +# Backend Health +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "3️⃣ Backend Health Check" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +BACKEND=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/health 2>/dev/null) +if [ "$BACKEND" = "200" ]; then + echo "βœ… Backend responding: HTTP $BACKEND" + curl -s http://localhost:3000/health | head -n 3 +else + echo "❌ Backend not responding: HTTP $BACKEND" +fi +echo "" + +# Frontend Health +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "4️⃣ Frontend Health Check" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +FRONTEND=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080 2>/dev/null) +if [ "$FRONTEND" = "200" ]; then + echo "βœ… Frontend responding: HTTP $FRONTEND" +else + echo "❌ Frontend not responding: HTTP $FRONTEND" +fi +echo "" + +# Disk Space +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "5️⃣ Disk Space" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +df -h | grep -E '(Filesystem|/$|/home)' +echo "" + +# Memory +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "6️⃣ Memory Usage" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +free -h +echo "" + +# PostgreSQL +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "7️⃣ PostgreSQL Status" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +POSTGRES=$(sudo systemctl is-active postgresql 2>/dev/null) +if [ "$POSTGRES" = "active" ]; then + echo "βœ… PostgreSQL is running" +else + echo "❌ PostgreSQL is not running" +fi +echo "" + +# Recent Errors +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "8️⃣ Recent PM2 Errors" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +pm2 logs --err --lines 10 --nostream 2>/dev/null || echo "No recent errors" +echo "" + +# Summary +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "πŸ“‹ SUMMARY & RECOMMENDATIONS" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +PM2_COUNT=$(pm2 jlist 2>/dev/null | grep -c '"pm2_env"') +if [ "$PM2_COUNT" -lt 2 ]; then + echo "⚠️ PM2 processes missing or down" + echo " FIX: pm2 restart all OR ./scripts/fix-502.sh" +fi + +if [ -z "$PORTS" ]; then + echo "⚠️ No processes listening on required ports" + echo " FIX: ./scripts/fix-502.sh" +fi + +if [ "$BACKEND" != "200" ]; then + echo "⚠️ Backend not responding" + echo " FIX: pm2 restart luckychit-api" + echo " CHECK: pm2 logs luckychit-api" +fi + +if [ "$FRONTEND" != "200" ]; then + echo "⚠️ Frontend not responding" + echo " FIX: pm2 restart luckychit-frontend" +fi + +if [ "$POSTGRES" != "active" ]; then + echo "⚠️ PostgreSQL not running" + echo " FIX: sudo systemctl start postgresql" +fi + +echo "" +echo "πŸ“š See TROUBLESHOOTING.md for detailed fixes" + diff --git a/scripts/fix-502.sh b/scripts/fix-502.sh new file mode 100644 index 0000000..35e75ab --- /dev/null +++ b/scripts/fix-502.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +# Auto-fix 502 Bad Gateway errors + +set -e + +echo "πŸ”§ LuckyChit 502 Auto-Fix" +echo "=========================" +echo "" + +cd /home/luckychit/apps/chitfund + +check_backend() { + curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/health 2>/dev/null +} + +check_frontend() { + curl -s -o /dev/null -w "%{http_code}" http://localhost:8080 2>/dev/null +} + +echo "πŸ“Š Step 1/4: Checking status..." +pm2 status + +echo "" +echo "πŸ”„ Step 2/4: Restarting services..." +pm2 restart all +sleep 3 + +echo "" +echo "πŸ§ͺ Step 3/4: Testing services..." + +if [ "$(check_backend)" = "200" ]; then + echo "βœ… Backend is responding" +else + echo "⚠️ Backend not responding, recreating..." + cd backend + pm2 delete luckychit-api 2>/dev/null || true + pm2 start src/server.js --name luckychit-api + sleep 3 +fi + +if [ "$(check_frontend)" = "200" ]; then + echo "βœ… Frontend is responding" +else + echo "⚠️ Frontend not responding, recreating..." + cd /home/luckychit/apps/chitfund/luckychit + pm2 delete luckychit-frontend 2>/dev/null || true + pm2 serve build/web 8080 --name luckychit-frontend --spa + sleep 3 +fi + +echo "" +echo "πŸ’Ύ Step 4/4: Saving configuration..." +pm2 save + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "πŸ“Š Final Status" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +pm2 status + +echo "" +if [ "$(check_backend)" = "200" ] && [ "$(check_frontend)" = "200" ]; then + echo "βœ… SUCCESS! All services running" + echo "" + echo "🌐 Your site should be accessible at:" + echo " https://chitfund.deepteklabs.com" +else + echo "⚠️ Some services still down" + echo "" + echo "πŸ” Run diagnostics: ./scripts/diagnose.sh" +fi + diff --git a/scripts/restore-db.sh b/scripts/restore-db.sh new file mode 100644 index 0000000..9c265f6 --- /dev/null +++ b/scripts/restore-db.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +# LuckyChit Database Restore Script + +set -e + +DB_NAME="luckychit" +DB_USER="luckychit" +DB_HOST="localhost" +BACKUP_DIR="/home/luckychit/backups" + +echo "πŸ—„οΈ LuckyChit Database Restore" +echo "===============================" +echo "" + +if [ ! -d "$BACKUP_DIR" ]; then + echo "❌ Backup directory not found: $BACKUP_DIR" + exit 1 +fi + +echo "πŸ“¦ Available backups:" +echo "" +ls -lh "$BACKUP_DIR"/luckychit_backup_*.sql.gz 2>/dev/null | nl || { + echo "❌ No backup files found" + exit 1 +} + +echo "" +echo "Enter the filename to restore (without path):" +read -r BACKUP_FILENAME + +BACKUP_FILE="$BACKUP_DIR/$BACKUP_FILENAME" + +if [ ! -f "$BACKUP_FILE" ]; then + echo "❌ Backup file not found: $BACKUP_FILE" + exit 1 +fi + +echo "" +echo "⚠️ WARNING: This will REPLACE the current database!" +echo "Database: $DB_NAME" +echo "Backup file: $BACKUP_FILE" +echo "" +echo "Are you sure? (yes/no)" +read -r CONFIRM + +if [ "$CONFIRM" != "yes" ]; then + echo "❌ Restore cancelled" + exit 0 +fi + +# Safety backup +SAFETY_BACKUP="$BACKUP_DIR/before_restore_$(date +%Y%m%d_%H%M%S).sql" +echo "" +echo "πŸ“¦ Creating safety backup first..." +pg_dump -U "$DB_USER" -h "$DB_HOST" "$DB_NAME" > "$SAFETY_BACKUP" +echo "βœ… Safety backup: $SAFETY_BACKUP" + +# Decompress if needed +if [[ "$BACKUP_FILE" == *.gz ]]; then + echo "" + echo "πŸ—œοΈ Decompressing backup..." + DECOMPRESSED="${BACKUP_FILE%.gz}" + gunzip -c "$BACKUP_FILE" > "$DECOMPRESSED" + BACKUP_FILE="$DECOMPRESSED" +fi + +# Stop PM2 +echo "" +echo "⏸️ Stopping PM2 processes..." +pm2 stop luckychit-api 2>/dev/null || true + +# Drop and recreate +echo "" +echo "πŸ—‘οΈ Dropping existing database..." +dropdb -U "$DB_USER" -h "$DB_HOST" --if-exists "$DB_NAME" + +echo "πŸ†• Creating fresh database..." +createdb -U "$DB_USER" -h "$DB_HOST" "$DB_NAME" + +# Restore +echo "" +echo "πŸ“₯ Restoring backup..." +psql -U "$DB_USER" -h "$DB_HOST" "$DB_NAME" < "$BACKUP_FILE" + +if [ $? -eq 0 ]; then + echo "" + echo "βœ… Database restored successfully!" + + # Clean up decompressed file + if [[ "$BACKUP_FILENAME" == *.gz ]]; then + rm -f "$BACKUP_FILE" + fi + + # Restart PM2 + echo "" + echo "▢️ Restarting PM2..." + pm2 restart luckychit-api + pm2 status + + echo "" + echo "βœ… Restore complete!" + echo "πŸ“ Safety backup: $SAFETY_BACKUP" +else + echo "" + echo "❌ Restore failed!" + echo "πŸ“ Safety backup available: $SAFETY_BACKUP" + exit 1 +fi +