services:
memory:
image: mcp-memory-libsql-go:local
build:
context: .
environment:
- LIBSQL_URL=${LIBSQL_URL:-file:/data/libsql.db}
- LIBSQL_AUTH_TOKEN=${LIBSQL_AUTH_TOKEN}
- EMBEDDING_DIMS=${EMBEDDING_DIMS:-4}
- EMBEDDINGS_PROVIDER=${EMBEDDINGS_PROVIDER}
- EMBEDDINGS_ADAPT_MODE=${EMBEDDINGS_ADAPT_MODE}
- DB_MAX_OPEN_CONNS=${DB_MAX_OPEN_CONNS}
- DB_MAX_IDLE_CONNS=${DB_MAX_IDLE_CONNS}
- DB_CONN_MAX_IDLE_SEC=${DB_CONN_MAX_IDLE_SEC}
- DB_CONN_MAX_LIFETIME_SEC=${DB_CONN_MAX_LIFETIME_SEC}
- HYBRID_SEARCH=${HYBRID_SEARCH}
- HYBRID_TEXT_WEIGHT=${HYBRID_TEXT_WEIGHT:-0.4}
- HYBRID_VECTOR_WEIGHT=${HYBRID_VECTOR_WEIGHT:-0.6}
- HYBRID_RRF_K=${HYBRID_RRF_K:-60}
- METRICS_PROMETHEUS=${METRICS_PROMETHEUS:-true}
- METRICS_PORT=${METRICS_PORT:-9090}
- TRANSPORT=${TRANSPORT:-sse}
- PORT=${PORT:-8080}
- SSE_ENDPOINT=${SSE_ENDPOINT:-/sse}
- MULTI_PROJECT_AUTH_REQUIRED=${MULTI_PROJECT_AUTH_REQUIRED}
- MULTI_PROJECT_AUTO_INIT_TOKEN=${MULTI_PROJECT_AUTO_INIT_TOKEN}
- MULTI_PROJECT_DEFAULT_TOKEN=${MULTI_PROJECT_DEFAULT_TOKEN}
- MODE=${MODE:-single}
- PROJECTS_DIR=${PROJECTS_DIR:-/data/projects}
command:
[
"-transport",
"${TRANSPORT:-sse}",
"-addr",
":${PORT:-8080}",
"-sse-endpoint",
"${SSE_ENDPOINT:-/sse}",
]
ports:
- "${PORT:-8080}:${PORT:-8080}"
- "${METRICS_PORT:-9090}:${METRICS_PORT:-9090}"
volumes:
- type: bind
source: ./data
target: /data
bind:
create_host_path: true
healthcheck:
test: >
CMD-SHELL
curl -fsS http://127.0.0.1:${PORT:-8090}/healthz &&
curl -fsS http://127.0.0.1:${METRICS_PORT:-9090}/healthz ||
pgrep -x mcp-memory-libsql-go >/dev/null
interval: 5s
timeout: 5s
start_period: 5s
retries: 30