From 2015884666a8d62ebd49c93403e88978ad4a67ad Mon Sep 17 00:00:00 2001 From: sheepdestroyer Date: Thu, 9 Jul 2026 12:36:58 +0200 Subject: [PATCH 1/3] chore: dynamically resolve NEXTAUTH_URL from PUBLIC_BASE_URL and fix probes --- pod.yaml | 4 ++-- start-stack.sh | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pod.yaml b/pod.yaml index 4541a55e..5f8c8ebf 100644 --- a/pod.yaml +++ b/pod.yaml @@ -55,7 +55,7 @@ spec: command: - python3 - -c - - import urllib.request; urllib.request.urlopen('http://localhost:4000/ping') + - import urllib.request; urllib.request.urlopen('http://localhost:4000/health/liveness') initialDelaySeconds: 240 periodSeconds: 15 timeoutSeconds: 5 @@ -273,7 +273,7 @@ spec: - name: NEXTAUTH_SECRET value: NEXTAUTH_SECRET_PLACEHOLDER - name: NEXTAUTH_URL - value: http://localhost:3001 + value: NEXTAUTH_URL_PLACEHOLDER - name: SALT value: SALT_PLACEHOLDER - name: ENCRYPTION_KEY diff --git a/start-stack.sh b/start-stack.sh index fd4f18b5..a2b98055 100755 --- a/start-stack.sh +++ b/start-stack.sh @@ -559,7 +559,8 @@ placeholders = [ "CLICKHOUSE_PASSWORD_PLACEHOLDER", "PROXY_BASE_URL_PLACEHOLDER", "PUBLIC_BASE_URL_PLACEHOLDER", - "ROUTING_DOMAIN_PLACEHOLDER" + "ROUTING_DOMAIN_PLACEHOLDER", + "NEXTAUTH_URL_PLACEHOLDER" ] for ph in placeholders: if ph not in text: @@ -584,10 +585,12 @@ text = text.replace("MINIO_PASSWORD_PLACEHOLDER", yaml_scalar(os.environ["MINIO_ text = text.replace("LANGFUSE_INIT_USER_PASSWORD_PLACEHOLDER", yaml_scalar(os.environ["LANGFUSE_INIT_USER_PASSWORD"])) text = text.replace("REDIS_AUTH_PLACEHOLDER", yaml_scalar(os.environ["REDIS_AUTH"])) text = text.replace("CLICKHOUSE_PASSWORD_PLACEHOLDER", yaml_scalar(os.environ["CLICKHOUSE_PASSWORD"])) -# Derive PROXY_BASE_URL from PUBLIC_BASE_URL +# Derive PROXY_BASE_URL and NEXTAUTH_URL from PUBLIC_BASE_URL public_base_url = os.environ["PUBLIC_BASE_URL"].rstrip("/") proxy_base_url = f"{public_base_url}/litellm" +nextauth_url = f"{public_base_url}/langfuse" text = text.replace("PROXY_BASE_URL_PLACEHOLDER", yaml_scalar(proxy_base_url)) +text = text.replace("NEXTAUTH_URL_PLACEHOLDER", yaml_scalar(nextauth_url)) text = text.replace("PUBLIC_BASE_URL_PLACEHOLDER", yaml_scalar(os.environ["PUBLIC_BASE_URL"])) text = text.replace("ROUTING_DOMAIN_PLACEHOLDER", yaml_scalar(os.environ["ROUTING_DOMAIN"])) import re From 92a500f857260b7a90b482ea23270e06b46ffaf2 Mon Sep 17 00:00:00 2001 From: sheepdestroyer Date: Thu, 9 Jul 2026 12:41:56 +0200 Subject: [PATCH 2/3] chore: support subdomain routing template variables --- pod.yaml | 2 +- start-stack.sh | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pod.yaml b/pod.yaml index 5f8c8ebf..db122105 100644 --- a/pod.yaml +++ b/pod.yaml @@ -46,7 +46,7 @@ spec: - name: OLLAMA_API_KEY value: OLLAMA_API_KEY_PLACEHOLDER - name: SERVER_ROOT_PATH - value: /llm-routing/litellm + value: SERVER_ROOT_PATH_PLACEHOLDER - name: PROXY_BASE_URL value: PROXY_BASE_URL_PLACEHOLDER image: ghcr.io/berriai/litellm:v1.91.0 diff --git a/start-stack.sh b/start-stack.sh index a2b98055..a630e6d9 100755 --- a/start-stack.sh +++ b/start-stack.sh @@ -84,7 +84,10 @@ fi PUBLIC_BASE_URL="${PUBLIC_BASE_URL%/}" LOCAL_BASE_URL="${LOCAL_BASE_URL:-http://localhost:5000}" LOCAL_BASE_URL="${LOCAL_BASE_URL%/}" -export PUBLIC_BASE_URL LOCAL_BASE_URL +LITELLM_PUBLIC_URL="${LITELLM_PUBLIC_URL:-https://litellm.x570.vendeuvre.lan}" +LANGFUSE_PUBLIC_URL="${LANGFUSE_PUBLIC_URL:-https://langfuse.x570.vendeuvre.lan}" +LITELLM_ROOT_PATH="${LITELLM_ROOT_PATH:-}" +export PUBLIC_BASE_URL LOCAL_BASE_URL LITELLM_PUBLIC_URL LANGFUSE_PUBLIC_URL LITELLM_ROOT_PATH # Ensure openssl is installed if we need to generate passwords/keys @@ -529,7 +532,7 @@ if podman pod exists agent-router-pod 2>/dev/null; then fi render_pod_yaml() { - export WORKDIR HOME LITELLM_MASTER_KEY POSTGRES_PASSWORD NEXTAUTH_SECRET SALT ENCRYPTION_KEY LANGFUSE_INIT_USER_PASSWORD MINIO_ROOT_USER MINIO_ROOT_PASSWORD OLLAMA_API_KEY LANGFUSE_PUBLIC_KEY LANGFUSE_SECRET_KEY CLASSIFIER_INPUT_MAX_CHARS REDIS_AUTH CLICKHOUSE_PASSWORD PUBLIC_BASE_URL ROUTING_DOMAIN + export WORKDIR HOME LITELLM_MASTER_KEY POSTGRES_PASSWORD NEXTAUTH_SECRET SALT ENCRYPTION_KEY LANGFUSE_INIT_USER_PASSWORD MINIO_ROOT_USER MINIO_ROOT_PASSWORD OLLAMA_API_KEY LANGFUSE_PUBLIC_KEY LANGFUSE_SECRET_KEY CLASSIFIER_INPUT_MAX_CHARS REDIS_AUTH CLICKHOUSE_PASSWORD PUBLIC_BASE_URL ROUTING_DOMAIN LITELLM_PUBLIC_URL LANGFUSE_PUBLIC_URL LITELLM_ROOT_PATH python3 - "$WORKDIR/pod.yaml" <<'PY' import os, sys, urllib.parse, json uid = os.getuid() @@ -560,7 +563,8 @@ placeholders = [ "PROXY_BASE_URL_PLACEHOLDER", "PUBLIC_BASE_URL_PLACEHOLDER", "ROUTING_DOMAIN_PLACEHOLDER", - "NEXTAUTH_URL_PLACEHOLDER" + "NEXTAUTH_URL_PLACEHOLDER", + "SERVER_ROOT_PATH_PLACEHOLDER" ] for ph in placeholders: if ph not in text: @@ -585,12 +589,9 @@ text = text.replace("MINIO_PASSWORD_PLACEHOLDER", yaml_scalar(os.environ["MINIO_ text = text.replace("LANGFUSE_INIT_USER_PASSWORD_PLACEHOLDER", yaml_scalar(os.environ["LANGFUSE_INIT_USER_PASSWORD"])) text = text.replace("REDIS_AUTH_PLACEHOLDER", yaml_scalar(os.environ["REDIS_AUTH"])) text = text.replace("CLICKHOUSE_PASSWORD_PLACEHOLDER", yaml_scalar(os.environ["CLICKHOUSE_PASSWORD"])) -# Derive PROXY_BASE_URL and NEXTAUTH_URL from PUBLIC_BASE_URL -public_base_url = os.environ["PUBLIC_BASE_URL"].rstrip("/") -proxy_base_url = f"{public_base_url}/litellm" -nextauth_url = f"{public_base_url}/langfuse" -text = text.replace("PROXY_BASE_URL_PLACEHOLDER", yaml_scalar(proxy_base_url)) -text = text.replace("NEXTAUTH_URL_PLACEHOLDER", yaml_scalar(nextauth_url)) +text = text.replace("PROXY_BASE_URL_PLACEHOLDER", yaml_scalar(os.environ["LITELLM_PUBLIC_URL"])) +text = text.replace("NEXTAUTH_URL_PLACEHOLDER", yaml_scalar(os.environ["LANGFUSE_PUBLIC_URL"])) +text = text.replace("SERVER_ROOT_PATH_PLACEHOLDER", yaml_scalar(os.environ["LITELLM_ROOT_PATH"])) text = text.replace("PUBLIC_BASE_URL_PLACEHOLDER", yaml_scalar(os.environ["PUBLIC_BASE_URL"])) text = text.replace("ROUTING_DOMAIN_PLACEHOLDER", yaml_scalar(os.environ["ROUTING_DOMAIN"])) import re From ed21b07fa2c6f29721b099cb43d5922e2d7c2728 Mon Sep 17 00:00:00 2001 From: sheepdestroyer Date: Fri, 10 Jul 2026 23:23:01 +0200 Subject: [PATCH 3/3] Update start-stack.sh Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- start-stack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/start-stack.sh b/start-stack.sh index a630e6d9..4f0f9588 100755 --- a/start-stack.sh +++ b/start-stack.sh @@ -84,8 +84,8 @@ fi PUBLIC_BASE_URL="${PUBLIC_BASE_URL%/}" LOCAL_BASE_URL="${LOCAL_BASE_URL:-http://localhost:5000}" LOCAL_BASE_URL="${LOCAL_BASE_URL%/}" -LITELLM_PUBLIC_URL="${LITELLM_PUBLIC_URL:-https://litellm.x570.vendeuvre.lan}" -LANGFUSE_PUBLIC_URL="${LANGFUSE_PUBLIC_URL:-https://langfuse.x570.vendeuvre.lan}" +LITELLM_PUBLIC_URL="${LITELLM_PUBLIC_URL:-https://litellm.x570.${ROUTING_DOMAIN}}" +LANGFUSE_PUBLIC_URL="${LANGFUSE_PUBLIC_URL:-https://langfuse.x570.${ROUTING_DOMAIN}}" LITELLM_ROOT_PATH="${LITELLM_ROOT_PATH:-}" export PUBLIC_BASE_URL LOCAL_BASE_URL LITELLM_PUBLIC_URL LANGFUSE_PUBLIC_URL LITELLM_ROOT_PATH