DavidHerran fc24313f15
Some checks failed
Deploy to VPS / deploy (push) Has been cancelled
production: docker + nginx config for rf-flux.com
2026-03-20 13:46:05 -05:00

52 lines
1.8 KiB
YAML

# ═══════════════════════════════════════════════════════════════
# FLUX SRL — GitHub Actions Deploy Pipeline
# ═══════════════════════════════════════════════════════════════
# Triggers on push to main branch.
# Requires GitHub Secrets:
# VPS_HOST — Your VPS IP or hostname
# SSH_PRIVATE_KEY — ED25519 private key for flux-deploy user
# ═══════════════════════════════════════════════════════════════
name: Deploy to VPS
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.VPS_HOST }}
username: flux-deploy
key: ${{ secrets.SSH_PRIVATE_KEY }}
script_stop: true
script: |
cd /opt/flux-srl
echo "⏳ Pulling latest code..."
git pull origin main
echo "⏳ Building app container..."
docker compose build --no-cache app
echo "⏳ Restarting app..."
docker compose up -d app
echo "⏳ Running migrations..."
docker compose exec -T app npx prisma migrate deploy
echo "⏳ Cleaning up old images..."
docker image prune -f
echo "⏳ Health check..."
sleep 5
curl -sf http://localhost/api/health || echo "⚠ Health check failed"
echo "✅ Deploy complete."