From 043e1cb64a17c0b38f6856c7d2c4f6f4b765e98b Mon Sep 17 00:00:00 2001 From: Kelin Date: Sat, 7 Feb 2026 22:22:52 -0500 Subject: [PATCH] Fix Option 3: Create traefik-network and improve sed patterns Issue: Option 3 deployment failed because traefik-network wasn't created, but the cleanup function didn't properly strip network references from files. Changes: - scripts/ez-homelab.sh: Add traefik-network creation in Step 2 (Network is harmless if unused - prevents docker compose errors) - Improve sed patterns in configure_remote_server_routing(): * Use anchored patterns (^ and $) to match exact lines * Fix network removal regex to match indentation correctly The traefik-network will exist but remain unused on additional servers. Services are accessed via core Traefik's manual HTTP routes. --- docker-compose/dockge/docker-compose.yml | 2 +- scripts/ez-homelab.sh | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/docker-compose/dockge/docker-compose.yml b/docker-compose/dockge/docker-compose.yml index 86f3938..c564b8b 100644 --- a/docker-compose/dockge/docker-compose.yml +++ b/docker-compose/dockge/docker-compose.yml @@ -38,7 +38,7 @@ services: - 'homelab.description=Docker Compose stack manager' - 'traefik.enable=true' - 'traefik.docker.network=traefik-network' - - 'traefik.http.routers.dockge.rule=Host(`dockge.${DOMAIN}`)' + - 'traefik.http.routers.dockge.rule=Host(`dockge.${SERVER_HOSTNAME}.${DOMAIN}`)' - 'traefik.http.routers.dockge.entrypoints=websecure' - 'traefik.http.routers.dockge.tls.certresolver=letsencrypt' - 'traefik.http.routers.dockge.middlewares=authelia@docker' diff --git a/scripts/ez-homelab.sh b/scripts/ez-homelab.sh index 5deed61..0cffa37 100755 --- a/scripts/ez-homelab.sh +++ b/scripts/ez-homelab.sh @@ -1679,6 +1679,7 @@ deploy_remote_server() { # Step 2: Create required Docker networks log_info "Step 2: Creating required Docker networks..." docker network create homelab-network 2>/dev/null && log_success "Created homelab-network" || log_info "homelab-network already exists" + docker network create traefik-network 2>/dev/null && log_success "Created traefik-network" || log_info "traefik-network already exists" echo "" # Step 3: Install envsubst if not present @@ -1883,12 +1884,12 @@ configure_remote_server_routing() { # Remove Traefik labels and traefik-network from dockge if [ -f "/opt/dockge/docker-compose.yml" ]; then - # Remove all traefik.* labels + # Remove all traefik.* labels (lines containing "- 'traefik.") sed -i "/- 'traefik\./d" /opt/dockge/docker-compose.yml 2>/dev/null - # Remove traefik-network from networks section - sed -i "/- traefik-network/d" /opt/dockge/docker-compose.yml 2>/dev/null - # Remove traefik-network from external networks - sed -i "/traefik-network:/,/external: true/d" /opt/dockge/docker-compose.yml 2>/dev/null + # Remove traefik-network from service networks section (line with "- traefik-network") + sed -i "/^ - traefik-network$/d" /opt/dockge/docker-compose.yml 2>/dev/null + # Remove external network definition (traefik-network: and next line) + sed -i '/^ traefik-network:$/,/^ external: true$/d' /opt/dockge/docker-compose.yml 2>/dev/null log_info "✓ Dockge: Traefik labels removed (accessible via port 5001)" fi @@ -1897,10 +1898,10 @@ configure_remote_server_routing() { # Remove all traefik.* and sablier.* labels sed -i "/- 'traefik\./d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null sed -i "/- 'sablier\./d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null - # Remove traefik-network from networks sections - sed -i "/- traefik-network/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null - # Remove traefik-network from external networks (last occurrence) - sed -i "/traefik-network:/,/external: true/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null + # Remove traefik-network from service networks sections + sed -i "/^ - traefik-network$/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null + # Remove external network definition + sed -i '/^ traefik-network:$/,/^ external: true$/d' /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null log_info "✓ Infrastructure: Traefik labels removed (accessible via direct ports)" fi