-
Notifications
You must be signed in to change notification settings - Fork 558
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
73 lines (70 loc) · 2.56 KB
/
docker-compose.yml
File metadata and controls
73 lines (70 loc) · 2.56 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
services:
mission-control:
build: .
container_name: mission-control
ports:
- "${MC_PORT:-3000}:${PORT:-3000}"
environment:
- PORT=${PORT:-3000}
# ── Server-side gateway connection (MC backend → gateway) ──
# host.docker.internal resolves to the Docker host on Docker Desktop (macOS/Windows).
# On Linux, the extra_hosts entry below makes this work.
# If your gateway runs in another container, set this to the container name instead.
- OPENCLAW_GATEWAY_HOST=${OPENCLAW_GATEWAY_HOST:-host.docker.internal}
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT:-18789}
# ── Browser-side gateway connection (user's browser → gateway) ──
# NEXT_PUBLIC_GATEWAY_HOST must be reachable from the user's browser, NOT from
# inside the container. For local Docker: leave empty (auto-detected from browser).
# For remote/VPS: set to the public hostname or IP where the gateway is reachable.
# - NEXT_PUBLIC_GATEWAY_HOST=${NEXT_PUBLIC_GATEWAY_HOST:-}
# - NEXT_PUBLIC_GATEWAY_PORT=${NEXT_PUBLIC_GATEWAY_PORT:-18789}
# Set to true if running without an OpenClaw gateway (standalone dashboard mode).
# - NEXT_PUBLIC_GATEWAY_OPTIONAL=true
env_file:
- path: .env
required: false
volumes:
- mc-data:/app/.data
# Optional: mount your OpenClaw state directory read-only so Mission Control
# can read agent configs and memory. Uncomment and adjust the host path:
# - ${OPENCLAW_HOME:-~/.openclaw}:/run/openclaw:ro
# Allow the container to reach an OpenClaw gateway running on the Docker host.
# Docker Desktop (macOS/Windows): host.docker.internal works out of the box.
# Linux: this extra_hosts entry maps host.docker.internal to the host IP.
extra_hosts:
- "host.docker.internal:host-gateway"
read_only: true
tmpfs:
- /tmp
- /app/.next/cache
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
security_opt:
- no-new-privileges:true
deploy:
resources:
limits:
memory: 512M
cpus: '1.0'
pids: 256
networks:
- mc-net
restart: unless-stopped
# Standalone mode — no gateway required. Start with:
# docker compose --profile standalone up
mission-control-standalone:
extends:
service: mission-control
container_name: mission-control-standalone
profiles:
- standalone
environment:
- PORT=${PORT:-3000}
- NEXT_PUBLIC_GATEWAY_OPTIONAL=true
volumes:
mc-data:
networks:
mc-net:
driver: bridge