Files
skills-lottery-picker/deploy_velobase.sh
T
2026-06-19 06:38:31 +00:00

60 lines
1.8 KiB
Bash

#!/bin/bash
# velobase-harness deployment script — runs ON the server
set -e
cd /root
# Clone if not exists
if [ ! -d velobase-harness ]; then
echo "[1] Cloning repo..."
git clone --depth 1 https://ghfast.top/https://github.com/velobase/velobase-harness.git 2>&1 || \
git clone --depth 1 https://github.com/velobase/velobase-harness.git 2>&1
fi
cd velobase-harness
echo "[2] Creating .env..."
cat > .env << 'ENVEOF'
NEXT_PUBLIC_APP_ENV=dev
NEXT_PUBLIC_APP_NAME=Velobase
NEXT_PUBLIC_SUPPORT_EMAIL=admin@example.com
NEXT_PUBLIC_DISABLE_TEST_LOGIN=true
APP_URL=http://210.16.161.214:3000
SERVICE_MODE=web,worker
NEXTAUTH_SECRET=velobase-dev-secret-key-change-in-prod
AUTH_URL=http://210.16.161.214:3000
DATABASE_URL=postgresql://velobase:velobase@localhost:5432/velobase
POSTGRES_PORT=5432
REDIS_URL=redis://localhost:6379
REDIS_PORT=6379
SKIP_MIGRATION=false
MIGRATION_OPTIONAL=false
SKIP_SEED=true
SEED_OPTIONAL=true
ENVEOF
echo " .env created ($(wc -l < .env) lines)"
echo "[3] Pulling images..."
docker pull postgres:16 2>&1 | tail -3
docker pull redis:7 2>&1 | tail -3
echo "[4] Starting postgres+redis..."
docker compose up -d postgres redis 2>&1 | tail -3
echo "[5] Building Docker image (takes 5-15 min)..."
docker build -t velobase-app . 2>&1 | tail -5
echo "[6] Starting app container..."
docker rm -f velobase-app 2>/dev/null || true
docker run -d --name velobase-app \
--restart unless-stopped \
--network host \
--env-file /root/velobase-harness/.env \
-v /root/velobase-harness/logs:/app/logs \
velobase-app 2>&1
echo "[7] Verification..."
sleep 5
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" 2>&1 | grep -E "velobase|postgres|redis"
echo "---"
curl -s -o /dev/null -w "HTTP %{http_code}" --max-time 10 http://localhost:3000/ 2>&1 || echo "APP NOT YET READY"