-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
82 lines (79 loc) · 2.75 KB
/
Copy pathdocker-compose.yml
File metadata and controls
82 lines (79 loc) · 2.75 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
services:
openclaw:
build:
context: deploy/openclaw
args:
OPENCLAW_VERSION: ${OPENCLAW_VERSION:-2026.5.7}
CODING_CLI: ${CODING_CLI:-pi}
volumes:
- openclaw-data:/root/.openclaw
# Dual-mount pattern: both paths resolve to the same volume so agents
# can't put files in the wrong place — both paths are the right place.
- canvas-pages:/app/runtime/canvas-pages
- canvas-pages:/root/.openclaw/workspace/canvas-pages
- uploads:/app/runtime/uploads
- uploads:/root/.openclaw/workspace/uploads
# transcripts: the agent must be able to READ its own voice transcripts. They are
# written by the OpenVoiceUI app (runtime/transcripts) but the agent only sees its
# workspace — so a transcript/note "sent to the AI" is invisible to it without this
# shared volume. Dual-mounted like the others.
- transcripts:/app/runtime/transcripts
- transcripts:/root/.openclaw/workspace/transcripts
- generated-music:/app/runtime/generated_music
- generated-music:/root/.openclaw/workspace/generated_music
- music:/app/runtime/music
- music:/root/.openclaw/workspace/music
ports:
- "18791:18791"
- "${PORT:-5001}:${PORT:-5001}"
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "-e", "const h=require('http');h.get('http://localhost:18791',r=>{process.exit(r.statusCode<500?0:1)}).on('error',()=>process.exit(1))"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
supertonic:
build: deploy/supertonic
restart: unless-stopped
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8765/health')"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
openvoiceui:
build: .
network_mode: "service:openclaw"
env_file:
- .env
environment:
- CLAWDBOT_GATEWAY_URL=ws://127.0.0.1:18791
- SUPERTONIC_API_URL=http://supertonic:8765
volumes:
- openvoiceui-runtime:/app/runtime
- canvas-pages:/app/runtime/canvas-pages
- uploads:/app/runtime/uploads
- transcripts:/app/runtime/transcripts
- generated-music:/app/runtime/generated_music
- music:/app/runtime/music
depends_on:
openclaw:
condition: service_healthy
supertonic:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5001/health/ready', timeout=5)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
volumes:
openclaw-data:
openvoiceui-runtime:
canvas-pages:
uploads:
transcripts:
generated-music:
music: