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):
- Navigate to Repository Settings β Webhooks β Add webhook.
- Payload URL:
https://api.planovi.app/deploy-webhook - Content type:
application/json - Secret: Value of
WEBHOOK_SECRETfrom PA Management. - SSL verification: Enable SSL verification.
- Events: βJust the
pusheventβ.
π Environment & Branch Mapping Matrix
| Git Branch | Target Directory | Active Domains / Impact |
|---|---|---|
main | /opt/vps-apps/<repo>/prod | Production subdomains (panel.planovi.app, dealflow, cloud, etc.) |
dev or develop | /opt/vps-apps/<repo>/dev | Staging 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)
ssh root@191.218.165.149cd /opt/vps-apps/backend/prodgit pull origin main
# Synchronize Edge Functions into Docker mountcp -r supabase/functions/* /opt/vps-stack/supabase/functions/
# Restart Edge Runtime containerdocker restart supabase-edge-runtime2. Manual Microservices Update (planovi-microservices)
cd /opt/vps-apps/microservices/prodgit pull origin mainchmod -R 775 data/docker restart php-app3. Manual Converter Backend Rebuild (planovi-converter)
cd /opt/vps-apps/converters/prodgit pull origin maincd /opt/vps-stackdocker compose build converters-api-proddocker compose up -d converters-api-prod4. Zero-Downtime Nginx Proxy Reload
docker exec vps-proxy nginx -t && docker exec vps-proxy nginx -s reload