diff --git a/.env.example b/.env.example index 5a5f6429..849b94ad 100644 --- a/.env.example +++ b/.env.example @@ -66,6 +66,10 @@ EMBEDDING_MODEL= # OPTIONAL url for openrag link to langflow in the UI LANGFLOW_PUBLIC_URL= +# OPTIONAL: Override the full docling-serve URL (e.g., for remote instances) +# If not set, auto-detects host and uses port 5001 +# DOCLING_SERVE_URL=http://my-docling-server:5001 + # OPTIONAL: Override host for docling service (for special networking setups) # HOST_DOCKER_INTERNAL=host.containers.internal diff --git a/src/api/docling.py b/src/api/docling.py index 22b709ef..2f9adcbd 100644 --- a/src/api/docling.py +++ b/src/api/docling.py @@ -1,5 +1,6 @@ """Docling service proxy endpoints.""" +import os import socket import struct from pathlib import Path @@ -73,9 +74,15 @@ def determine_docling_host() -> str: return "localhost" -# Detect the host IP once at startup -HOST_IP = determine_docling_host() -DOCLING_SERVICE_URL = f"http://{HOST_IP}:5001" +# Use explicit URL if provided, otherwise auto-detect host +_docling_url_override = os.getenv("DOCLING_SERVE_URL") +if _docling_url_override: + DOCLING_SERVICE_URL = _docling_url_override.rstrip("/") + HOST_IP = _docling_url_override # For display in health responses + logger.info("Using DOCLING_SERVE_URL override: %s", DOCLING_SERVICE_URL) +else: + HOST_IP = determine_docling_host() + DOCLING_SERVICE_URL = f"http://{HOST_IP}:5001" async def health(request: Request) -> JSONResponse: