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.
This commit is contained in:
Kelin
2026-02-07 22:22:52 -05:00
parent 16f7eaa703
commit 043e1cb64a
2 changed files with 11 additions and 10 deletions

View File

@@ -38,7 +38,7 @@ services:
- 'homelab.description=Docker Compose stack manager' - 'homelab.description=Docker Compose stack manager'
- 'traefik.enable=true' - 'traefik.enable=true'
- 'traefik.docker.network=traefik-network' - '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.entrypoints=websecure'
- 'traefik.http.routers.dockge.tls.certresolver=letsencrypt' - 'traefik.http.routers.dockge.tls.certresolver=letsencrypt'
- 'traefik.http.routers.dockge.middlewares=authelia@docker' - 'traefik.http.routers.dockge.middlewares=authelia@docker'

View File

@@ -1679,6 +1679,7 @@ deploy_remote_server() {
# Step 2: Create required Docker networks # Step 2: Create required Docker networks
log_info "Step 2: Creating 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 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 "" echo ""
# Step 3: Install envsubst if not present # Step 3: Install envsubst if not present
@@ -1883,12 +1884,12 @@ configure_remote_server_routing() {
# Remove Traefik labels and traefik-network from dockge # Remove Traefik labels and traefik-network from dockge
if [ -f "/opt/dockge/docker-compose.yml" ]; then 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 sed -i "/- 'traefik\./d" /opt/dockge/docker-compose.yml 2>/dev/null
# Remove traefik-network from networks section # Remove traefik-network from service networks section (line with "- traefik-network")
sed -i "/- traefik-network/d" /opt/dockge/docker-compose.yml 2>/dev/null sed -i "/^ - traefik-network$/d" /opt/dockge/docker-compose.yml 2>/dev/null
# Remove traefik-network from external networks # Remove external network definition (traefik-network: and next line)
sed -i "/traefik-network:/,/external: true/d" /opt/dockge/docker-compose.yml 2>/dev/null 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)" log_info "✓ Dockge: Traefik labels removed (accessible via port 5001)"
fi fi
@@ -1897,10 +1898,10 @@ configure_remote_server_routing() {
# Remove all traefik.* and sablier.* labels # Remove all traefik.* and sablier.* labels
sed -i "/- 'traefik\./d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null 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 sed -i "/- 'sablier\./d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
# Remove traefik-network from networks sections # Remove traefik-network from service networks sections
sed -i "/- traefik-network/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null sed -i "/^ - traefik-network$/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
# Remove traefik-network from external networks (last occurrence) # Remove external network definition
sed -i "/traefik-network:/,/external: true/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null 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)" log_info "✓ Infrastructure: Traefik labels removed (accessible via direct ports)"
fi fi