docker compose stats the cwd when parsing compose files; if cwd is not accessible to the deploy user the command fails. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
34 lines
998 B
Bash
Executable File
34 lines
998 B
Bash
Executable File
#!/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
|
|
|
|
cd "${SITE_DIR}"
|
|
|
|
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 "==> Rebuilding and recreating web container"
|
|
docker compose -f "${SITE_DIR}/docker-compose.prod.yml" up -d --no-deps --build --force-recreate web
|
|
|
|
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
|
|
docker compose -f "${SITE_DIR}/docker-compose.prod.yml" logs --tail=50 web
|
|
exit 1
|