From 4d886fb92929c15f061810470caf6b058012af29 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 06:11:25 +0000 Subject: [PATCH] Fix: Enable FalkorDB Browser startup in MCP Server Docker image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fix addresses issue #1041 where the FalkorDB Browser web UI was not starting automatically in the combined FalkorDB + MCP Server Docker image. Changes: - Modified start-services.sh script in Dockerfile to include browser startup logic - Browser now starts automatically when BROWSER=1 (default behavior) - Can be disabled by setting BROWSER=0 environment variable - Browser logs are written to /var/log/graphiti/browser.log - Added safety checks to verify browser files exist before starting Updated documentation: - Added BROWSER environment variable to docker-compose.yml - Documented BROWSER variable in README-falkordb-combined.md - Added section explaining how to disable the browser - Updated architecture diagrams to show browser process The fix follows the upstream FalkorDB image pattern where the browser starts with HOSTNAME="0.0.0.0" on port 3000. Resolves #1041 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Daniel Chalef --- mcp_server/docker/Dockerfile | 14 +++++++++ mcp_server/docker/README-falkordb-combined.md | 29 +++++++++++++++++-- mcp_server/docker/docker-compose.yml | 1 + 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/mcp_server/docker/Dockerfile b/mcp_server/docker/Dockerfile index 3ca2c980..d4c4d37d 100644 --- a/mcp_server/docker/Dockerfile +++ b/mcp_server/docker/Dockerfile @@ -85,6 +85,20 @@ until redis-cli -h localhost -p 6379 ping > /dev/null 2>&1; do done echo "FalkorDB is ready!" +# Start FalkorDB Browser if enabled (default: enabled) +if [ "${BROWSER:-1}" = "1" ]; then + if [ -d "/var/lib/falkordb/browser" ] && [ -f "/var/lib/falkordb/browser/server.js" ]; then + echo "Starting FalkorDB Browser on port 3000..." + cd /var/lib/falkordb/browser + HOSTNAME="0.0.0.0" node server.js > /var/log/graphiti/browser.log 2>&1 & + echo "FalkorDB Browser started in background" + else + echo "Warning: FalkorDB Browser files not found, skipping browser startup" + fi +else + echo "FalkorDB Browser disabled (BROWSER=${BROWSER})" +fi + # Start MCP server in foreground echo "Starting MCP server..." cd /app/mcp diff --git a/mcp_server/docker/README-falkordb-combined.md b/mcp_server/docker/README-falkordb-combined.md index 6ed33e8e..2ecc70a5 100644 --- a/mcp_server/docker/README-falkordb-combined.md +++ b/mcp_server/docker/README-falkordb-combined.md @@ -83,6 +83,7 @@ All environment variables from the standard MCP server are supported: - `OPENAI_API_KEY`: OpenAI API key for LLM operations **Optional:** +- `BROWSER`: Enable FalkorDB Browser web UI on port 3000 (default: "1", set to "0" to disable) - `GRAPHITI_GROUP_ID`: Namespace for graph data (default: "main") - `SEMAPHORE_LIMIT`: Concurrency limit for episode processing (default: 10) - `FALKORDB_PASSWORD`: Password for FalkorDB (optional) @@ -96,7 +97,7 @@ All environment variables from the standard MCP server are supported: ### Volumes - `/var/lib/falkordb/data`: Persistent storage for graph data -- `/var/log/graphiti`: MCP server logs +- `/var/log/graphiti`: MCP server and FalkorDB Browser logs ## Service Management @@ -123,6 +124,26 @@ docker compose -f docker/docker-compose-falkordb-combined.yml exec graphiti-falk curl http://localhost:8000/health ``` +### Disabling the FalkorDB Browser + +To disable the FalkorDB Browser web UI (port 3000), set the `BROWSER` environment variable to `0`: + +```bash +# Using docker run +docker run -d \ + -p 6379:6379 \ + -p 8000:8000 \ + -e BROWSER=0 \ + -e OPENAI_API_KEY=your_key \ + zepai/graphiti-falkordb:latest + +# Using docker-compose +# Add to your .env file: +BROWSER=0 +``` + +When disabled, only FalkorDB (port 6379) and the MCP server (port 8000) will run. + ## Health Checks The container includes a health check that verifies: @@ -140,10 +161,11 @@ docker compose -f docker/docker-compose-falkordb-combined.yml ps ``` start-services.sh (PID 1) ├── redis-server (FalkorDB daemon) +├── node server.js (FalkorDB Browser - background, if BROWSER=1) └── uv run main.py (MCP server - foreground) ``` -The startup script launches FalkorDB as a background daemon, waits for it to be ready, then starts the MCP server in the foreground. When the MCP server stops, the container exits. +The startup script launches FalkorDB as a background daemon, waits for it to be ready, optionally starts the FalkorDB Browser (if `BROWSER=1`), then starts the MCP server in the foreground. When the MCP server stops, the container exits. ### Directory Structure ``` @@ -155,7 +177,8 @@ The startup script launches FalkorDB as a background daemon, waits for it to be └── .graphiti-core-version # Installed version info /var/lib/falkordb/data/ # Persistent graph storage -/var/log/graphiti/ # MCP server logs +/var/lib/falkordb/browser/ # FalkorDB Browser web UI +/var/log/graphiti/ # MCP server and Browser logs /start-services.sh # Startup script ``` diff --git a/mcp_server/docker/docker-compose.yml b/mcp_server/docker/docker-compose.yml index 1986110b..9ec7daf0 100644 --- a/mcp_server/docker/docker-compose.yml +++ b/mcp_server/docker/docker-compose.yml @@ -15,6 +15,7 @@ services: environment: # FalkorDB configuration - FALKORDB_PASSWORD=${FALKORDB_PASSWORD:-} + - BROWSER=${BROWSER:-1} # Enable FalkorDB Browser UI (set to 0 to disable) # MCP Server configuration - FALKORDB_URI=redis://localhost:6379 - FALKORDB_DATABASE=${FALKORDB_DATABASE:-default_db}