Skip to content

Deployment Overview

All services deploy via Azure DevOps pipelines. Backends run as Docker containers on Azure App Service; frontends and static sites deploy to Cloudflare Pages.

ServiceCI triggerDeploy targetNotes
Cloud BackendPush to Backend/Azure App Service (Linux container)Docker → ACR → App Service
Cloud FrontendPush to Frontend/Cloudflare PagesVite build artifact
Management BackendPush to Management/management-backend/Azure App ServiceDocker → ACR → App Service
Management FrontendPush to Management/management-frontend/Cloudflare PagesVite build artifact
IngestorPush to ingestor/Azure App Service
Marketing WebsitePush to Website/Cloudflare PagesAstro build
Contact Form APIPush to WebsiteContactApi/Cloudflare WorkersWrangler deploy
Internal DocsPush to Internal-Documentation/Cloudflare PagesAstro build

When setting up a fresh environment (dev/staging/prod), deploy in this order:

  1. Provision Azure infrastructure — SQL Server, App Services, Key Vaults, ACR
  2. Write shared secrets to both kv-mz-cloud-* and kv-mz-manage-*
  3. Run Flyway migrations on both Cloud and Management databases
  4. Deploy Management Backend and Cloud Backend simultaneously (shared secrets must be in KV first)
  5. Deploy frontends (Cloud SPA, Management SPA)
  6. Smoke test: Create a tenant in Management → activate license → log in to Cloud SPA