Tutoriel pour déployer Zitadel via Coolify en 2026.
Voir notre guide Zitadel.
Prérequis
- Coolify v4 fonctionnel
- VPS 4 Go RAM minimum (Zitadel + CockroachDB embedded)
- Domaine (ex:
auth.exemple.sn) - 30 minutes
Étape 1 — Service Docker Compose
services:
zitadel:
image: ghcr.io/zitadel/zitadel:latest
command: 'start-from-init --masterkey "MasterkeyNeedsToHave32Characters" --tlsMode disabled'
environment:
ZITADEL_DATABASE_POSTGRES_HOST: db
ZITADEL_DATABASE_POSTGRES_PORT: 5432
ZITADEL_DATABASE_POSTGRES_DATABASE: zitadel
ZITADEL_DATABASE_POSTGRES_USER_USERNAME: zitadel
ZITADEL_DATABASE_POSTGRES_USER_PASSWORD: zitadel
ZITADEL_DATABASE_POSTGRES_USER_SSL_MODE: disable
ZITADEL_DATABASE_POSTGRES_ADMIN_USERNAME: postgres
ZITADEL_DATABASE_POSTGRES_ADMIN_PASSWORD: postgres
ZITADEL_DATABASE_POSTGRES_ADMIN_SSL_MODE: disable
ZITADEL_EXTERNALSECURE: 'true'
ZITADEL_EXTERNALDOMAIN: auth.exemple.sn
ZITADEL_EXTERNALPORT: 443
ZITADEL_TLS_ENABLED: 'false'
depends_on:
- db
labels:
- "coolify.expose=true"
- "coolify.domain=https://auth.exemple.sn"
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: zitadel
volumes:
- zitadel-db:/var/lib/postgresql/data
volumes:
zitadel-db:
Étape 2 — Premier accès
- Logs container Zitadel : récupérer les credentials initial admin
- Ouvrir
https://auth.exemple.sn/ui/console - Login avec
zitadel-admin@zitadel.localhostet le mot de passe des logs - Changer immédiatement le mot de passe
- Activer 2FA / passkey sur ce compte
Étape 3 — Custom domain et email
- Settings → Domains : ajouter votre domaine custom
- Settings → SMTP Settings : Brevo ou autre pour les emails de vérification
- Configurer logo et thème de votre organisation
Étape 4 — Reverse proxy
Coolify configure auto Traefik. Vérifier que le proxy gère bien gRPC (Zitadel utilise HTTP/2 et gRPC pour son admin console).