services:
knot-server:
image: raultov/knot-server:latest
ports:
- "${KNOT_SERVER_PORT:-3000}:${KNOT_SERVER_PORT:-3000}"
environment:
- KNOT_SERVER_PORT=${KNOT_SERVER_PORT:-3000}
- KNOT_WORKSPACE_DIR=/var/lib/knot/repos
- KNOT_SERVER_QDRANT_URL=http://qdrant:6334
- KNOT_SERVER_NEO4J_URI=bolt://neo4j:7687
- KNOT_NEO4J_USER=neo4j
- KNOT_NEO4J_PASSWORD=knot_secret_password
- SSH_AUTH_SOCK=/ssh-agent
- KNOT_SERVER_POLL_INTERVAL_SECS=${KNOT_SERVER_POLL_INTERVAL_SECS:-86400}
- KNOT_SERVER_MAX_INDEX_AGE_SECS=${KNOT_SERVER_MAX_INDEX_AGE_SECS:-86400}
- KNOT_SERVER_STALE_LOCK_TIMEOUT_SECS=${KNOT_SERVER_STALE_LOCK_TIMEOUT_SECS:-3600}
volumes:
- knot_workspace:/var/lib/knot/repos
- ${HOME}/.cache/knot/fastembed_cache:/var/lib/knot/repos/fastembed_cache
- ${KNOT_SSH_KEYS_DIR:-${HOME}/.ssh}:/tmp/ssh_keys:ro
- /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro
- ${SSH_AUTH_SOCK}:/ssh-agent:ro
- ${KNOT_LOCAL_REPOS_DIR:-${HOME}/.knot/empty}:${KNOT_LOCAL_REPOS_DIR:-${HOME}/.knot/empty}:ro
depends_on:
qdrant:
condition: service_started
neo4j:
condition: service_started
qdrant:
image: qdrant/qdrant:v1.16.2
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_data:/qdrant/storage
neo4j:
image: neo4j:5.26-community
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_AUTH=neo4j/knot_secret_password
- NEO4J_PLUGINS=["apoc"]
volumes:
- neo4j_data:/data
volumes:
knot_workspace:
fastembed_cache:
qdrant_data:
neo4j_data: