television/docker-compose.yml

100 lines
2.1 KiB
YAML
Raw Normal View History

2023-12-30 23:15:22 -05:00
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
2023-12-31 09:32:41 -05:00
env_file:
- "variables.env"
2023-12-30 23:15:22 -05:00
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
2023-12-31 09:32:41 -05:00
env_file:
- "variables.env"
2023-12-30 23:15:22 -05:00
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