Self-Hosting
Self-Hosting
Deploy the full Avnology ID stack on your own infrastructure.
Self-Hosting Avnology ID
Avnology ID ships as a production-ready Docker Compose stack you can deploy against your own Postgres, Valkey, and MinIO. Every component -- gateway, Ory stack (Kratos, Hydra, Keto, Oathkeeper), Polis, audit / risk / webhook / SAML services, web dashboard, docs -- is built from this repo, and every release is tagged alongside api-gateway, hydra, kratos, etc. container images on GitHub Container Registry.
Where to start
- Overview -- managed vs self-hosted decision guide and licensing.
- Docker Compose deploy -- run
docker compose -f docker-compose.traefik.yml up -dagainstdeploy/docker/*config. - Environment variables -- every
.envvariable documented. - DNS setup -- 8 records to point at your host.
- TLS via Traefik ACME -- Let's Encrypt or DNS-01 for wildcard.
- Backup & migrations -- pg_dump,
make db-migrate, restore paths. - Upgrading -- Ory rollover, zero-downtime patterns.
- Kubernetes -- Helm chart is post-v1.0; Compose is the sole supported platform today.
System requirements
| Resource | Minimum | Recommended for 10k MAU |
|---|---|---|
| CPU | 4 vCPU | 8 vCPU |
| Memory | 8 GiB | 16 GiB |
| Disk | 40 GiB SSD | 200 GiB NVMe |
| Network | 100 Mbit | 1 Gbit |
Postgres and MinIO dominate disk usage. Plan for ~10 GiB per 100k identities over 12 months of audit retention.
What gets deployed
19 services, all in one compose file:
postgres (17-alpine)
pgbouncer
valkey (8.1)
nats (jetstream)
minio
kratos + courier
hydra
keto
oathkeeper
gateway
audit
risk
webhook
saml (idp)
polis (scim)
web
docs