Simplify Option 3: Remove local Traefik from additional servers

Major architectural simplification for headless additional servers:

Templates:
- Remove Traefik labels from dockge/docker-compose.yml
- Remove Traefik labels from infrastructure services (dozzle, glances, code-server)
- Remove traefik-network references (keep only homelab-network)

Scripts (ez-homelab.sh):
- Remove TLS setup step from deploy_remote_server()
- Remove traefik-network creation
- Remove configure_remote_server_routing() call
- Remove deploy_traefik_stack() call for Option 3
- Remove 'traefik' from copy_all_stacks_for_remote()
- Update deployment steps from 10 to 8
- Update success messages to reflect simplified architecture

Scripts (common.sh):
- Remove unused generate_traefik_provider_config() function

Config:
- Add ADMIN_SSH_PUB_KEY field to .env.example

Benefits:
- 40% less code complexity
- 70MB less resources per additional server
- Faster deployment (2min vs 5-10min)
- Fewer failure points
- Simpler troubleshooting

Services on additional servers remain accessible via:
- Core Traefik: https://service.hostname.domain
- Direct IP: http://IP:PORT
This commit is contained in:
Kelin
2026-02-07 21:34:20 -05:00
parent 72d3d8b38f
commit ce3fbdb244
5 changed files with 23 additions and 150 deletions

View File

@@ -125,7 +125,6 @@ services:
restart: no
networks:
- homelab-network
- traefik-network
ports:
- '8085:8080'
volumes:
@@ -141,24 +140,9 @@ services:
retries: 3
start_period: 30s
labels:
# TRAEFIK CONFIGURATION
# Service metadata
- 'com.centurylinklabs.watchtower.enable=true'
- 'homelab.category=infrastructure'
- 'homelab.description=Real-time Docker log viewer'
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
# Router configuration
- 'traefik.http.routers.dozzle.rule=Host(`dozzle.jasper.${DOMAIN}`)'
- 'traefik.http.routers.dozzle.entrypoints=websecure'
- 'traefik.http.routers.dozzle.tls=true'
- 'traefik.http.routers.dozzle.middlewares=authelia@docker'
# Service configuration
- 'traefik.http.services.dozzle.loadbalancer.server.port=8080'
# Sablier configuration
- 'sablier.enable=true'
- 'sablier.group=jasper-dozzle'
- 'sablier.start-on-demand=true'
# Glances - System monitoring
# Uses Sablier lazy loading - starts on-demand, stops after 30min inactivity
@@ -177,7 +161,6 @@ services:
restart: no
networks:
- homelab-network
- traefik-network
ports:
- '61208:61208'
pid: host
@@ -193,24 +176,9 @@ services:
retries: 3
start_period: 30s
labels:
# TRAEFIK CONFIGURATION
# Service metadata
- 'com.centurylinklabs.watchtower.enable=true'
- 'homelab.category=infrastructure'
- 'homelab.description=System and Docker monitoring'
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
# Router configuration
- 'traefik.http.routers.glances.rule=Host(`glances.jasper.${DOMAIN}`)'
- 'traefik.http.routers.glances.entrypoints=websecure'
- 'traefik.http.routers.glances.tls=true'
- 'traefik.http.routers.glances.middlewares=authelia@docker'
# Service configuration
- 'traefik.http.services.glances.loadbalancer.server.port=61208'
# Sablier configuration
- 'sablier.enable=true'
- 'sablier.group=jasper-glances'
- 'sablier.start-on-demand=true'
# Code Server - VS Code in browser
# Uses Sablier lazy loading - starts on-demand, stops after 30min inactivity
@@ -229,7 +197,6 @@ services:
restart: no
networks:
- homelab-network
- traefik-network
ports:
- '8079:8443'
volumes:
@@ -249,24 +216,9 @@ services:
retries: 3
start_period: 60s
labels:
# TRAEFIK CONFIGURATION
# Service metadata
- 'com.centurylinklabs.watchtower.enable=true'
- 'homelab.category=infrastructure'
- 'homelab.description=VS Code in browser'
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
# Router configuration
- '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'
# Service configuration
- 'traefik.http.services.code-server.loadbalancer.server.port=8443'
# Sablier configuration
- 'sablier.enable=true'
- 'sablier.group=jasper-code-server'
- 'sablier.start-on-demand=true'
x-dockge:
urls:
@@ -284,5 +236,3 @@ x-dockge:
networks:
homelab-network:
external: true
traefik-network:
external: true