Ce dépôt construit une image Docker mono-service, directement déployable par CapRover. PostgreSQL n'est pas embarqué : fournissez une instance PostgreSQL 14 à 18, une base zitadel et un rôle disposant des droits nécessaires sur cette base.
L'image utilise ZITADEL avec son interface de connexion intégrée (Login V1). Login V2 nécessite un second conteneur et un routage par chemin ; il n'est donc pas inclus dans ce déploiement mono-service.
CapRover termine HTTPS. L'image démarre donc explicitement ZITADEL avec --tlsMode external : ne configurez ni certificat ni clé TLS dans l'application.
- Déployez ce dépôt normalement dans l'application CapRover. Le fichier
captain-definitionfait construire leDockerfile. - Dans App Configs > HTTP Settings, définissez le Container HTTP Port sur
8080, associez le domaine deZITADEL_DOMAIN, puis activez HTTPS. - Dans App Configs > Environmental Variables, copiez les variables de
.env.exampleen remplaçant impérativement toutes les valeurs d'exemple. - Redéployez l'application après avoir enregistré les variables.
N'ajoutez pas de volume PostgreSQL à l'application : la base est externe. Le DSN doit viser une base et un rôle existants. Les caractères réservés du mot de passe doivent être encodés dans l'URL ; utilisez de préférence sslmode=verify-full.
ZITADEL_MASTERKEY doit faire exactement 32 caractères, être générée une seule fois puis sauvegardée hors du VPS. La modifier après l'initialisation rend les données chiffrées illisibles.
Les valeurs ZITADEL_FIRSTINSTANCE_* servent uniquement au premier démarrage. Le mot de passe initial doit comprendre au moins huit caractères, une majuscule, une minuscule, un chiffre et un symbole.
Sauvegardez PostgreSQL avant toute mise à jour. Modifiez le tag ZITADEL dans le Dockerfile, consultez les notes de version, puis redéployez l’application depuis CapRover.