-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
113 lines (106 loc) · 3.02 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
113 lines (106 loc) · 3.02 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
name: caesar
services:
# assumes x86_64 mediasoup-worker prebuilt is fetched auto for linux-x64
caesar:
build:
context: .
dockerfile: Dockerfile.prod
args:
CAESAR_BUILD_VERSION: ${CAESAR_BUILD_VERSION:-}
container_name: caesar
restart: unless-stopped
stop_grace_period: 2s
cpus: "4"
profiles: ["prod"]
ports:
- "40000-40002:40000-40002/tcp"
- "40000-40002:40000-40002/udp"
environment:
CAESAR_PORT: "4991"
CAESAR_WEBRTC_WORKERS: "3"
CAESAR_SITE: ${CAESAR_SITE:-localhost}
# See wiki Configuration.
CAESAR_TRUSTED_PROXY_HOPS: "1"
volumes:
- ./data:/home/node/.config/caesar
# HTTPS reverse proxy see caddy/Caddyfile
caddy:
image: caddy:2-alpine
container_name: caesar-caddy
restart: unless-stopped
profiles: ["prod"]
depends_on:
- caesar
ports:
- "80:80/tcp"
- "443:443/tcp"
- "443:443/udp"
environment:
CAESAR_SITE: ${CAESAR_SITE:-localhost}
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
# Prod-dev: real prod binary + self-signed HTTPS on :8443, sibling of
# the prod stack. Coexists with the prod profile (different ports +
# container names + data dir). `up.sh --prod-dev` wipes ./data-prod-dev
# before each run so every test starts clean; the dir itself is the same
# shape as ./data so you can poke at it after a run if needed.
# Set CAESAR_WEBRTC_ANNOUNCED_ADDRESS=<lan-ip> only when testing from
# another device on the LAN; localhost-only works without it.
caesar-prod-dev:
build:
context: .
dockerfile: Dockerfile.prod
args:
CAESAR_BUILD_VERSION: ${CAESAR_BUILD_VERSION:-}
container_name: caesar-prod-dev
restart: "no"
stop_grace_period: 2s
profiles: ["prod-dev"]
ports:
- "40001:40000/tcp"
- "40001:40000/udp"
environment:
CAESAR_PORT: "4991"
CAESAR_WEBRTC_ANNOUNCED_ADDRESS: ${CAESAR_WEBRTC_ANNOUNCED_ADDRESS:-}
CAESAR_SITE: "localhost:8443"
volumes:
- ./data-prod-dev:/home/node/.config/caesar
caddy-prod-dev:
image: caddy:2-alpine
container_name: caesar-caddy-prod-dev
restart: "no"
profiles: ["prod-dev"]
depends_on:
- caesar-prod-dev
ports:
- "8443:8443"
environment:
CAESAR_SITE: "localhost:8443"
CAESAR_TLS_DIRECTIVE: "tls internal"
CAESAR_UPSTREAM: "caesar-prod-dev:4991"
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
# Dev: pnpm install + Vite + Node server
caesar-dev:
build:
context: .
dockerfile: Dockerfile.dev
container_name: caesar-dev
restart: unless-stopped
profiles: ["dev"]
ports:
- "4991:4991/tcp"
- "5173:5173/tcp"
- "40000:40000/tcp"
- "40000:40000/udp"
environment:
CAESAR_PORT: "4991"
volumes:
- ./data:/home/node/.config/caesar
# here named volume would be more appropriate
volumes:
caddy_data:
caddy_config:
#caesar_data: