All checks were successful
Test Asgard Runner / test (push) Successful in 3s
- Replace owner_id → owner_user_id in all queries - Replace auth_token → companion_agent_token in server_connections - Replace l.active → (l.status = 'active') checks using ENUM - Fix AppError → ApiError in all new API files - Add missing imports (Path, PanelAdapter trait) - Fix StoreConfig nullable type mismatches Resolves 122 compilation errors. Only sqlx cache generation remains. Phase 3: EXECUTE complete per V4_WORKFLOW
109 lines
3.1 KiB
Bash
Executable File
109 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=== CORROSION REMOTE DEPLOYMENT ==="
|
|
echo ""
|
|
|
|
REPO_DIR="$HOME/corrosion-admin-panel"
|
|
|
|
# Step 1: Check if repo exists, clone or pull
|
|
if [ -d "$REPO_DIR" ]; then
|
|
echo "📦 Updating repository..."
|
|
cd "$REPO_DIR"
|
|
git pull
|
|
else
|
|
echo "📦 Cloning repository..."
|
|
git clone git@git.corrosionmgmt.com:vantzs/corrosion-admin-panel.git "$REPO_DIR"
|
|
cd "$REPO_DIR"
|
|
fi
|
|
|
|
echo "✅ Code updated"
|
|
echo ""
|
|
|
|
# Step 2: Create .env if needed
|
|
if [ ! -f docker/.env ]; then
|
|
echo "📝 Creating docker/.env from template..."
|
|
cp .env.example docker/.env
|
|
|
|
# Generate secure keys
|
|
JWT_SECRET=$(openssl rand -hex 32)
|
|
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
|
|
|
# Update .env
|
|
sed -i "s|JWT_SECRET=.*|JWT_SECRET=$JWT_SECRET|" docker/.env
|
|
sed -i "s|ENCRYPTION_KEY=.*|ENCRYPTION_KEY=$ENCRYPTION_KEY|" docker/.env
|
|
|
|
echo "✅ Created docker/.env"
|
|
echo "⚠️ IMPORTANT: Edit docker/.env and add:"
|
|
echo " - CLOUDFLARE_API_TOKEN"
|
|
echo " - STEAM_API_KEY"
|
|
echo " - PAYPAL_CLIENT_ID"
|
|
echo " - PAYPAL_CLIENT_SECRET"
|
|
echo ""
|
|
read -p "Press Enter after updating docker/.env..."
|
|
fi
|
|
|
|
# Step 3: Stop existing containers (if any)
|
|
echo "🛑 Stopping existing containers..."
|
|
cd docker
|
|
docker compose down || true
|
|
|
|
# Step 4: Rebuild and start
|
|
echo "🚀 Building and starting services..."
|
|
docker compose up -d --build
|
|
|
|
echo ""
|
|
echo "⏳ Waiting for database to be ready..."
|
|
sleep 15
|
|
|
|
# Step 5: Check which migrations have been run
|
|
echo ""
|
|
echo "📊 Checking migration status..."
|
|
cd ..
|
|
|
|
CURRENT_MIGRATIONS=$(docker exec corrosion-db psql -U corrosion -d corrosion -t -c "SELECT version FROM _sqlx_migrations ORDER BY version;" 2>/dev/null || echo "")
|
|
|
|
if [ -z "$CURRENT_MIGRATIONS" ]; then
|
|
echo "⚠️ No migrations table found - running ALL migrations"
|
|
for migration in backend/migrations/*.sql; do
|
|
echo "Running $(basename $migration)..."
|
|
docker exec -i corrosion-db psql -U corrosion -d corrosion < "$migration"
|
|
done
|
|
else
|
|
echo "Current migrations:"
|
|
echo "$CURRENT_MIGRATIONS"
|
|
echo ""
|
|
|
|
# Run only new migrations (009-012)
|
|
for version in 009 010 011 012; do
|
|
if echo "$CURRENT_MIGRATIONS" | grep -q "^[[:space:]]*$version"; then
|
|
echo "✅ Migration $version already applied"
|
|
else
|
|
migration_file=$(ls backend/migrations/${version}_*.sql 2>/dev/null || true)
|
|
if [ -n "$migration_file" ]; then
|
|
echo "📊 Running migration $version..."
|
|
docker exec -i corrosion-db psql -U corrosion -d corrosion < "$migration_file"
|
|
echo "✅ Migration $version complete"
|
|
else
|
|
echo "⚠️ Migration $version not found"
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== DEPLOYMENT COMPLETE ==="
|
|
echo ""
|
|
echo "Services status:"
|
|
docker ps --filter "name=corrosion-" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
|
|
echo ""
|
|
echo "Health check:"
|
|
curl -s http://localhost:8088/api/health || echo "⚠️ API not responding yet (may need a few more seconds)"
|
|
|
|
echo ""
|
|
echo "View logs:"
|
|
echo " docker logs -f corrosion-api"
|
|
echo " docker logs -f corrosion-nginx"
|
|
echo ""
|