105 lines
2.3 KiB
Plaintext
105 lines
2.3 KiB
Plaintext
|
version: '3'
|
||
|
|
||
|
networks:
|
||
|
net:
|
||
|
external: false
|
||
|
|
||
|
services:
|
||
|
haproxy:
|
||
|
image: haproxy:lts
|
||
|
ports:
|
||
|
- "80:80"
|
||
|
- "443:443"
|
||
|
volumes:
|
||
|
- "./data/certificates:/certificates"
|
||
|
- "./config/haproxy:/usr/local/etc/haproxy"
|
||
|
depends_on:
|
||
|
- "certbot"
|
||
|
- "restreamer"
|
||
|
- "scheduler"
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- net
|
||
|
labels:
|
||
|
- meta.role=haproxy
|
||
|
|
||
|
certbot:
|
||
|
image: "certbot/certbot"
|
||
|
hostname: certbot
|
||
|
volumes:
|
||
|
- "./data/certificates:/certificates"
|
||
|
- "./data/certbot/etc:/etc/letsencrypt"
|
||
|
- "./data/certbot/var:/var/lib/letsencrypt"
|
||
|
- "./logs/certbot:/var/log/letsencrypt"
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- net
|
||
|
labels:
|
||
|
- meta.role=certbot
|
||
|
#entrypoint: sh -c 'while true; do sleep 1; done'
|
||
|
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 15d & wait $${!}; done;'"
|
||
|
|
||
|
restreamer:
|
||
|
image: datarhei/restreamer:2.7.0
|
||
|
environment:
|
||
|
- CORE_LOG_LEVEL=warn
|
||
|
- CORE_API_AUTH_USERNAME=admin
|
||
|
- CORE_API_AUTH_PASSWORD=pass
|
||
|
ports:
|
||
|
- "6000:6000/udp"
|
||
|
volumes:
|
||
|
- "./config/restreamer:/core/config"
|
||
|
- "./data/restreamer:/core/data"
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- net
|
||
|
labels:
|
||
|
- meta.role=restreamer
|
||
|
|
||
|
scheduler:
|
||
|
depends_on:
|
||
|
- "restreamer"
|
||
|
build: ./src/scheduler
|
||
|
image: stream-scheduler:latest
|
||
|
environment:
|
||
|
- LOG_LEVEL=info
|
||
|
- CORE_API_HOSTNAME=stream.example.com
|
||
|
- CORE_API_USERNAME=admin
|
||
|
- CORE_API_PASSWORD=pass
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- net
|
||
|
labels:
|
||
|
- meta.role=scheduler
|
||
|
|
||
|
recorder:
|
||
|
depends_on:
|
||
|
- "restreamer"
|
||
|
image: bluenviron/mediamtx:latest-ffmpeg
|
||
|
environment:
|
||
|
- MTX_PROTOCOLS=tcp
|
||
|
ports:
|
||
|
- 8554:8554
|
||
|
volumes:
|
||
|
- "./config/mediamtx/mediamtx.yml:/mediamtx.yml"
|
||
|
- "./data/recordings:/recordings"
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- net
|
||
|
labels:
|
||
|
- meta.role=recorder
|
||
|
|
||
|
archive:
|
||
|
depends_on:
|
||
|
- "recorder"
|
||
|
build: ./src/archive
|
||
|
image: stream-archive:latest
|
||
|
volumes:
|
||
|
- "./config/archive/nginx.conf:/etc/nginx/nginx.conf"
|
||
|
- "./data/recordings:/recordings:ro"
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- net
|
||
|
labels:
|
||
|
- meta.role=archive
|