Skip to main content
Copy-paste quickstart. Two paths: local (Container) and Kubernetes (one manifest). For production hardening, OIDC providers, RBAC tuning, and operational diagnostics, follow the per-topic chapters in the nav.

Local — Container

Decision Control + Postgres on the same host. Substitute <your-registry> and <version> for the image you pull from.
Open http://localhost:8080. ALETYX_OIDC_PROVIDER=none bypasses authentication for local diagnostics. For real OIDC, see Identity & Access Management.

Kubernetes — minimal manifest

Single-file deployment: Namespace, ConfigMap, Secret, Deployment, Service, Ingress. Substitute the <...> placeholders for your cluster. ALETYX_OIDC_INTERNAL_SECRET (Secret below) is the shared secret used to authenticate Tower → Decision Control server-to-server calls. Generate one with openssl rand -hex 32 and use the same string on every Decision Control instance Tower aggregates plus Tower itself. Skip if no Tower will talk to this DC.
Apply and wait for the pod to be ready:
Then register https://<your-host>/auth/callback as a Redirect URI on your Entra App Registration (or Keycloak client) — without it, Entra returns AADSTS50011 on the first sign-in.

Next

Use the chapters in the nav for the production-shaped path: