Spaces:
Sleeping
Sleeping
| services: | |
| database: | |
| image: docker.io/pgvector/pgvector:pg15 | |
| 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 | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:8080/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 2 | |
| search: | |
| image: docker.io/searxng/searxng:latest | |
| volumes: | |
| - khoj_search:/etc/searxng | |
| environment: | |
| - SEARXNG_BASE_URL=http://localhost:8080/ | |
| # Creates Computer for Epoch Search to use. | |
| # Set KHOJ_OPERATOR_ENABLED=True in the server service environment variable to enable. | |
| computer: | |
| container_name: khoj-computer | |
| image: ghcr.io/khoj-ai/khoj-computer:latest | |
| # build: | |
| # context: . | |
| # dockerfile: computer.Dockerfile | |
| ports: | |
| - "5900:5900" | |
| volumes: | |
| - khoj_computer:/home/operator | |
| 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:latest 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" | |
| extra_hosts: | |
| - "host.docker.internal:host-gateway" | |
| working_dir: /app | |
| volumes: | |
| - khoj_config:/root/.khoj/ | |
| - khoj_models:/root/.cache/torch/sentence_transformers | |
| - khoj_models:/root/.cache/huggingface | |
| # uncomment line below to mount docker socket to allow khoj to use its computer. | |
| # - /var/run/docker.sock:/var/run/docker.sock | |
| # 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 default Python sandbox used by Epoch Search to run code. Its container is specified above | |
| - KHOJ_TERRARIUM_URL=http://sandbox:8080 | |
| # Uncomment line below to have Epoch Search run code in remote E2B code sandbox instead of the self-hosted Terrarium sandbox above. Get your E2B API key from https://e2b.dev/. | |
| # - E2B_API_KEY=your_e2b_api_key | |
| # Default URL of SearxNG, the default web search engine used by Epoch Search. Its container is specified above | |
| - KHOJ_SEARXNG_URL=http://search:8080 | |
| # 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, DeepInfra, DeepSeek etc. | |
| # - OPENAI_BASE_URL=http://host.docker.internal:11434/v1/ | |
| # - KHOJ_DEFAULT_CHAT_MODEL=qwen3 | |
| # | |
| # 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 line below to enable Epoch Search to use its computer. | |
| # - KHOJ_OPERATOR_ENABLED=True | |
| # Uncomment appropriate lines below to enable web results with Epoch Search | |
| # Ensure you set your provider specific API keys. | |
| # --- | |
| # Paid, Fast API. Only does web search. Get API key from https://serper.dev/ | |
| # - SERPER_DEV_API_KEY=your_serper_dev_api_key | |
| # Paid, Higher Read Success API. Only does webpage read. Get API key from https://olostep.com/ | |
| # - OLOSTEP_API_KEY=your_olostep_api_key | |
| # Paid, Open API. Does both web search and webpage read. Get API key from https://firecrawl.dev/ | |
| # - FIRECRAWL_API_KEY=your_firecrawl_api_key | |
| # Paid, Fast API. Does both web search and webpage read. Get API key from https://exa.ai/ | |
| # - EXA_API_KEY=your_exa_api_key | |
| # | |
| # Uncomment the necessary lines below to make your instance publicly accessible. | |
| # Proceed with caution, especially if you are using anonymous mode. | |
| # --- | |
| # - KHOJ_NO_HTTPS=True | |
| # Replace the KHOJ_DOMAIN with the server's externally accessible domain or I.P address from a remote machie (no http/https prefix). | |
| # Ensure this is set correctly to avoid CSRF trusted origin or unset cookie issue when trying to access the admin panel. | |
| # - KHOJ_DOMAIN=192.168.0.104 | |
| # - KHOJ_DOMAIN=khoj.example.com | |
| # Replace the KHOJ_ALLOWED_DOMAIN with the server's internally accessible domain or I.P address on the host machine (no http/https prefix). | |
| # Only set if using a load balancer/reverse_proxy in front of your Epoch Search server. If unset, it defaults to KHOJ_DOMAIN. | |
| # For example, if the load balancer service is added to the khoj docker network, set KHOJ_ALLOWED_DOMAIN to khoj's docker service name: `server'. | |
| # - KHOJ_ALLOWED_DOMAIN=server | |
| # - KHOJ_ALLOWED_DOMAIN=127.0.0.1 | |
| # Uncomment the line below to disable telemetry. | |
| # Telemetry helps us prioritize feature development and understand how people are using Epoch Search | |
| # 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:latest prod image. | |
| command: --host="0.0.0.0" --port=42110 -vv --anonymous-mode --non-interactive | |
| volumes: | |
| khoj_config: | |
| khoj_db: | |
| khoj_models: | |
| khoj_search: | |
| khoj_computer: | |