feat: use ${SUBDOMAIN} variable in all templates

All 51 docker-compose.yml: replaced hardcoded subdomain.${DOMAIN}
with ${SUBDOMAIN}.${DOMAIN} in Traefik labels, app env vars, and
comments.

All 51 .felhom.yml: added SUBDOMAIN deploy field (type: subdomain)
with default matching existing subdomain metadata value.

Works with felhom-controller v0.27.0 which validates and stores the
user-chosen subdomain in app.yaml. Existing deployed apps get
SUBDOMAIN auto-injected via InjectMissingFields() on next sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 15:06:44 +01:00
parent a969cbd557
commit 87d0e5e59d
102 changed files with 542 additions and 134 deletions
+8
View File
@@ -24,6 +24,14 @@ deploy_fields:
description: "A szerver domain neve"
locked_after_deploy: true
- env_var: SUBDOMAIN
label: "Aldomain"
type: subdomain
default: "cal"
required: true
locked_after_deploy: true
description: "Az alkalmazás aldomainje"
- env_var: NEXTAUTH_SECRET
label: "NextAuth titkosítási kulcs"
type: secret
+4 -4
View File
@@ -1,5 +1,5 @@
# Cal.com - Nyílt forráskódú időpontfoglaló (Calendly alternatíva)
# Domain: cal.${DOMAIN}
# Domain: ${SUBDOMAIN}.${DOMAIN}
# Database: postgres
# RAM: ~200M (mem_limit: 768M) | Pi-compatible: No
#
@@ -21,8 +21,8 @@ services:
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
- CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY}
- DATABASE_URL=postgresql://calcom:${DB_PASSWORD}@calcom-postgres:5432/calcom
- NEXT_PUBLIC_WEBAPP_URL=https://cal.${DOMAIN}
- NEXTAUTH_URL=https://cal.${DOMAIN}
- NEXT_PUBLIC_WEBAPP_URL=https://${SUBDOMAIN}.${DOMAIN}
- NEXTAUTH_URL=https://${SUBDOMAIN}.${DOMAIN}
networks:
- traefik-public
- calcom-internal
@@ -38,7 +38,7 @@ services:
start_period: 30s
labels:
- "traefik.enable=true"
- "traefik.http.routers.calcom.rule=Host(`cal.${DOMAIN}`)"
- "traefik.http.routers.calcom.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.calcom.entrypoints=websecure"
- "traefik.http.routers.calcom.tls=true"
- "traefik.http.routers.calcom.tls.certresolver=letsencrypt"