mirror of
https://github.com/JetSprow/J-Board-Lite.git
synced 2026-05-01 01:14:10 +05:30
47 lines
1005 B
Bash
Executable File
47 lines
1005 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
APP_DIR="${APP_DIR:-/opt/jboard}"
|
|
COMPOSE="${COMPOSE:-docker compose}"
|
|
BACKUP="${BACKUP:-1}"
|
|
HEALTH_URL="${HEALTH_URL:-http://127.0.0.1:3000/api/public/app-info}"
|
|
|
|
cd "$APP_DIR"
|
|
|
|
echo "[1/7] Pulling latest code..."
|
|
git pull --ff-only
|
|
|
|
if [ "$BACKUP" = "1" ]; then
|
|
echo "[2/7] Backing up database..."
|
|
mkdir -p backups
|
|
$COMPOSE exec -T db pg_dump -U jboard jboard > "backups/jboard-db-$(date +%F-%H%M%S).sql"
|
|
else
|
|
echo "[2/7] Skipping database backup..."
|
|
fi
|
|
|
|
echo "[3/7] Building updated images..."
|
|
$COMPOSE build init app
|
|
|
|
echo "[4/7] Syncing Prisma schema inside Docker network..."
|
|
$COMPOSE --profile setup run --rm init sh -lc 'npm run db:push'
|
|
|
|
echo "[5/7] Restarting services..."
|
|
$COMPOSE up -d app
|
|
|
|
echo "[6/7] Waiting for app to boot..."
|
|
sleep 8
|
|
|
|
echo "[7/7] Checking service status..."
|
|
$COMPOSE ps
|
|
|
|
echo
|
|
echo "App health:"
|
|
curl -fsS "$HEALTH_URL" || true
|
|
|
|
echo
|
|
echo "Recent app logs:"
|
|
$COMPOSE logs --tail=80 app || true
|
|
|
|
echo
|
|
echo "Upgrade complete."
|