mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-23 15:38:55 +01:00
216acf545f
- Partition configuration for indexing local data based on user accounts - Store indexed data in an underlying postgres db using the `pgvector` extension - Add migrations for all relevant user data and embeddings generation. Very little performance optimization has been done for the lookup time - Apply filters using SQL queries - Start removing many server-level configuration settings - Configure GitHub test actions to run during any PR. Update the test action to run in a containerized environment with a DB. - Update the Docker image and docker-compose.yml to work with the new application design
54 lines
2 KiB
YAML
54 lines
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/
|
|
# 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
|
|
command: --host="0.0.0.0" --port=42110 -vv
|
|
|
|
|
|
volumes:
|
|
khoj_config:
|
|
khoj_db:
|