Files
local-deep-research/docs/installation.md
LearningCircuit 5bd717d022 docs(docker): clarify Windows/WSL2/Mac networking — drop --network host, use host.docker.internal (#3925)
Users following the README's Linux docker-run quick-start on Docker Desktop
hit two coupled issues: --network host silently drops -p 5000:5000, and
once it's removed, localhost inside the LDR container no longer reaches
host-side Ollama/SearXNG. The fix already exists (use host.docker.internal
or docker-compose), but our docs didn't surface it where users look.

- README: warn next to "Option 1: Docker Run (Linux)" that --network host
  is Linux-only, link to the Windows/WSL2 FAQ entry.
- installation.md: add a Mac/Windows/WSL2 docker-run variant alongside the
  Linux one, with the env vars that point Ollama/SearXNG at
  host.docker.internal and an --add-host flag so the same recipe works on
  Linux Docker Desktop too.
- faq.md: rewrite the misleading "Port 5000 not accessible on Windows"
  entry in place (extra_hosts does not fix port publishing). Keep the
  anchor for backlinks; replace the body with the real cause and a
  working recipe. Note the env-var-vs-UI precedence trap.
- troubleshooting.md: replace the stale `search.engine.searxng.url` key
  with the real one (`search.engine.web.searxng.default_params.instance_url`)
  and expand the cryptic "Docker networking: same as Ollama" line into a
  concrete fix with a pointer to the FAQ entry.

No code or default-value changes — kept defaults at localhost so native
pip installs and Linux --network host users are unaffected.
2026-05-09 13:13:47 +02:00

5.3 KiB
Raw Blame History

Installation

This page gives you copy-pasteable commands for every install method. For deeper configuration, follow the links to the dedicated guides.

Prerequisites: Docker and Docker Compose are required for Options 13 below (pip users only need Docker for the optional SearXNG container).

The easiest way to get started. Bundles LDR, Ollama, and SearXNG in one command.

CPU-only (all platforms):

curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.yml && docker compose up -d

With NVIDIA GPU (Linux only):

Prerequisites — install the NVIDIA Container Toolkit (Ubuntu/Debian):

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install nvidia-container-toolkit -y
sudo systemctl restart docker

# Verify installation
nvidia-smi

Note: For RHEL/CentOS/Fedora, Arch, or other distributions, see the NVIDIA Container Toolkit installation guide.

Then start the stack:

curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.yml && \
curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.gpu.override.yml && \
docker compose -f docker-compose.yml -f docker-compose.gpu.override.yml up -d

Optional alias for convenience:

alias docker-compose-gpu='docker compose -f docker-compose.yml -f docker-compose.gpu.override.yml'
# Then simply use: docker-compose-gpu up -d

Windows (PowerShell):

curl.exe -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.yml
if ($?) { docker compose up -d }

Use a different model:

curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.yml && MODEL=gpt-oss:20b docker compose up -d

Open http://localhost:5000 after ~30 seconds.

Note: curl -O will overwrite existing docker-compose.yml files in the current directory.

DIY docker-compose: See docker-compose.yml for a compose file with reasonable defaults. Things you may want to configure: Ollama GPU driver, context length, keep alive duration, and model selection.

For Cookiecutter setup, environment variables, and troubleshooting, see the Docker Compose Guide.

Docker

Run each container individually for a minimal setup.

Linux (native Docker Engine):

# Step 1: Pull and run SearXNG for optimal search results
docker run -d -p 8080:8080 --name searxng searxng/searxng

# Step 2: Pull and run Ollama
docker run -d -p 11434:11434 --name ollama ollama/ollama
docker exec ollama ollama pull gpt-oss:20b

# Step 3: Pull and run Local Deep Research
docker run -d -p 5000:5000 --network host \
  --name local-deep-research \
  --volume 'deep-research:/data' \
  -e LDR_DATA_DIR=/data \
  localdeepresearch/local-deep-research

Mac / Windows / WSL2 (Docker Desktop):

--network host doesn't work on Docker Desktop — it silently drops the port publish, and localhost inside the LDR container no longer reaches the Ollama/SearXNG containers. Drop --network host, keep -p 5000:5000, and point Ollama and SearXNG at host.docker.internal via env vars:

# Steps 1 and 2 (SearXNG + Ollama) are the same as above.

# Step 3: Pull and run Local Deep Research
docker run -d -p 5000:5000 \
  --name local-deep-research \
  --add-host=host.docker.internal:host-gateway \
  --volume 'deep-research:/data' \
  -e LDR_DATA_DIR=/data \
  -e LDR_LLM_OLLAMA_URL=http://host.docker.internal:11434 \
  -e LDR_SEARCH_ENGINE_WEB_SEARXNG_DEFAULT_PARAMS_INSTANCE_URL=http://host.docker.internal:8080 \
  localdeepresearch/local-deep-research

(--add-host is a no-op on Mac/Windows where host.docker.internal is already auto-injected, but makes the same recipe work on Linux Docker Desktop.)

If you'd rather not pass env vars, you can launch without them and then change the URLs after first login under Settings → LLM → Ollama URL and Settings → Search → SearXNG → Instance URL. For most users on these platforms, Docker Compose is simpler — it wires the URLs up automatically via service names.

Open http://localhost:5000 after ~30 seconds.

Python Package (pip)

Best for developers or users integrating LDR into existing Python projects.

pip install local-deep-research

For full setup (SearXNG, Ollama, SQLCipher), see the pip Guide.

Unraid

Local Deep Research is available as a pre-configured template for Unraid servers with sensible defaults, automatic SearXNG/Ollama integration, and NVIDIA GPU passthrough support.

For full setup instructions, see the Unraid Guide.