From cab33d9f4c8c422feabba9e1e3cd916a501a6ed9 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Tue, 24 Mar 2026 15:06:58 +0200 Subject: [PATCH] fix: make ZERO_QUERY_URL portable across all environments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Default to Docker service networking (http://frontend:3000) in both compose files — works when all services run in Docker - Add extra_hosts (host.docker.internal:host-gateway) for cross-platform host access when running frontend outside Docker - Document override examples in .env.example for local dev and custom domain setups --- docker/.env.example | 8 ++++++++ docker/docker-compose.dev.yml | 4 +++- docker/docker-compose.yml | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docker/.env.example b/docker/.env.example index 04e67de04..716405f8e 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -85,6 +85,14 @@ EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 # ZERO_CVR_DB=postgresql://surfsense:surfsense@db:5432/surfsense # ZERO_CHANGE_DB=postgresql://surfsense:surfsense@db:5432/surfsense +# URL where zero-cache sends queries for resolution (server-to-server). +# Default: http://frontend:3000/api/zero/query (Docker service networking). +# Override when running the frontend outside Docker: +# ZERO_QUERY_URL=http://host.docker.internal:3000/api/zero/query +# Override for custom domain: +# ZERO_QUERY_URL=https://app.yourdomain.com/api/zero/query +# ZERO_QUERY_URL=http://frontend:3000/api/zero/query + # ------------------------------------------------------------------------------ # Database (defaults work out of the box, change for security) # ------------------------------------------------------------------------------ diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 233a1629a..e6cb3fd1d 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -173,6 +173,8 @@ services: image: rocicorp/zero:0.26.2 ports: - "${ZERO_CACHE_PORT:-4848}:4848" + extra_hosts: + - "host.docker.internal:host-gateway" depends_on: db: condition: service_healthy @@ -182,7 +184,7 @@ services: - ZERO_CHANGE_DB=${ZERO_CHANGE_DB:-postgresql://${DB_USER:-postgres}:${DB_PASSWORD:-postgres}@${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-surfsense}?sslmode=${DB_SSLMODE:-disable}} - ZERO_REPLICA_FILE=/data/zero.db - ZERO_ADMIN_PASSWORD=${ZERO_ADMIN_PASSWORD:-surfsense-zero-admin} - - ZERO_QUERY_URL=${ZERO_QUERY_URL:-http://host.docker.internal:3000/api/zero/query} + - ZERO_QUERY_URL=${ZERO_QUERY_URL:-http://frontend:3000/api/zero/query} volumes: - zero_cache_data:/data restart: unless-stopped diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 9dc5d5e14..9b9993c7f 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -162,6 +162,8 @@ services: image: rocicorp/zero:0.26.2 ports: - "${ZERO_CACHE_PORT:-5929}:4848" + extra_hosts: + - "host.docker.internal:host-gateway" environment: ZERO_UPSTREAM_DB: ${ZERO_UPSTREAM_DB:-postgresql://${DB_USER:-surfsense}:${DB_PASSWORD:-surfsense}@${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-surfsense}?sslmode=${DB_SSLMODE:-disable}} ZERO_CVR_DB: ${ZERO_CVR_DB:-postgresql://${DB_USER:-surfsense}:${DB_PASSWORD:-surfsense}@${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-surfsense}?sslmode=${DB_SSLMODE:-disable}}