Skip to content

Deployment & Webhook Workflows

Deployments on the Planovi VPS are automated using the vps-deployer webhook receiver, triggered whenever code is pushed to monitored Git branches.


⚑ Automated CI/CD Webhook Flow

When a developer merges code into dev or main:

flowchart LR
    Dev["πŸ‘¨β€πŸ’» Developer Push"] -->|git push| GH["πŸ™ GitHub"]
    GH -->|"Webhook POST /deploy-webhook"| Ingress["πŸ›‘οΈ Nginx Proxy (:443)"]
    Ingress -->|"Forward :9000"| Dep["⚑ vps-deployer"]
    Dep -->|HMAC Verified| Pull["πŸ“‚ git pull --ff-only"]
    Pull --> Rebuild["🐳 Container Restart / Build"]
    Rebuild --> Notify["πŸ’¬ Google Chat Alert"]

1. GitHub Webhook Configuration

For every repository in the Planovi ecosystem (planovi-webpage, planovi-microservices, planovi-flutter-app, planovi-converter, planovi-backend):

  1. Navigate to Repository Settings βž” Webhooks βž” Add webhook.
  2. Payload URL: https://api.planovi.app/deploy-webhook
  3. Content type: application/json
  4. Secret: Value of WEBHOOK_SECRET from PA Management.
  5. SSL verification: Enable SSL verification.
  6. Events: β€œJust the push event”.

πŸ”„ Environment & Branch Mapping Matrix

Git BranchTarget DirectoryActive Domains / Impact
main/opt/vps-apps/<repo>/prodProduction subdomains (panel.planovi.app, dealflow, cloud, etc.)
dev or develop/opt/vps-apps/<repo>/devStaging subdomains (dev-panel.planovi.app, dev-cloud, etc.)

πŸ› οΈ Manual Deployment Fallback Runbook

If GitHub is experiencing outages or webhook delivery fails, administrators can deploy manually via SSH:

1. Manual Edge Functions Deployment (planovi-backend)

Terminal window
ssh root@191.218.165.149
cd /opt/vps-apps/backend/prod
git pull origin main
# Synchronize Edge Functions into Docker mount
cp -r supabase/functions/* /opt/vps-stack/supabase/functions/
# Restart Edge Runtime container
docker restart supabase-edge-runtime

2. Manual Microservices Update (planovi-microservices)

Terminal window
cd /opt/vps-apps/microservices/prod
git pull origin main
chmod -R 775 data/
docker restart php-app

3. Manual Converter Backend Rebuild (planovi-converter)

Terminal window
cd /opt/vps-apps/converters/prod
git pull origin main
cd /opt/vps-stack
docker compose build converters-api-prod
docker compose up -d converters-api-prod

4. Zero-Downtime Nginx Proxy Reload

Terminal window
docker exec vps-proxy nginx -t && docker exec vps-proxy nginx -s reload