-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
77 lines (74 loc) · 2.42 KB
/
Copy pathdocker-compose.yml
File metadata and controls
77 lines (74 loc) · 2.42 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
services:
icecast:
build:
context: ./icecast
dockerfile: Dockerfile
container_name: openstudio-icecast
ports:
- "6737:8000"
environment:
- ICECAST_SOURCE_PASSWORD=${ICECAST_SOURCE_PASSWORD:?Set ICECAST_SOURCE_PASSWORD in .env}
- ICECAST_ADMIN_PASSWORD=${ICECAST_ADMIN_PASSWORD:?Set ICECAST_ADMIN_PASSWORD in .env}
- ICECAST_ADMIN_USERNAME=admin
- ICECAST_RELAY_PASSWORD=${ICECAST_RELAY_PASSWORD:?Set ICECAST_RELAY_PASSWORD in .env}
- ICECAST_HOSTNAME=localhost
restart: unless-stopped
networks:
- openstudio-network
coturn:
image: coturn/coturn
container_name: openstudio-coturn
network_mode: host
command:
- -n
- --log-file=stdout
- --listening-port=3478
- --fingerprint
- --lt-cred-mech
- --user=openstudio:${COTURN_PASSWORD:?Set COTURN_PASSWORD in .env}
- --realm=openstudio.local
- --min-port=49152
- --max-port=49200
restart: unless-stopped
signaling:
build:
context: .
dockerfile: server/Dockerfile
container_name: openstudio-signaling
ports:
- "6736:6736"
environment:
- NODE_ENV=development
- PORT=6736
# In docker-compose the signaling container reaches Icecast via the
# compose service name on the bridge network. These are intentionally NOT
# substituted from the host's .env (which describes host-side visibility
# for local-mode dev, where Icecast is reached at localhost:6737).
- ICECAST_HOST=icecast
- ICECAST_PORT=8000
- LLM_BASE_URL=${LLM_BASE_URL:-}
- LLM_MODEL=${LLM_MODEL:-}
- LLM_API_KEY=${LLM_API_KEY:-}
- JWT_SECRET=${JWT_SECRET:-}
- ROOM_TTL_MS=${ROOM_TTL_MS:-0}
- ALLOWED_ORIGINS=${ALLOWED_ORIGINS:-}
volumes:
# Bind-mount source for hot-edit in dev (node --watch via npm run dev).
# Production deploys use the prod compose file which does not mount source.
- ./server:/app
- ./web:/web
- ./station-manifest.json:/station-manifest.json:ro
# Keep node_modules inside the container so host arch mismatches (macOS host,
# Linux container) don't cross-contaminate native modules.
- /app/node_modules
working_dir: /app
command: ["npm", "run", "dev"]
depends_on:
- icecast
- coturn
restart: unless-stopped
networks:
- openstudio-network
networks:
openstudio-network:
driver: bridge