-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
88 lines (86 loc) · 4.28 KB
/
Copy pathdocker-compose.yml
File metadata and controls
88 lines (86 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
services:
api:
container_name: memorepo-api
build:
context: .
dockerfile: apps/api/Dockerfile
args:
CODEBASE_MEMORY_MCP_VERSION: ${CODEBASE_MEMORY_MCP_VERSION:-v0.9.0}
CODEBASE_MEMORY_MCP_SHA256_AMD64: ${CODEBASE_MEMORY_MCP_SHA256_AMD64:-8459d5c9d1457f2c82de3de307ffc7641ecbba2dde893427be1e62eca8ef9b25}
CODEBASE_MEMORY_MCP_SHA256_ARM64: ${CODEBASE_MEMORY_MCP_SHA256_ARM64:-b0a43fdaf534073c16707d72726b73b149d4c1212034b281ee8b7b2dac755107}
environment:
NODE_ENV: production
API_HOST: 0.0.0.0
API_PORT: 8787
# Optional personal access token. When set, MemoRepo uses it instead of requesting OAuth login.
GH_TOKEN: ${GH_TOKEN:-}
# Optional development/fork override. Official builds use MemoRepo's embedded public Client ID.
GITHUB_OAUTH_CLIENT_ID: ${GITHUB_OAUTH_CLIENT_ID:-}
MEMOREPO_CONTROL_TOKEN: ${MEMOREPO_CONTROL_TOKEN:?Set MEMOREPO_CONTROL_TOKEN in .env}
MEMOREPO_HOME: /var/lib/memorepo
MEMOREPO_SECRETS_DIR: /var/lib/memorepo-secrets
MEMOREPO_API_CONTAINER_NAME: ${MEMOREPO_API_CONTAINER_NAME:-memorepo-api}
MEMOREPO_AGENT_PROVIDER_ID: ${MEMOREPO_AGENT_PROVIDER_ID:-}
MEMOREPO_AGENT_MODEL_ID: ${MEMOREPO_AGENT_MODEL_ID:-}
MEMOREPO_AGENT_MAX_RUN_SECONDS: ${MEMOREPO_AGENT_MAX_RUN_SECONDS:-1800}
MEMOREPO_AGENT_MAX_TOOL_CALLS: ${MEMOREPO_AGENT_MAX_TOOL_CALLS:-200}
MEMOREPO_AGENT_MAX_PROVIDER_ROUNDS: ${MEMOREPO_AGENT_MAX_PROVIDER_ROUNDS:-50}
MEMOREPO_AGENT_MAX_ACTIVE_TURNS: ${MEMOREPO_AGENT_MAX_ACTIVE_TURNS:-2}
MEMOREPO_AGENT_MAX_QUEUED_TURNS: ${MEMOREPO_AGENT_MAX_QUEUED_TURNS:-20}
MEMOREPO_CBM_INDEX_CONCURRENCY: ${MEMOREPO_CBM_INDEX_CONCURRENCY:-1}
MEMOREPO_CBM_INTERACTIVE_CONCURRENCY: ${MEMOREPO_CBM_INTERACTIVE_CONCURRENCY:-2}
MEMOREPO_CBM_INDEX_MODE: ${MEMOREPO_CBM_INDEX_MODE:-fast}
MEMOREPO_ENFORCE_SNAPSHOT_QUALITY: ${MEMOREPO_ENFORCE_SNAPSHOT_QUALITY:-true}
MEMOREPO_COMPACT_CBM_RESPONSES: ${MEMOREPO_COMPACT_CBM_RESPONSES:-true}
MEMOREPO_BATCH_REPOSITORY_OPERATIONS: ${MEMOREPO_BATCH_REPOSITORY_OPERATIONS:-true}
# Snapshot-only is the production rollout default. Set to false for an immediate
# rollback to the legacy per-repository mutable index plus snapshot flow.
MEMOREPO_SNAPSHOT_ONLY_INDEXING: ${MEMOREPO_SNAPSHOT_ONLY_INDEXING:-true}
MEMOREPO_PUBLIC_API_URL: http://127.0.0.1:${API_PORT:-8787}
FRONTEND_ORIGIN: http://127.0.0.1:${WEB_PORT:-5173}
MEMOREPO_RATE_LIMIT_WINDOW_MS: ${MEMOREPO_RATE_LIMIT_WINDOW_MS:-60000}
MEMOREPO_AUTH_RATE_LIMIT_MAX: ${MEMOREPO_AUTH_RATE_LIMIT_MAX:-10}
MEMOREPO_API_READ_RATE_LIMIT_MAX: ${MEMOREPO_API_READ_RATE_LIMIT_MAX:-300}
MEMOREPO_API_WRITE_RATE_LIMIT_MAX: ${MEMOREPO_API_WRITE_RATE_LIMIT_MAX:-30}
MEMOREPO_API_SSE_RATE_LIMIT_MAX: ${MEMOREPO_API_SSE_RATE_LIMIT_MAX:-30}
MEMOREPO_MCP_RATE_LIMIT_MAX: ${MEMOREPO_MCP_RATE_LIMIT_MAX:-120}
volumes:
# New installs use a Docker-managed volume for faster index I/O. Existing .env files
# without MEMOREPO_STORAGE keep their MEMOREPO_HOME bind mount unchanged.
- ${MEMOREPO_STORAGE:-${MEMOREPO_HOME:-memorepo-data}}:/var/lib/memorepo
- memorepo-secrets:/var/lib/memorepo-secrets
ports:
- "127.0.0.1:${API_PORT:-8787}:8787"
# Bounds CBM indexing failures to the API container. Tune from measured cgroup
# peak memory; code 137 and oom_kill events are reported as possible OOMs.
mem_limit: ${MEMOREPO_API_MEMORY_LIMIT:-12g}
mem_reservation: ${MEMOREPO_API_MEMORY_RESERVATION:-2g}
pids_limit: ${MEMOREPO_API_PIDS_LIMIT:-512}
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8787/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
web:
container_name: memorepo-web
build:
context: .
dockerfile: apps/web/Dockerfile
args:
VITE_API_URL: http://127.0.0.1:${API_PORT:-8787}
ports:
- "127.0.0.1:${WEB_PORT:-5173}:5173"
depends_on:
- api
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:5173/"]
interval: 30s
timeout: 5s
retries: 3
volumes:
memorepo-data:
name: ${MEMOREPO_DATA_VOLUME_NAME:-memorepo-data}
memorepo-secrets: