Fix: Restore Traefik labels for Option 2 core deployments

The previous commit removed labels from templates, breaking Option 2 (Core Server)
deployments. This commit restores the proper architecture:

Templates (docker-compose files):
- Restore all Traefik labels to dockge/docker-compose.yml
- Restore all Traefik labels to infrastructure services (dozzle, glances, code-server)
- Restore traefik-network references
- Templates now work correctly for Option 2 (Core Server)

Scripts (ez-homelab.sh):
- Rewrite configure_remote_server_routing() to strip labels for Option 3
- Re-add configure_remote_server_routing() call to deploy_remote_server()
- Add as Step 5 (after copying stacks, before deploying them)
- Update remaining step numbers (6-9)

Architecture flow:
Option 2 (Core Server):
  - Uses templates as-is with Traefik labels
  - Local Traefik discovers services via Docker labels
  - Services accessible at https://service.domain

Option 3 (Additional Server):
  - Copies templates with labels (Step 4)
  - Strips out labels and traefik-network (Step 5)
  - Deploys labelless services with exposed ports (Steps 6-8)
  - Core Traefik routes via manual HTTP configs to IP:PORT
  - Services accessible at https://service.hostname.domain
This commit is contained in:
Kelin
2026-02-07 21:59:21 -05:00
parent ce3fbdb244
commit 16f7eaa703
3 changed files with 77 additions and 64 deletions

View File

@@ -125,6 +125,7 @@ services:
restart: no
networks:
- homelab-network
- traefik-network
ports:
- '8085:8080'
volumes:
@@ -143,6 +144,15 @@ services:
- 'com.centurylinklabs.watchtower.enable=true'
- 'homelab.category=infrastructure'
- 'homelab.description=Real-time Docker log viewer'
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
- 'traefik.http.routers.dozzle.rule=Host(`dozzle.${DOMAIN}`)'
- 'traefik.http.routers.dozzle.entrypoints=websecure'
- 'traefik.http.routers.dozzle.tls.certresolver=letsencrypt'
- 'traefik.http.routers.dozzle.middlewares=authelia@docker'
- 'traefik.http.services.dozzle.loadbalancer.server.port=8080'
- 'sablier.enable=true'
- 'sablier.group=dozzle'
# Glances - System monitoring
# Uses Sablier lazy loading - starts on-demand, stops after 30min inactivity
@@ -161,6 +171,7 @@ services:
restart: no
networks:
- homelab-network
- traefik-network
ports:
- '61208:61208'
pid: host
@@ -179,6 +190,15 @@ services:
- 'com.centurylinklabs.watchtower.enable=true'
- 'homelab.category=infrastructure'
- 'homelab.description=System and Docker monitoring'
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
- 'traefik.http.routers.glances.rule=Host(`glances.${DOMAIN}`)'
- 'traefik.http.routers.glances.entrypoints=websecure'
- 'traefik.http.routers.glances.tls.certresolver=letsencrypt'
- 'traefik.http.routers.glances.middlewares=authelia@docker'
- 'traefik.http.services.glances.loadbalancer.server.port=61208'
- 'sablier.enable=true'
- 'sablier.group=glances'
# Code Server - VS Code in browser
# Uses Sablier lazy loading - starts on-demand, stops after 30min inactivity
@@ -197,6 +217,7 @@ services:
restart: no
networks:
- homelab-network
- traefik-network
ports:
- '8079:8443'
volumes:
@@ -219,6 +240,15 @@ services:
- 'com.centurylinklabs.watchtower.enable=true'
- 'homelab.category=infrastructure'
- 'homelab.description=VS Code in browser'
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
- 'traefik.http.routers.code-server.rule=Host(`code.${DOMAIN}`)'
- 'traefik.http.routers.code-server.entrypoints=websecure'
- 'traefik.http.routers.code-server.tls.certresolver=letsencrypt'
- 'traefik.http.routers.code-server.middlewares=authelia@docker'
- 'traefik.http.services.code-server.loadbalancer.server.port=8443'
- 'sablier.enable=true'
- 'sablier.group=code-server'
x-dockge:
urls:
@@ -236,3 +266,5 @@ x-dockge:
networks:
homelab-network:
external: true
traefik-network:
external: true