From 33336c75ffa6ad73b9316355fd9dbd8c7baa621b Mon Sep 17 00:00:00 2001 From: Kelin Date: Sun, 8 Feb 2026 20:17:30 -0500 Subject: [PATCH] Fix step 9 registration failure - correct file verification The registration function creates '-server-routes.yml' but the verification was checking for 'docker-provider-.yml'. Changes: - Updated file verification to check for correct filenames - Added DOMAIN variable loading in add_remote_server_to_traefik() - Replaced hard-coded domain with ${DOMAIN} variable in route rules - Routes now use dynamic domain from .env instead of hard-coded value This fixes the 'docker-provider file not created' error in step 9. --- scripts/common.sh | 18 ++++++++++++++---- scripts/ez-homelab.sh | 8 ++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/scripts/common.sh b/scripts/common.sh index 9f33bda..38c1773 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -286,6 +286,16 @@ add_remote_server_to_traefik() { return 1 fi + # Load environment to get DOMAIN variable + if [ -f "$HOME/EZ-Homelab/.env" ]; then + source "$HOME/EZ-Homelab/.env" || load_env_file_safely "$HOME/EZ-Homelab/.env" + elif [ -f "/opt/stacks/core/.env" ]; then + source "/opt/stacks/core/.env" || load_env_file_safely "/opt/stacks/core/.env" + fi + + # Use DOMAIN variable or fallback to a default + local domain="${DOMAIN:-example.com}" + local traefik_dynamic_dir="/opt/stacks/core/traefik/dynamic" # Create dynamic directory if it doesn't exist @@ -308,7 +318,7 @@ add_remote_server_to_traefik() { http: routers: dockge-${server_hostname}: - rule: "Host(\`dockge.${server_hostname}.kelinreij.duckdns.org\`)" + rule: "Host(\`dockge.${server_hostname}.${domain}\`)" service: dockge-${server_hostname}-service entrypoints: - websecure @@ -316,7 +326,7 @@ http: certResolver: letsencrypt glances-${server_hostname}: - rule: "Host(\`glances.${server_hostname}.kelinreij.duckdns.org\`)" + rule: "Host(\`glances.${server_hostname}.${domain}\`)" service: glances-${server_hostname}-service entrypoints: - websecure @@ -324,7 +334,7 @@ http: certResolver: letsencrypt dozzle-${server_hostname}: - rule: "Host(\`dozzle.${server_hostname}.kelinreij.duckdns.org\`)" + rule: "Host(\`dozzle.${server_hostname}.${domain}\`)" service: dozzle-${server_hostname}-service entrypoints: - websecure @@ -332,7 +342,7 @@ http: certResolver: letsencrypt traefik-${server_hostname}: - rule: "Host(\`traefik.${server_hostname}.kelinreij.duckdns.org\`)" + rule: "Host(\`traefik.${server_hostname}.${domain}\`)" service: traefik-${server_hostname}-service entrypoints: - websecure diff --git a/scripts/ez-homelab.sh b/scripts/ez-homelab.sh index 44f98e0..52f43ad 100755 --- a/scripts/ez-homelab.sh +++ b/scripts/ez-homelab.sh @@ -1828,10 +1828,10 @@ register_remote_server_with_core() { add_remote_server_to_traefik "${SERVER_IP}" "${SERVER_HOSTNAME}" # Verify files were created - if [ -f "/opt/stacks/core/traefik/dynamic/docker-provider-${SERVER_HOSTNAME}.yml" ]; then - echo "SUCCESS: docker-provider file created" + if [ -f "/opt/stacks/core/traefik/dynamic/${SERVER_HOSTNAME}-server-routes.yml" ]; then + echo "SUCCESS: server routes file created" else - echo "ERROR: docker-provider file not created" + echo "ERROR: server routes file not created" exit 1 fi @@ -1858,7 +1858,7 @@ EOF if [ $ssh_exit_code -eq 0 ] && echo "$ssh_output" | grep -q "SUCCESS: Registration complete"; then log_success "Successfully registered with core server" log_info "Files created on core server:" - echo " - /opt/stacks/core/traefik/dynamic/docker-provider-${SERVER_HOSTNAME}.yml" + echo " - /opt/stacks/core/traefik/dynamic/${SERVER_HOSTNAME}-server-routes.yml" echo " - /opt/stacks/core/traefik/dynamic/sablier-middleware-${SERVER_HOSTNAME}.yml" return 0 else