fix: polish channel groups and add production deployment
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
APP_DIR="${APP_DIR:-/opt/cmpp-platform}"
|
||||
ENV_FILE="${ENV_FILE:-/etc/cmpp-platform/cmpp-platform.env}"
|
||||
ADMIN_CREDENTIAL_FILE="${ADMIN_CREDENTIAL_FILE:-/root/cmpp-platform-admin.txt}"
|
||||
|
||||
if [[ "$(id -u)" -ne 0 ]]; then
|
||||
echo "Run as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$ENV_FILE" ]]; then
|
||||
echo "Missing environment file: $ENV_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
source "$ENV_FILE"
|
||||
set +a
|
||||
|
||||
cd "$APP_DIR"
|
||||
|
||||
echo "[deploy] Installing dependencies"
|
||||
npm ci
|
||||
npm --prefix api ci
|
||||
|
||||
echo "[deploy] Generating Prisma client and applying migrations"
|
||||
npm --prefix api run prisma:generate
|
||||
npm --prefix api run prisma:migrate:deploy
|
||||
|
||||
echo "[deploy] Building frontend, API and gateway"
|
||||
npm run build
|
||||
npm --prefix api run build
|
||||
(cd gateway && /usr/local/bin/go build -o "$APP_DIR/dist/cmpp-gateway" ./cmd/gateway)
|
||||
|
||||
echo "[deploy] Ensuring production admin"
|
||||
PROD_ADMIN_CREDENTIAL_FILE="$ADMIN_CREDENTIAL_FILE" node tools/deploy/ensure-production-admin.mjs
|
||||
chmod 600 "$ADMIN_CREDENTIAL_FILE" || true
|
||||
|
||||
echo "[deploy] Restarting services"
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now cmpp-minio cmpp-api cmpp-gateway nginx
|
||||
systemctl restart cmpp-minio
|
||||
systemctl restart cmpp-api
|
||||
systemctl restart cmpp-gateway
|
||||
systemctl restart nginx
|
||||
|
||||
echo "[deploy] Health checks"
|
||||
sleep 3
|
||||
curl -fsS "http://127.0.0.1:${API_PORT:-3000}/api/health" >/dev/null
|
||||
curl -fsS "http://127.0.0.1:8090/health" >/dev/null
|
||||
redis-cli -h "${REDIS_HOST:-127.0.0.1}" -p "${REDIS_PORT:-6379}" ping >/dev/null
|
||||
pg_isready -d "$DATABASE_URL" >/dev/null
|
||||
|
||||
echo "[deploy] Done"
|
||||
Reference in New Issue
Block a user