Skip to main content

Deployment Guide

This guide takes a deployment engineer — with no prior CET2 exposure — from a blank environment to a fully onboarded customer tenant.

:::tip One structural fact that matters everywhere in this guide CET2 uses two separate Entra app registrations: a Portal application (user sign-in + API) and a Data application (certificate-based, app-only, per-tenant Graph access). Keep them distinct — most deployment confusion comes from conflating the two. :::

Hosting models

CET2 supports two deployment models. Pick one before you start.

Model A — Azure App ServiceModel B — Self-hosted container
StatusCurrent production modelContainer artifacts are on the roadmap
ComputeAzure App Service (Linux)Any Docker/Kubernetes host
Graph certificateAzure Key Vault via Managed IdentityMounted local PFX file
PersistenceApp Service filesystem (SQLite)PersistentVolume (single replica)
Best forMSP-hosted, multi-customer instancesCustomers who require on-premises/private hosting

The stages of a deployment

  1. Prerequisites — what the customer (and you) must have ready
  2. Azure App Registrations — create the Portal and Data applications
  3. Microsoft Graph Permissions — grant and understand the required scopes
  4. Server Installation — deploy the backend and frontend
  5. Configuration — wire up appsettings / app settings
  6. SSL and DNS — public URL, certificate, and DNS records
  7. Tenant Onboarding — the full per-customer onboarding flow
  8. Validation Testing — the checklist to run before calling it done
  9. Troubleshooting — common failures and their fixes

What you'll need collected before you start

See Information Checklist for the full list — at minimum you need the customer's Entra tenant ID, a Global Administrator contact, the public portal URL, and their RBAC requirements (who should get access, and at what level).