Fix remote server Traefik configuration
- Add ports 80/443 to remote Traefik template - Enable API access (insecure=true) for debugging - Update configure_remote_server_routing to use HTTP-only config - Change entrypoint from websecure to web - Remove TLS cert resolver references - Remove authelia middleware references - Replace Docker TLS provider with manual HTTP routes - Core Traefik now uses file provider with direct URLs - Fixes 404/gateway timeout errors on remote services - Routes HTTPS from core to HTTP on remote servers - Fix port in routes (dozzle uses 8085, not 8082) Resolves issues with remote server service accessibility.
This commit is contained in:
@@ -1900,32 +1900,62 @@ configure_remote_server_routing() {
|
||||
|
||||
local server_name="$SERVER_HOSTNAME"
|
||||
|
||||
# Update dockge with server-specific subdomain
|
||||
# Update dockge with server-specific subdomain and HTTP-only configuration
|
||||
if [ -f "/opt/dockge/docker-compose.yml" ]; then
|
||||
sed -i "s/Host(\`dockge\.kelinreij\.duckdns\.org\`)/Host(\`dockge.${server_name}.kelinreij.duckdns.org\`)/" /opt/dockge/docker-compose.yml 2>/dev/null
|
||||
sed -i "s/Host(\`dockge\.\${DOMAIN}\`)/Host(\`dockge.${server_name}.kelinreij.duckdns.org\`)/" /opt/dockge/docker-compose.yml 2>/dev/null
|
||||
sed -i "s/'traefik.enable=false'/'traefik.enable=true'/" /opt/dockge/docker-compose.yml 2>/dev/null
|
||||
log_info "✓ Dockge: dockge.${server_name}.kelinreij.duckdns.org"
|
||||
# Change to web entrypoint (HTTP-only for remote servers)
|
||||
sed -i "s/entrypoints=websecure/entrypoints=web/" /opt/dockge/docker-compose.yml 2>/dev/null
|
||||
# Remove TLS cert resolver (not needed for remote)
|
||||
sed -i "/traefik.http.routers.dockge.tls.certresolver/d" /opt/dockge/docker-compose.yml 2>/dev/null
|
||||
# Remove authelia middleware (not available on remote)
|
||||
sed -i "/traefik.http.routers.dockge.middlewares=authelia@docker/d" /opt/dockge/docker-compose.yml 2>/dev/null
|
||||
log_info "✓ Dockge: dockge.${server_name}.kelinreij.duckdns.org (HTTP)"
|
||||
fi
|
||||
|
||||
# Update infrastructure services (dozzle, glances)
|
||||
# Update infrastructure services (dozzle, glances) with HTTP-only configuration
|
||||
if [ -f "/opt/stacks/infrastructure/docker-compose.yml" ]; then
|
||||
sed -i "s/Host(\`dozzle\.[^.]*\.kelinreij\.duckdns\.org\`)/Host(\`dozzle.${server_name}.kelinreij.duckdns.org\`)/" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
sed -i "s/Host(\`glances\.[^.]*\.kelinreij\.duckdns\.org\`)/Host(\`glances.${server_name}.kelinreij.duckdns.org\`)/" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
log_info "✓ Dozzle: dozzle.${server_name}.kelinreij.duckdns.org"
|
||||
log_info "✓ Glances: glances.${server_name}.kelinreij.duckdns.org"
|
||||
# Update hostnames
|
||||
sed -i "s/Host(\`dozzle\.\${DOMAIN}\`)/Host(\`dozzle.${server_name}.kelinreij.duckdns.org\`)/" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
sed -i "s/Host(\`glances\.\${DOMAIN}\`)/Host(\`glances.${server_name}.kelinreij.duckdns.org\`)/" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
|
||||
# Change to web entrypoint (HTTP-only for remote servers)
|
||||
sed -i "s/traefik.http.routers.dozzle.entrypoints=websecure/traefik.http.routers.dozzle.entrypoints=web/" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
sed -i "s/traefik.http.routers.glances.entrypoints=websecure/traefik.http.routers.glances.entrypoints=web/" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
|
||||
# Remove TLS configuration
|
||||
sed -i "/traefik.http.routers.dozzle.tls=/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
sed -i "/traefik.http.routers.glances.tls=/d" /opt/stacks/infrastructure/docker-compose.yml 2>/dev/null
|
||||
|
||||
log_info "✓ Dozzle: dozzle.${server_name}.kelinreij.duckdns.org (HTTP)"
|
||||
log_info "✓ Glances: glances.${server_name}.kelinreij.duckdns.org (HTTP)"
|
||||
|
||||
# Disable sablier routing (no web UI)
|
||||
sed -i "s/'traefik.enable=true'/'traefik.enable=false'/g" /opt/stacks/sablier/docker-compose.yml 2>/dev/null
|
||||
log_info "✓ Sablier: Traefik disabled (no web UI)"
|
||||
fi
|
||||
|
||||
# Update Traefik dashboard route
|
||||
# Update Traefik dashboard route to use HTTP
|
||||
if [ -f "/opt/stacks/traefik/dynamic/routes.yml" ]; then
|
||||
sed -i "s/Host(\`traefik\.[^.]*\.kelinreij\.duckdns\.org\`)/Host(\`traefik.${server_name}.kelinreij.duckdns.org\`)/" /opt/stacks/traefik/dynamic/routes.yml 2>/dev/null
|
||||
log_info "✓ Traefik Dashboard: traefik.${server_name}.kelinreij.duckdns.org"
|
||||
cat > "/opt/stacks/traefik/dynamic/routes.yml" <<EOF
|
||||
# Traefik Dynamic Routes for Remote Server
|
||||
# Auto-generated by EZ-Homelab
|
||||
#
|
||||
# This file is watched by Traefik and reloaded automatically
|
||||
# Add custom routes here if needed
|
||||
|
||||
http:
|
||||
routers:
|
||||
traefik-dashboard:
|
||||
rule: "Host(\`traefik.${server_name}.kelinreij.duckdns.org\`)"
|
||||
entryPoints:
|
||||
- web
|
||||
service: api@internal
|
||||
EOF
|
||||
log_info "✓ Traefik Dashboard: traefik.${server_name}.kelinreij.duckdns.org (HTTP)"
|
||||
fi
|
||||
|
||||
log_success "Server-specific routing configured"
|
||||
log_success "Server-specific routing configured (HTTP-only for remote servers)"
|
||||
}
|
||||
|
||||
# Copy all stacks for remote server (except core)
|
||||
@@ -2010,8 +2040,8 @@ deploy_traefik_stack() {
|
||||
|
||||
# Create placeholder routes.yml file in dynamic directory
|
||||
if [ ! -f "$traefik_dir/dynamic/routes.yml" ]; then
|
||||
log_info "Creating placeholder routes.yml..."
|
||||
cat > "$traefik_dir/dynamic/routes.yml" <<'ROUTESYML'
|
||||
log_info "Creating Traefik dashboard route for remote server..."
|
||||
cat > "$traefik_dir/dynamic/routes.yml" <<EOF
|
||||
# Traefik Dynamic Routes for Remote Server
|
||||
# Auto-generated by EZ-Homelab
|
||||
#
|
||||
@@ -2019,11 +2049,14 @@ deploy_traefik_stack() {
|
||||
# Add custom routes here if needed
|
||||
|
||||
http:
|
||||
routers: {}
|
||||
services: {}
|
||||
middlewares: {}
|
||||
ROUTESYML
|
||||
log_success "Created routes.yml"
|
||||
routers:
|
||||
traefik-dashboard:
|
||||
rule: "Host(\`traefik.${SERVER_HOSTNAME}.kelinreij.duckdns.org\`)"
|
||||
entryPoints:
|
||||
- web
|
||||
service: api@internal
|
||||
EOF
|
||||
log_success "Created routes.yml with dashboard route"
|
||||
fi
|
||||
|
||||
# Verify docker-compose.yml exists
|
||||
|
||||
Reference in New Issue
Block a user