# ⚡ QUICK REFERENCE - COMMAND CHEAT SHEET

Simpan file ini untuk quick lookup tanpa perlu baca panduan panjang.

---

## 🔑 IMPORTANT CREDENTIALS

```
Host: 203.175.9.131
SSH User: mana1261
SSH Password: [dari email Rumahweb]

Database Name: mana1261_telur
DB User: mana1261_admintelur
DB Password: admintelur
DB Host: localhost

Demo Login:
Email: superadmin@telur.local
Pass: password123

Aplikasi URL: http://domain:3000
```

---

## 📦 FOLDER STRUCTURE

```
/home/mana1261/public_html/
├── distribusi-telur/          ← folder aplikasi
│   ├── .env                   ← config (DATABASE_URL, JWT)
│   ├── .env.example           ← template
│   ├── package.json
│   ├── prisma/                ← database schema & migrations
│   ├── src/                   ← source code
│   │   ├── app/
│   │   │   ├── api/          ← backend routes
│   │   │   ├── login/
│   │   │   ├── admin/
│   │   │   └── ...
│   │   └── lib/
│   ├── .next/                 ← generated build (auto created)
│   └── node_modules/          ← dependencies (auto installed)
```

---

## 🚀 FASTEST SETUP (JUST DO THIS)

```bash
# 1. SSH ke server
ssh mana1261@203.175.9.131

# 2. Masuk folder
cd public_html/distribusi-telur

# 3. Copy .env
cp .env.example .env

# 4. Edit .env - verify DATABASE_URL correct
nano .env
# Check: DATABASE_URL="mysql://mana1261_admintelur:admintelur@localhost:3306/mana1261_telur"
# Ctrl+X, Y, Enter to save

# 5. Install dependencies
npm install

# 6. Database migration
npx prisma migrate deploy

# 7. Database seeding (optional tapi recommended)
npm run db:seed

# 8. Build
npm run build

# 9. Start dengan PM2 (production) - RECOMMENDED
npm install -g pm2
pm2 start npm --name "distribusi-telur" -- start
pm2 startup
pm2 save

# OR start langsung (development only - jangan pakai production)
# npm start
```

**Time: ~15-20 menit depending on internet speed**

---

## ✅ VERIFICATION COMMANDS

```bash
# Cek Node.js version (harus v18+)
node --version

# Cek npm version (harus 9+)
npm --version

# Cek MySQL accessible
mysql -u mana1261_admintelur -p mana1261_telur
# (enter password: admintelur)
# Jika berhasil, akan masuk MySQL prompt
# Exit dengan: exit

# Cek aplikasi berjalan
curl -I http://localhost:3000
# Harus output: HTTP/1.1 307 (redirect ke login)

# Cek PM2 status
pm2 status
pm2 logs distribusi-telur
```

---

## 🔧 COMMON COMMANDS

```bash
# Lihat file
cat .env
cat package.json

# Edit file
nano .env
# Ctrl+X = exit, Y = yes, Enter = save

# List folder
ls -la

# Lihat database
mysql -u mana1261_admintelur -p mana1261_telur
SHOW TABLES;
SELECT * FROM User LIMIT 5;
exit

# Restart aplikasi (if using PM2)
pm2 restart distribusi-telur
pm2 stop distribusi-telur
pm2 start distribusi-telur
pm2 delete distribusi-telur

# Stop aplikasi (if running direct)
Ctrl+C (di terminal)

# Clear screen
clear
```

---

## ❌ ERROR FIXES

### "Can't reach database server"
```bash
# Check .env correct
grep DATABASE_URL .env

# Verify credentials di cPanel MySQL Databases
# Make sure password sama

# Verify MySQL running
mysql -u mana1261_admintelur -p
# Enter password
exit
```

### "npm: command not found"
```bash
# Node.js tidak installed
# Contact support Rumahweb: "Install Node.js v18 LTS"
```

### "Port 3000 already in use"
```bash
# Find what's using port 3000
lsof -i :3000

# Kill process
kill -9 PID

# Or use different port
PORT=3001 npm start
```

### "Out of memory"
```bash
npm cache clean --force
NODE_OPTIONS="--max_old_space_size=512" npm install
```

### ".env not found"
```bash
cp .env.example .env
```

### Migration failed
```bash
# Check database accessible
mysql -u mana1261_admintelur -p mana1261_telur
SHOW TABLES;
exit

# If tables exist, use deploy (not dev)
npx prisma migrate deploy

# If fresh database
npx prisma migrate dev --name init
```

---

## 🔐 SECURITY AFTER DEPLOYMENT

```bash
# 1. Change JWT_SECRET
nano .env
# Replace "ganti-dengan-rahasia-acak-panjang-di-produksi" with:
# openssl rand -base64 48

# 2. Restart aplikasi
pm2 restart distribusi-telur

# 3. Change demo password
# Login web → Settings → Change Password
```

---

## 📊 MONITORING

```bash
# Real-time logs
pm2 logs distribusi-telur

# System info
top
# Press q to exit

# Disk usage
df -h

# Memory usage
free -h

# Check if port 3000 active
netstat -tuln | grep 3000
```

---

## 🆘 DEBUG TIPS

```bash
# Lengkap error log ke file
npm install 2>&1 | tee install.log
npm run build 2>&1 | tee build.log

# Share file log untuk support
cat install.log
cat build.log

# Check PM2 logs
pm2 logs distribusi-telur > app.log
cat app.log

# Database query log
mysql -u mana1261_admintelur -p mana1261_telur
SHOW PROCESSLIST;
exit
```

---

## 📱 AFTER DEPLOYMENT CHECKLIST

- [ ] Aplikasi accessible di `http://domain:3000`
- [ ] Login dengan superadmin@telur.local berhasil
- [ ] Data demo visible (cabang, stok, orders)
- [ ] PM2 status = online
- [ ] `pm2 logs` tidak ada error
- [ ] Database backup sudah setup
- [ ] SSL/HTTPS aktif
- [ ] Domain DNS pointing ke Rumahweb IP
- [ ] Monitor `pm2 status` & `pm2 logs` regularly

---

## 📞 WHEN TO CONTACT SUPPORT

- [ ] Node.js not installed (request v18 LTS)
- [ ] MySQL can't be accessed from localhost
- [ ] SSH key/password issues
- [ ] Port 3000 completely blocked
- [ ] Storage/RAM upgrade needed

---

**Keep this file for quick reference!** ⚡

