Repository navigation
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
67 lines (63 loc) · 2.51 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
67 lines (63 loc) · 2.51 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
name: caesar
# Production: published image + Caddy HTTPS. Works as a standalone download,
# with docker compose or rootless podman-compose:
# docker compose up -d (first run / start)
# docker compose pull && docker compose up -d --force-recreate (update;
# podman-compose keeps running containers on a re-pulled tag without it)
# Local builds of the checkout: compose.prod-dev.yaml. Settings: .env and
# config.ini, see wiki Configuration. Aliases / extra instances:
# wiki Home#custom-caddyfile.
services:
caesar:
# edge = master (default until the first release), sha-<short> = exact
# commit, latest / x.y / x.y.z = releases
image: ghcr.io/h8d13/caesar:${CAESAR_IMAGE_TAG:-edge}
container_name: caesar
restart: unless-stopped
stop_grace_period: 2s
cpus: "4"
ports:
- "40000-40002:40000-40002/tcp"
- "40000-40002:40000-40002/udp"
# Every knob from wiki Configuration goes in .env and reaches the server
# through env_file. `environment:` wins over it, so defaults that differ
# from the server's own (or that caddy shares) are `${VAR:-default}`.
env_file:
- path: .env
required: false
environment:
CAESAR_PORT: ${CAESAR_PORT:-4991}
CAESAR_SITE: ${CAESAR_SITE:-localhost}
# must match the published 40000+ range above
CAESAR_WEBRTC_WORKERS: ${CAESAR_WEBRTC_WORKERS:-3}
# Named volume: first mount copies the image's DATA_PATH, owned by uid
# 1000, so it is writable under any engine/userns without a host chown.
# config.ini (rate limits) must exist next to this file: a missing bind
# source gets created as a directory and the server refuses to boot.
volumes:
- caesar_data:/home/node/.config/caesar
- ./config.ini:/home/node/.config/caesar/config.ini:ro
# `caddy reverse-proxy` instead of a Caddyfile so this file alone is enough
# (podman-compose ignores top-level configs).
caddy:
image: docker.io/library/caddy:2-alpine@sha256:d8542f48d34a9cf4e4c11a478865229840e87e4c96ea3f439101f31a5d35f75f
container_name: caesar-caddy
restart: unless-stopped
depends_on:
- caesar
ports:
- "80:80/tcp"
- "443:443/tcp"
- "443:443/udp"
# Same defaults as the caesar service above; changing one changes both.
command: >-
caddy reverse-proxy
--from ${CAESAR_SITE:-localhost}
--to caesar:${CAESAR_PORT:-4991}
volumes:
- caddy_data:/data
- caddy_config:/config
volumes:
caesar_data:
caddy_data:
caddy_config: