mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-12-11 16:23:02 +01:00
5f3f6b7c61
- Add a productionized setup for the Khoj server using `gunicorn` with multiple workers for handling requests - Add a new Dockerfile meant for production config at `ghcr.io/khoj-ai/khoj:prod`; the existing Docker config should remain the same
58 lines
2.2 KiB
YAML
58 lines
2.2 KiB
YAML
version: "3.9"
|
|
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/
|
|
server:
|
|
# Use the following line to use the latest version of khoj. Otherwise, it will build from source.
|
|
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 offiicial 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:
|
|
- .:/app
|
|
# These mounted volumes hold the raw data that should be indexed for search.
|
|
# The path in your local directory (left hand side)
|
|
# points to the files you want to index.
|
|
# The path of the mounted directory (right hand side),
|
|
# must match the path prefix in your config file.
|
|
- ./tests/data/org/:/data/org/
|
|
- ./tests/data/images/:/data/images/
|
|
- ./tests/data/markdown/:/data/markdown/
|
|
- ./tests/data/pdf/:/data/pdf/
|
|
# Embeddings and models are populated after the first run
|
|
# You can set these volumes to point to empty directories on host
|
|
- ./tests/data/embeddings/:/root/.khoj/content/
|
|
- ./tests/data/models/:/root/.khoj/search/
|
|
- khoj_config:/root/.khoj/
|
|
- khoj_models:/root/.cache/torch/sentence_transformers
|
|
# 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
|
|
- GOOGLE_CLIENT_SECRET=bar
|
|
- GOOGLE_CLIENT_ID=foo
|
|
command: --host="0.0.0.0" --port=42110 -vv
|
|
|
|
|
|
volumes:
|
|
khoj_config:
|
|
khoj_db:
|
|
khoj_models:
|