# 🚀 START HERE - LuckyChit Deployment ## 📁 What Files Were Created? I've created deployment documentation for your LuckyChit app: | File | Purpose | When to Use | |------|---------|-------------| | **PROXMOX_DEPLOYMENT_GUIDE.md** | Complete detailed guide | First time deployment | | **QUICK_DEPLOY.md** | Quick command reference | Quick reference / updates | | **deploy.sh** | Automated setup script | Fastest automated setup | | **DEPLOYMENT_README.md** | Overview & comparison | Understanding options | | **START_HERE.md** | This file - Quick start | Right now! | --- ## 🎯 Choose Your Path ### 🤖 Option 1: Automated (Recommended for Beginners) **Time: ~15 minutes** 1. Create Ubuntu 22.04 LXC container in Proxmox 2. Upload `deploy.sh` to the container 3. Run: `sudo bash deploy.sh` 4. Upload your code and follow on-screen instructions ### 📖 Option 2: Manual Step-by-Step **Time: ~30-45 minutes** Follow **PROXMOX_DEPLOYMENT_GUIDE.md** for complete instructions ### ⚡ Option 3: Quick Commands (For Experts) **Time: ~20 minutes** Use **QUICK_DEPLOY.md** for copy-paste commands --- ## 🏃 Fastest Way to Deploy (5 Steps) ### Step 1: Create LXC Container on Proxmox ```bash # On Proxmox host pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \ --hostname luckychit \ --memory 2048 \ --cores 2 \ --net0 name=eth0,bridge=vmbr0,ip=dhcp \ --rootfs local-lvm:8 pct start 100 pct enter 100 ``` ### Step 2: Upload & Run Deploy Script ```bash # Upload deploy.sh to container, then: chmod +x deploy.sh ./deploy.sh # Follow the prompts: # - Enter database password # - Enter JWT secret (random 32+ characters) # - Enter domain name (optional) # - Enter server IP ``` ### Step 3: Upload Your Code ```bash # From your Windows machine: scp -r C:\Users\sunde\workspace\chitfund luckychit@:/home/luckychit/apps/ # Or using Git inside container: cd /home/luckychit/apps git clone chitfund ``` ### Step 4: Deploy Backend ```bash cd /home/luckychit/apps/chitfund/backend npm install --production node create-db.js pm2 start src/server.js --name luckychit-api pm2 startup systemd -u luckychit --hp /home/luckychit pm2 save ``` ### Step 5: Deploy Frontend ```bash cd /home/luckychit/apps/chitfund/luckychit # Update API endpoint first! # Edit the file that contains your API URL # Change it to: http://:3000 or https://api.yourdomain.com flutter pub get flutter build web --release sudo cp -r build/web/* /var/www/luckychit/ ``` ### ✅ Test Your Deployment ```bash # Check if everything is running pm2 status sudo systemctl status nginx curl http://localhost:3000/health # Access from browser: # Frontend: http:// # API Health: http:///health ``` --- ## 📋 What You Need Before Starting ### Information - [ ] Your Proxmox host IP/access - [ ] Server IP address for the LXC container - [ ] Domain name (optional, for SSL) - [ ] Strong password for database (16+ characters) - [ ] Random JWT secret (32+ characters) ### Tools (Optional - for uploading files) - [ ] WinSCP or FileZilla (for file transfers) - [ ] PuTTY or Windows Terminal (for SSH) ### Generate Secure Secrets ```powershell # On Windows PowerShell, generate random secrets: # Database Password (16 characters) -join ((48..57) + (65..90) + (97..122) | Get-Random -Count 16 | % {[char]$_}) # JWT Secret (32 characters) -join ((48..57) + (65..90) + (97..122) | Get-Random -Count 32 | % {[char]$_}) ``` --- ## 🎓 Learning Path ### Complete Beginner? 1. Read **DEPLOYMENT_README.md** first (understand options) 2. Follow **PROXMOX_DEPLOYMENT_GUIDE.md** step-by-step 3. Keep **QUICK_DEPLOY.md** for future reference ### Some Experience? 1. Skim **DEPLOYMENT_README.md** 2. Use **deploy.sh** for automated setup 3. Reference **QUICK_DEPLOY.md** when needed ### Expert User? 1. Use **QUICK_DEPLOY.md** directly 2. Reference **PROXMOX_DEPLOYMENT_GUIDE.md** for specifics --- ## 🆘 Something Wrong? ### Deploy Script Fails - Check internet connection - Make sure you're running as root: `sudo bash deploy.sh` - Check logs for specific errors ### Can't Access Application - Check firewall: `sudo ufw status` - Check services: `pm2 status` and `sudo systemctl status nginx` - Check ports: `sudo netstat -tulpn | grep -E '(80|3000)'` ### Database Issues - Verify PostgreSQL is running: `sudo systemctl status postgresql` - Test connection: `psql -U luckychit -d luckychit -h localhost` - Check credentials in `.env` file ### More Help Needed? - See **Troubleshooting** section in **PROXMOX_DEPLOYMENT_GUIDE.md** - Check logs: `pm2 logs`, `sudo tail -f /var/log/nginx/error.log` --- ## 🔒 Security Checklist After deployment, verify: - [ ] Firewall is enabled and configured - [ ] Strong database password set - [ ] Unique JWT secret configured - [ ] `.env` file has correct permissions (600) - [ ] SSL/HTTPS enabled (for production) - [ ] Regular backups scheduled - [ ] All default passwords changed --- ## 📞 Quick Reference | Task | Command | |------|---------| | Check status | `pm2 status` | | View logs | `pm2 logs` | | Restart app | `pm2 restart luckychit-api` | | Update code | `git pull && npm install && pm2 reload luckychit-api` | | Backup DB | `/home/luckychit/backup-db.sh` | | Check nginx | `sudo systemctl status nginx` | --- ## 🎉 Ready to Deploy? 1. Pick your deployment method above 2. Gather required information 3. Follow the steps 4. Test your application 5. Setup SSL (recommended for production) **Estimated Time:** 15-45 minutes depending on method Good luck! Your LuckyChit app will be live soon! 🚀 --- ## 📚 Documentation Structure ``` START_HERE.md (You are here!) ├── Quick overview and decision guide ├── DEPLOYMENT_README.md │ ├── Compare deployment methods │ ├── Post-deployment tasks │ └── Troubleshooting overview │ PROXMOX_DEPLOYMENT_GUIDE.md │ ├── Complete step-by-step guide │ ├── Detailed explanations │ ├── Troubleshooting details │ └── Maintenance procedures │ QUICK_DEPLOY.md │ ├── Quick command reference │ ├── Common operations │ └── Useful paths │ deploy.sh └── Automated deployment script ``` **Tip:** Bookmark this structure for future reference!