mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-15 14:52:05 -05:00
[PR #1001] [MERGED] fix(zitadel): wire EXTERNALDOMAIN to the generated domain #16309
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/1001
Author: @Siumauricio
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @Siumauricio
Base:
canary← Head:fix/zitadel-domain📝 Commits (1)
6786237fix(zitadel): wire EXTERNALDOMAIN/PORT/SECURE to the generated domain📊 Changes
3 files changed (+31 additions, -22 deletions)
View changed files
📝
blueprints/zitadel/docker-compose.yml(+19 -18)📝
blueprints/zitadel/meta.json(+1 -1)📝
blueprints/zitadel/template.toml(+11 -3)📄 Description
Problem
Deploying the Zitadel template and opening it on the configured domain ended in
{"code":5,"message":"Not Found"}(#516). Zitadel resolves its virtual instance and builds every URL (OIDC issuer, console environment, login redirects) fromZITADEL_EXTERNALDOMAIN+ZITADEL_EXTERNALPORT+ZITADEL_EXTERNALSECURE. The template hardcodedZITADEL_EXTERNALPORT: 8080(the internal container port), so all generated URLs pointed athttp://<domain>:8080instead of the domain/port actually served by Traefik.Fix
ZITADEL_EXTERNALDOMAIN,ZITADEL_EXTERNALPORTandZITADEL_EXTERNALSECUREas template env vars, defaulting to the generated domain over HTTP (80/false), matching the official compose reference. The domain in the Domains tab andZITADEL_EXTERNALDOMAINare both derived from${main_domain}, so they always match on first deploy. Users on HTTPS or a custom domain can flip the clearly named vars in the Env tab (comments in the compose/toml explain this, and that it must happen before the first deploy since Zitadel binds the instance to the domain on first start).v4.16.0(waslatest) and keep the built-in login v1 (ZITADEL_DEFAULTINSTANCE_FEATURES_LOGINV2_REQUIRED: false) so no separate login-v2 container is required./app/zitadel ready), remove the unused/app/datavolume, the bogus empty SMTP env keys, the published random host port and the obsoleteversion:key.Evidence (deployed on a Dokploy instance)
done, container healthy.http://<generated-domain>/→302 /ui/login→ HTTP 200 «ZITADEL • Management Console»http://<generated-domain>/debug/healthz→200:8080):Closes #516
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.