2026-05-17 21:23:50 +07:00
|
|
|
#!/bin/bash
|
2026-07-27 21:54:31 +07:00
|
|
|
set -euo pipefail
|
2026-05-17 21:23:50 +07:00
|
|
|
|
2026-07-27 21:54:31 +07:00
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
|
INFRA_DIR="$SCRIPT_DIR/infra/docker"
|
2026-05-17 21:23:50 +07:00
|
|
|
|
2026-07-27 21:54:31 +07:00
|
|
|
: "${VPS_HOST:?required}"
|
|
|
|
|
: "${VPS_USER:?required}"
|
|
|
|
|
: "${VPS_SSH_KEY:?required}"
|
2026-07-05 07:05:01 +07:00
|
|
|
|
2026-07-27 21:54:31 +07:00
|
|
|
echo "=== Deploy to $VPS_HOST ==="
|
2026-07-05 07:05:01 +07:00
|
|
|
|
2026-07-27 21:54:31 +07:00
|
|
|
# Copy local .env if it exists (overrides CI env)
|
|
|
|
|
if [ -f "$INFRA_DIR/.env" ]; then
|
|
|
|
|
scp -i "$VPS_SSH_KEY" "$INFRA_DIR/.env" "$VPS_USER@$VPS_HOST:/opt/imphenbot/infra/docker/.env"
|
2026-07-05 07:05:01 +07:00
|
|
|
fi
|
|
|
|
|
|
2026-07-27 21:54:31 +07:00
|
|
|
ssh -i "$VPS_SSH_KEY" "$VPS_USER@$VPS_HOST" << 'REMOTESCRIPT'
|
|
|
|
|
set -eu
|
|
|
|
|
cd /opt/imphenbot/infra/docker
|
|
|
|
|
echo "=== Pulling images ==="
|
|
|
|
|
docker compose pull
|
|
|
|
|
echo "=== Restarting containers ==="
|
|
|
|
|
docker compose up -d --remove-orphans
|
|
|
|
|
echo "=== Cleaning up ==="
|
|
|
|
|
docker image prune -f
|
|
|
|
|
echo "=== Active containers ==="
|
|
|
|
|
docker ps --filter "name=imphenbot" --format "table {{.Names}} {{.Image}} {{.Status}}"
|
|
|
|
|
REMOTESCRIPT
|
2026-07-05 04:06:41 +07:00
|
|
|
|
2026-07-27 21:54:31 +07:00
|
|
|
echo "=== Deploy complete ==="
|