64 lines
2.7 KiB
Bash
Executable file
64 lines
2.7 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
# Semblance — server-side deploy script
|
|
# Run this DIRECTLY ON THE SERVER: /opt/semblance/server-deploy.sh
|
|
#
|
|
# Does NOT build the frontend (Node not on server).
|
|
# Frontend must be deployed from local Mac via: ./deploy.sh
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
|
|
DEPLOY_DIR="/opt/semblance"
|
|
FRONTEND_DEST="/var/www/html/semblance"
|
|
|
|
echo "======================================"
|
|
echo "Semblance — server-side deployment"
|
|
echo "======================================"
|
|
|
|
cd "$DEPLOY_DIR"
|
|
|
|
# ── Pre-flight ────────────────────────────────────────────────────────────────
|
|
if [ ! -f backend/.env ]; then
|
|
echo "ERROR: backend/.env not found."
|
|
echo " cp backend/.env.example backend/.env && nano backend/.env"
|
|
exit 1
|
|
fi
|
|
|
|
for VAR in SECRET_KEY JWT_SECRET_KEY OPENAI_API_KEY GEMINI_API_KEY; do
|
|
if ! grep -q "^${VAR}=.\+" backend/.env 2>/dev/null; then
|
|
echo "ERROR: $VAR is not set in backend/.env"
|
|
exit 1
|
|
fi
|
|
done
|
|
echo "✓ backend/.env OK"
|
|
|
|
# ── Step 1: Pull latest code ──────────────────────────────────────────────────
|
|
echo ""
|
|
echo "[1/3] Pulling latest code..."
|
|
git pull
|
|
|
|
# ── Step 2: Ensure frontend dir exists ───────────────────────────────────────
|
|
echo ""
|
|
echo "[2/3] Ensuring frontend directory..."
|
|
sudo mkdir -p "$FRONTEND_DEST"
|
|
sudo chown -R www-data:www-data "$FRONTEND_DEST"
|
|
echo "✓ $FRONTEND_DEST ready"
|
|
|
|
# ── Step 3: Rebuild and restart Docker services ───────────────────────────────
|
|
echo ""
|
|
echo "[3/3] Rebuilding and restarting Docker services..."
|
|
docker compose up -d --build
|
|
|
|
echo ""
|
|
echo "Container status:"
|
|
docker compose ps
|
|
|
|
echo ""
|
|
echo "======================================"
|
|
echo "Server deployment complete!"
|
|
echo " Backend: http://127.0.0.1:5137"
|
|
echo ""
|
|
echo "NOTE: Frontend not deployed (requires local build)."
|
|
echo " Run ./deploy.sh from your Mac to deploy the frontend."
|
|
echo "======================================"
|