-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
169 lines (163 loc) · 6.98 KB
/
Copy pathdocker-compose.yml
File metadata and controls
169 lines (163 loc) · 6.98 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
name: ${COMPOSE_PROJECT_NAME:-muscle-memory}
x-log-policy: &log-policy
driver: json-file
options:
max-size: 10m
max-file: "3"
services:
api:
build:
context: .
dockerfile: Dockerfile
image: muscle-memory-api:local
init: true
restart: unless-stopped
read_only: true
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
pids_limit: 256
stop_grace_period: 30s
environment:
MM_API_BACKEND_FACTORY: ${MM_API_BACKEND_FACTORY:-muscle_memory.runtime:create_api_backend}
MM_API_HOST: 0.0.0.0
MM_API_PORT: "8000"
MM_API_LOG_LEVEL: ${MM_API_LOG_LEVEL:-info}
MM_API_AUTH_CREDENTIALS_JSON: '[{"subject":"local-operator","token_sha256":"${MM_API_OPERATOR_TOKEN_SHA256:?Generate the local backend environment first}","scopes":["approvals:write","workflows:write","corrections:write","episodes:write","training:write"]}]'
MUSCLE_MEMORY_COORDINATOR_DB_PATH: /var/lib/muscle-memory/coordinator/coordinator.sqlite3
MUSCLE_MEMORY_TELEMETRY_SPOOL: /var/lib/muscle-memory/telemetry/laserdata-spool.sqlite3
MUSCLE_MEMORY_FALKORDB_CACHE_PATH: /var/lib/muscle-memory/graph/falkordb-events.jsonl
MM_ASSET_CACHE_DIR: /var/lib/muscle-memory/assets/cache
MM_ASSET_APPROVAL_LEDGER_DIR: /var/lib/muscle-memory/assets/approvals
MM_TASK_POLICY_TRAINING_ROOT: /var/lib/muscle-memory/training
LASERDATA_CONNECTION_STRING: ${LASERDATA_CONNECTION_STRING:-${IGGY_ROOT_USERNAME:-iggy}:${IGGY_ROOT_PASSWORD:?Generate the local backend environment first}@laserdata:8090}
LASERDATA_STREAM: ${LASERDATA_STREAM:-muscle-memory}
LASERDATA_TOPIC: ${LASERDATA_TOPIC:-episode-events-v2}
LASERDATA_PARTITIONS: ${LASERDATA_PARTITIONS:-4}
LASERDATA_TIMEOUT_SECONDS: ${LASERDATA_TIMEOUT_SECONDS:-5}
MUSCLE_MEMORY_FALKORDB_URL: ${MUSCLE_MEMORY_FALKORDB_URL:-redis://:${FALKORDB_PASSWORD:?Generate the local backend environment first}@falkordb:6379}
MUSCLE_MEMORY_FALKORDB_GRAPH: ${MUSCLE_MEMORY_FALKORDB_GRAPH:-muscle_memory}
MUSCLE_MEMORY_FALKORDB_QUERY_TIMEOUT_MS: ${MUSCLE_MEMORY_FALKORDB_QUERY_TIMEOUT_MS:-2000}
MM_ASSET_REFERENCE_ENDPOINT: ${MM_ASSET_REFERENCE_ENDPOINT:-}
MM_ASSET_REFERENCE_API_KEY: ${MM_ASSET_REFERENCE_API_KEY:-}
MM_ASSET_REFERENCE_TIMEOUT_SECONDS: ${MM_ASSET_REFERENCE_TIMEOUT_SECONDS:-10}
MM_ASSET_TRELLIS_ENDPOINT: ${MM_ASSET_TRELLIS_ENDPOINT:-}
MM_ASSET_TRELLIS_API_KEY: ${MM_ASSET_TRELLIS_API_KEY:-}
MM_ASSET_TRELLIS_TIMEOUT_SECONDS: ${MM_ASSET_TRELLIS_TIMEOUT_SECONDS:-30}
MUSCLE_MEMORY_GUILD_OWNER: ${MUSCLE_MEMORY_GUILD_OWNER:-}
MUSCLE_MEMORY_GUILD_WORKSPACE: ${MUSCLE_MEMORY_GUILD_WORKSPACE:-}
MUSCLE_MEMORY_GUILD_BASE_URL: ${MUSCLE_MEMORY_GUILD_BASE_URL:-https://app.guild.ai}
MUSCLE_MEMORY_GUILD_WORLD_AND_PHYSICS_CREDENTIALS: ${MUSCLE_MEMORY_GUILD_WORLD_AND_PHYSICS_CREDENTIALS:-}
MUSCLE_MEMORY_GUILD_FAILURE_AND_CURRICULUM_CREDENTIALS: ${MUSCLE_MEMORY_GUILD_FAILURE_AND_CURRICULUM_CREDENTIALS:-}
MUSCLE_MEMORY_GUILD_SAFETY_AND_EVALUATION_CREDENTIALS: ${MUSCLE_MEMORY_GUILD_SAFETY_AND_EVALUATION_CREDENTIALS:-}
ROCKETRIDE_URI: ${ROCKETRIDE_URI:-}
ROCKETRIDE_APIKEY: ${ROCKETRIDE_APIKEY:-}
ROCKETRIDE_MM_COORDINATOR_URL: ${ROCKETRIDE_MM_COORDINATOR_URL:-}
ROCKETRIDE_MM_COORDINATOR_TOKEN: ${ROCKETRIDE_MM_COORDINATOR_TOKEN:-}
ROCKETRIDE_VERIFY_ENVELOPE_FILE: ${ROCKETRIDE_VERIFY_ENVELOPE_FILE:-}
ROCKETRIDE_REQUEST_TIMEOUT_MS: ${ROCKETRIDE_REQUEST_TIMEOUT_MS:-120000}
MM_HELDOUT_EVALUATION_ARTIFACT: ${MM_HELDOUT_EVALUATION_ARTIFACT:-}
MM_HELDOUT_EVALUATION_ARTIFACT_SHA256: ${MM_HELDOUT_EVALUATION_ARTIFACT_SHA256:-}
MM_HELDOUT_CANDIDATE_CHECKPOINT: ${MM_HELDOUT_CANDIDATE_CHECKPOINT:-}
MM_HELDOUT_EVALUATED_AT: ${MM_HELDOUT_EVALUATED_AT:-}
MM_STABLE_POLICY_ALIAS: ${MM_STABLE_POLICY_ALIAS:-stable}
volumes:
- coordinator-data:/var/lib/muscle-memory/coordinator
- telemetry-data:/var/lib/muscle-memory/telemetry
- graph-cache:/var/lib/muscle-memory/graph
- asset-cache:/var/lib/muscle-memory/assets
- training-data:/var/lib/muscle-memory/training
tmpfs:
- /tmp:rw,noexec,nosuid,size=64m
ports:
- "${MM_API_BIND_ADDRESS:-127.0.0.1}:${MM_API_PORT:-8000}:8000"
depends_on:
falkordb:
condition: service_healthy
laserdata:
condition: service_healthy
healthcheck:
test: ["CMD", "python", "-m", "ops.deployment.healthcheck"]
interval: 15s
timeout: 5s
retries: 5
start_period: 30s
logging: *log-policy
networks:
- backend
labels:
com.muscle-memory.environment: self-hosted-development
falkordb:
image: falkordb/falkordb-server:v4.20.1@sha256:8b676c2e72271f5d06541136eb214b0db50180636cc86f7ee38d63287e9b8d13
restart: unless-stopped
environment:
FALKORDB_PASSWORD: ${FALKORDB_PASSWORD:?Generate the local backend environment first}
REDIS_ARGS: --requirepass ${FALKORDB_PASSWORD:?Generate the local backend environment first} --appendonly yes --appendfsync everysec
FALKORDB_ARGS: THREAD_COUNT ${FALKORDB_THREADS:-4} TIMEOUT_MAX ${MUSCLE_MEMORY_FALKORDB_QUERY_TIMEOUT_MS:-2000}
volumes:
- falkordb-data:/data
ports:
- "${MM_PROVIDER_BIND_ADDRESS:-127.0.0.1}:${FALKORDB_PORT:-6379}:6379"
healthcheck:
test: ["CMD-SHELL", "redis-cli --no-auth-warning -a \"$$FALKORDB_PASSWORD\" ping | grep -qx PONG"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
logging: *log-policy
networks:
- backend
labels:
com.muscle-memory.evidence-boundary: self-hosted-development-not-cloud
laserdata:
image: docker.io/laserdatainc/iggy-server:latest@sha256:70f71ede54f391cd511d7109de96bd7f4044f236d4a65c2b30b1cf15a5e9b6ea
init: true
restart: unless-stopped
cap_add:
- SYS_NICE
security_opt:
- seccomp:unconfined
ulimits:
memlock:
soft: -1
hard: -1
environment:
IGGY_ROOT_USERNAME: ${IGGY_ROOT_USERNAME:-iggy}
IGGY_ROOT_PASSWORD: ${IGGY_ROOT_PASSWORD:?Generate the local backend environment first}
IGGY_SYSTEM_PATH: /var/lib/iggy
IGGY_TCP_ENABLED: "true"
IGGY_TCP_ADDRESS: 0.0.0.0:8090
IGGY_QUIC_ENABLED: "false"
IGGY_HTTP_ENABLED: "false"
IGGY_WEBSOCKET_ENABLED: "false"
IGGY_HEARTBEAT_ENABLED: "true"
IGGY_HEARTBEAT_INTERVAL: 5s
volumes:
- iggy-data:/var/lib/iggy
ports:
- "${MM_PROVIDER_BIND_ADDRESS:-127.0.0.1}:${IGGY_TCP_PORT:-8090}:8090"
healthcheck:
test: ["CMD", "/usr/local/bin/iggy-healthcheck"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
logging: *log-policy
networks:
backend:
aliases:
- laserdata
labels:
com.muscle-memory.evidence-boundary: self-hosted-development-not-laserdata-cloud
networks:
backend:
driver: bridge
volumes:
asset-cache:
coordinator-data:
falkordb-data:
graph-cache:
iggy-data:
telemetry-data:
training-data: