#!/usr/bin/env bash # Deploy script for No Hype AI — runs on lintel-prod-01 as deploy user. # Called by CI after a successful push to main. set -euo pipefail SITE_DIR=/srv/sum/nohype APP_DIR=${SITE_DIR}/app echo "==> Pulling latest code" git -C "${APP_DIR}" pull origin main echo "==> Updating compose file" cp "${APP_DIR}/docker-compose.prod.yml" "${SITE_DIR}/docker-compose.prod.yml" echo "==> Ensuring static/media directories exist" mkdir -p "${SITE_DIR}/static" "${SITE_DIR}/media" echo "==> Building image" docker compose -f "${SITE_DIR}/docker-compose.prod.yml" build --no-cache echo "==> Restarting service" sudo systemctl restart sum-nohype echo "==> Waiting for health check" for i in $(seq 1 30); do if curl -fsS -H "Host: nohypeai.net" http://localhost:8001/ >/dev/null 2>&1; then echo "==> Site is up" exit 0 fi sleep 3 done echo "ERROR: site did not come up after 90s" >&2 sudo journalctl -u sum-nohype --no-pager -n 50 exit 1