mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-12-18 18:47:11 +00:00
9d02978f6e
This allows online search to work out of the box again for self-hosting users, as no auth/api key setup required. Docker users do not need to change anything in their setup flow. Direct installers can setup searxng locally or use public instances if they do not want to use any of the other providers (like Jina, Serper) Resolves #749. Resolves #990
107 lines
4.5 KiB
YAML
107 lines
4.5 KiB
YAML
services:
|
|
database:
|
|
image: ankane/pgvector
|
|
ports:
|
|
- "5432:5432"
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
volumes:
|
|
- khoj_db:/var/lib/postgresql/data/
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
sandbox:
|
|
image: ghcr.io/khoj-ai/terrarium:latest
|
|
ports:
|
|
- "8080:8080"
|
|
search:
|
|
image: docker.io/searxng/searxng:latest
|
|
ports:
|
|
- "42113:8080"
|
|
volumes:
|
|
- khoj_search:/etc/searxng
|
|
environment:
|
|
- SEARXNG_BASE_URL=http://localhost:42113/
|
|
- SEARXNG_SECRET_KEY=change_me_to_something_random # Change this in production
|
|
server:
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
# Use the following line to use the latest version of khoj. Otherwise, it will build from source. Set this to ghcr.io/khoj-ai/khoj-cloud if you want to use the prod image.
|
|
image: ghcr.io/khoj-ai/khoj:latest
|
|
# Uncomment the following line to build from source. This will take a few minutes. Comment the next two lines out if you want to use the official image.
|
|
# build:
|
|
# context: .
|
|
ports:
|
|
# If changing the local port (left hand side), no other changes required.
|
|
# If changing the remote port (right hand side),
|
|
# change the port in the args in the build section,
|
|
# as well as the port in the command section to match
|
|
- "42110:42110"
|
|
working_dir: /app
|
|
volumes:
|
|
- khoj_config:/root/.khoj/
|
|
- khoj_models:/root/.cache/torch/sentence_transformers
|
|
- khoj_models:/root/.cache/huggingface
|
|
# Use 0.0.0.0 to explicitly set the host ip for the service on the container. https://pythonspeed.com/articles/docker-connection-refused/
|
|
environment:
|
|
- POSTGRES_DB=postgres
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=postgres
|
|
- POSTGRES_HOST=database
|
|
- POSTGRES_PORT=5432
|
|
- KHOJ_DJANGO_SECRET_KEY=secret
|
|
- KHOJ_DEBUG=False
|
|
- KHOJ_ADMIN_EMAIL=username@example.com
|
|
- KHOJ_ADMIN_PASSWORD=password
|
|
# Default URL of Terrarium, the Python sandbox used by Khoj to run code. Its container is specified above
|
|
- KHOJ_TERRARIUM_URL=http://host.docker.internal:8080
|
|
# Default URL of SearxNG, the default web search engine used by Khoj. Its container is specified above
|
|
- KHOJ_SEARXNG_URL=http://host.docker.internal:42113
|
|
# Uncomment line below to use with Ollama running on your local machine at localhost:11434.
|
|
# Change URL to use with other OpenAI API compatible providers like VLLM, LMStudio etc.
|
|
# - OPENAI_API_BASE=http://host.docker.internal:11434/v1/
|
|
#
|
|
# Uncomment appropriate lines below to use chat models by OpenAI, Anthropic, Google.
|
|
# Ensure you set your provider specific API keys.
|
|
# ---
|
|
# - OPENAI_API_KEY=your_openai_api_key
|
|
# - GEMINI_API_KEY=your_gemini_api_key
|
|
# - ANTHROPIC_API_KEY=your_anthropic_api_key
|
|
#
|
|
# Uncomment appropriate lines below to enable web results with Khoj
|
|
# Ensure you set your provider specific API keys.
|
|
# ---
|
|
# Free, Slower API. Does both web search and webpage read. Get API key from https://jina.ai/
|
|
# - JINA_API_KEY=your_jina_api_key
|
|
# Paid, Fast API. Only does web search. Get API key from https://serper.dev/
|
|
# - SERPER_DEV_API_KEY=your_serper_dev_api_key
|
|
# Paid, Fast, Open API. Only does webpage read. Get API key from https://firecrawl.dev/
|
|
# - FIRECRAWL_API_KEY=your_firecrawl_api_key
|
|
# Paid, Fast, Higher Read Success API. Only does webpage read. Get API key from https://olostep.com/
|
|
# - OLOSTEP_API_KEY=your_olostep_api_key
|
|
#
|
|
# Uncomment the necessary lines below to make your instance publicly accessible.
|
|
# Replace the KHOJ_DOMAIN with either your domain or IP address (no http/https prefix).
|
|
# Proceed with caution, especially if you are using anonymous mode.
|
|
# ---
|
|
# - KHOJ_NO_HTTPS=True
|
|
# - KHOJ_DOMAIN=192.168.0.104
|
|
# - KHOJ_DOMAIN=khoj.example.com
|
|
# Uncomment the line below to disable telemetry.
|
|
# Telemetry helps us prioritize feature development and understand how people are using Khoj
|
|
# Read more at https://docs.khoj.dev/miscellaneous/telemetry
|
|
# - KHOJ_TELEMETRY_DISABLE=True
|
|
# Comment out this line when you're using the official ghcr.io/khoj-ai/khoj-cloud prod image.
|
|
command: --host="0.0.0.0" --port=42110 -vv --anonymous-mode --non-interactive
|
|
|
|
|
|
volumes:
|
|
khoj_config:
|
|
khoj_db:
|
|
khoj_models:
|
|
khoj_search:
|