# 🚀 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@<container-ip>:/home/luckychit/apps/

# Or using Git inside container:
cd /home/luckychit/apps
git clone <your-repo-url> 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://<your-server-ip>: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://<your-server-ip>
# API Health: http://<your-server-ip>/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!

