#!/bin/bash
# Setup awal di server Linux (VPS / hosting dengan SSH + Node.js 20+)
set -e
APP_DIR="${APP_DIR:-$HOME/mjs}"
mkdir -p "$APP_DIR"
cd "$APP_DIR"
# Ekstrak dari tarball jika dijalankan dari folder lain
if [ ! -f server.js ] && [ -f "$HOME/mjs-berita-acara-deploy.tar.gz" ]; then
  tar -xzf "$HOME/mjs-berita-acara-deploy.tar.gz" -C "$APP_DIR"
fi
if [ -f "$HOME/data/database.sqlite" ] && [ ! -f data/database.sqlite ]; then
  cp -r "$HOME/data" ./data
fi

echo "=== Setup MJS Berita Acara ==="

# Muat nvm jika ada (install tanpa sudo)
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

if ! command -v node >/dev/null 2>&1; then
  echo "Node.js belum terinstall. Jalankan: ./deploy/vps-install-node.sh"
  exit 1
fi

echo "Node: $(node -v)"

if [ ! -f .env ]; then
  cp .env.example .env
  SECRET=$(openssl rand -hex 32 2>/dev/null || head -c 32 /dev/urandom | xxd -p)
  sed -i.bak "s/ganti-dengan-string-acak-panjang/$SECRET/" .env && rm -f .env.bak
  echo ".env dibuat dengan SESSION_SECRET acak"
fi

npm install --production

mkdir -p data/berkas backups

if command -v pm2 >/dev/null 2>&1; then
  pm2 delete mjs-berita-acara 2>/dev/null || true
  pm2 start ecosystem.config.cjs --env production
  pm2 save
  echo "PM2: pm2 status"
  pm2 status
else
  echo "PM2 tidak ditemukan — install: npm i -g pm2"
  echo "Atau jalankan: NODE_ENV=production node server.js"
fi

echo ""
echo "Langkah berikutnya:"
echo "  1. Upload data/ dari Mac (jika migrasi database existing)"
echo "  2. Konfigurasi reverse proxy LiteSpeed → 127.0.0.1:8765"
echo "  3. Aktifkan SSL untuk mjs.bdl.co.id"
echo "  4. Login & ganti password default admin"