49 lines
1.2 KiB
Bash
49 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
# Deploy modstagram-next on Ubuntu server (after git pull / upload)
|
|
set -euo pipefail
|
|
|
|
APP_DIR="${APP_DIR:-/root/modstagram-next}"
|
|
cd "$APP_DIR"
|
|
|
|
echo ">>> Node: $(node -v) | npm: $(npm -v)"
|
|
|
|
if [ ! -f .env.production ] && [ ! -f .env.local ]; then
|
|
echo "WARN: no .env.production — copy .env.production.example and fill values"
|
|
fi
|
|
|
|
echo ">>> npm ci ..."
|
|
npm ci
|
|
|
|
echo ">>> npm run build ..."
|
|
npm run build
|
|
|
|
if [ ! -d .next ]; then
|
|
echo "ERROR: .next missing — build failed"
|
|
exit 1
|
|
fi
|
|
|
|
echo ">>> PM2 — stop old process (may be on port 3004) ..."
|
|
pm2 delete modstagram-next 2>/dev/null || true
|
|
|
|
echo ">>> PM2 start on port 3004 (nginx upstream) ..."
|
|
pm2 start ecosystem.config.cjs --update-env
|
|
pm2 save
|
|
|
|
echo ">>> Verify listen ports ..."
|
|
ss -tlnp | grep -E '3001|3004' || true
|
|
|
|
echo ">>> Health check (port 3004) ..."
|
|
sleep 3
|
|
curl -sf -o /dev/null -w "HTTP %{http_code}\n" http://127.0.0.1:3004/ || {
|
|
echo "ERROR: Next.js not responding on 127.0.0.1:3004"
|
|
pm2 logs modstagram-next --lines 40 --nostream
|
|
exit 1
|
|
}
|
|
|
|
if ss -tlnp | grep -q ':3004'; then
|
|
echo "WARN: something still listens on 3004 — check pm2 list / duplicate processes"
|
|
fi
|
|
|
|
echo ">>> Done. Reload nginx if you changed config:"
|
|
echo " nginx -t && systemctl reload nginx"
|