From f7556b0dadb2e274302e564a13cb0627e2173140 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sun, 22 Feb 2026 13:51:39 +0100 Subject: [PATCH] =?UTF-8?q?v0.26.2=20=E2=80=94=20show=20full=20app=20URL?= =?UTF-8?q?=20on=20deploy=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Domain field now displays subdomain.base_domain (e.g. wiki.demo-felhom.eu) instead of just the base domain, matching the app card display. Applies to both pre-deploy and post-deploy settings pages. Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 6 ++++++ controller/internal/stacks/deploy.go | 8 +++++++- controller/internal/web/handlers.go | 7 ++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd2d38a..e2184ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## Changelog +### v0.26.2 — Show Full App URL on Deploy Page (2026-02-22) + +#### Fixed +- **`internal/stacks/deploy.go`** — `PreviewDeployValues()` now shows the full reachable URL (`subdomain.base_domain`) for domain-type fields instead of just the base domain. Informational only — stored env var remains the base domain. +- **`internal/web/handlers.go`** — Same fix applied to the already-deployed settings page: domain field displays `subdomain.base_domain` matching what the app card shows. + ### v0.26.1 — Show Auto-Generated Values on Deploy Page (2026-02-22) #### Changed diff --git a/controller/internal/stacks/deploy.go b/controller/internal/stacks/deploy.go index 7a5d9cc..8a8e44f 100644 --- a/controller/internal/stacks/deploy.go +++ b/controller/internal/stacks/deploy.go @@ -387,7 +387,13 @@ func (m *Manager) PreviewDeployValues(name string) (map[string]string, error) { for _, field := range meta.DeployFields { switch field.Type { case "domain": - result[field.EnvVar] = m.cfg.Customer.Domain + // Show the full URL the app will be reachable at (subdomain.base_domain). + // This is informational only — DeployStack always stores the base domain. + if meta.Subdomain != "" { + result[field.EnvVar] = meta.Subdomain + "." + m.cfg.Customer.Domain + } else { + result[field.EnvVar] = m.cfg.Customer.Domain + } case "secret": if field.Generate == "" { continue diff --git a/controller/internal/web/handlers.go b/controller/internal/web/handlers.go index acf8b9a..ad82e75 100644 --- a/controller/internal/web/handlers.go +++ b/controller/internal/web/handlers.go @@ -259,7 +259,12 @@ func (s *Server) deployHandler(w http.ResponseWriter, r *http.Request, name stri if alreadyDeployed && appCfg != nil { for _, f := range meta.AutoGeneratedFields() { if val, ok := appCfg.Env[f.EnvVar]; ok { - autoFieldValues[f.EnvVar] = val + // For domain fields show the full URL (subdomain.base_domain) as displayed on app cards. + if f.Type == "domain" && meta.Subdomain != "" { + autoFieldValues[f.EnvVar] = meta.Subdomain + "." + val + } else { + autoFieldValues[f.EnvVar] = val + } } } } else if !alreadyDeployed {