You've already forked mnemory
90 lines
2.9 KiB
YAML
90 lines
2.9 KiB
YAML
---
|
|
services:
|
|
mnemory:
|
|
image: genunix/mnemory:${MNEMORY_VERSION}
|
|
restart: unless-stopped
|
|
depends_on:
|
|
qdrant:
|
|
condition: service_healthy
|
|
environment:
|
|
- DATA_DIR=/data
|
|
- MCP_HOST=0.0.0.0
|
|
- MCP_PORT=8050
|
|
- MGMT_HOST=127.0.0.1
|
|
- MGMT_PORT=9090
|
|
- MCP_API_KEY=${MCP_API_KEY}
|
|
- SERVER_BASE_URL=${SERVER_BASE_URL}
|
|
- INSTRUCTION_MODE=${INSTRUCTION_MODE}
|
|
- ENABLE_METRICS=${ENABLE_METRICS}
|
|
- ENABLE_DELETE_ALL=${ENABLE_DELETE_ALL}
|
|
- LOG_LEVEL=${LOG_LEVEL}
|
|
- DEFAULT_TIMEZONE=${TIMEZONE}
|
|
- LLM_API_KEY=${LLM_API_KEY}
|
|
- LLM_BASE_URL=${LLM_BASE_URL}
|
|
- LLM_MODEL=${LLM_MODEL}
|
|
- EMBED_API_KEY=${EMBED_API_KEY}
|
|
- EMBED_BASE_URL=${EMBED_BASE_URL}
|
|
- EMBED_MODEL=${EMBED_MODEL}
|
|
- EMBED_DIMS=${EMBED_DIMS}
|
|
- QDRANT_HOST=qdrant
|
|
- QDRANT_PORT=6333
|
|
- QDRANT_API_KEY=${QDRANT_API_KEY}
|
|
- QDRANT_COLLECTION=${QDRANT_COLLECTION}
|
|
- ARTIFACT_BACKEND=filesystem
|
|
- ARTIFACT_PATH=/data/artifacts
|
|
- SESSION_BACKEND=sqlite
|
|
- SESSION_PATH=/data/sessions.db
|
|
- FSCK_AUTO_INTERVAL=${FSCK_AUTO_INTERVAL}
|
|
healthcheck:
|
|
test: ["CMD", "httpx", "http://127.0.0.1:9090/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 20s
|
|
retries: 3
|
|
labels:
|
|
### Section Træfik
|
|
- traefik.enable=${TRAEFIK_ENABLED}
|
|
- traefik.docker.network=${TRAEFIK_NETWORK}
|
|
## HTTP
|
|
- traefik.http.routers.http-${TRAEFIK_ROUTER}.entrypoints=http
|
|
# redirect to HTTPS only
|
|
- traefik.http.routers.http-${TRAEFIK_ROUTER}.middlewares=${TRAEFIK_HTTP_MIDDLEWARES}
|
|
- traefik.http.routers.http-${TRAEFIK_ROUTER}.rule=${TRAEFIK_MATCHRULE}
|
|
## HTTPS
|
|
- traefik.http.routers.https-${TRAEFIK_ROUTER}.entrypoints=https
|
|
# configure the exposed service
|
|
- traefik.http.routers.https-${TRAEFIK_ROUTER}.middlewares=${TRAEFIK_HTTPS_MIDDLEWARES}
|
|
- traefik.http.routers.https-${TRAEFIK_ROUTER}.rule=${TRAEFIK_MATCHRULE}
|
|
# enable TLS and its certificate provider
|
|
- traefik.http.routers.https-${TRAEFIK_ROUTER}.tls=${TRAEFIK_TLSENABLED}
|
|
- traefik.http.routers.https-${TRAEFIK_ROUTER}.tls.certresolver=${TRAEFIK_CERTRESOLVER}
|
|
# specify a service so a custom port can be used
|
|
- traefik.http.services.${TRAEFIK_SERVICE}.loadbalancer.server.port=${TRAEFIK_SERVICE_PORT}
|
|
networks:
|
|
- internal
|
|
- traefik
|
|
volumes:
|
|
- ${MNEMORY_DATA}:/data
|
|
|
|
qdrant:
|
|
image: qdrant/qdrant:${QDRANT_VERSION}
|
|
restart: unless-stopped
|
|
environment:
|
|
- QDRANT__SERVICE__API_KEY=${QDRANT_API_KEY}
|
|
healthcheck:
|
|
test: ["CMD", "bash", "-c", ":> /dev/tcp/127.0.0.1/6333"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
start_period: 10s
|
|
retries: 5
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- ${QDRANT_DATA}:/qdrant/storage
|
|
|
|
networks:
|
|
internal:
|
|
traefik:
|
|
external: true
|
|
name: ${TRAEFIK_NETWORK}
|