version: "3.9" services: mediamtx: image: bluenviron/mediamtx:1.15.0 container_name: mediamtx restart: unless-stopped ports: - 1935:1935 # RTMP ingest - 8888:8888 # HLS - 9997:9997 # API - 9998:9998 # metrics (optional) volumes: - /docker/streaming/mediamtx.yml:/mediamtx.yml:ro command: - /mediamtx.yml networks: - traefik-net dashboard: image: git.send.nrw/sendnrw/nginx-stream-server:latest container_name: go-stream-dashboard restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.streaming.rule=Host(`streaming.domain.tld`) - traefik.http.routers.streaming.service=streaming - traefik.http.services.streaming.loadbalancer.server.port=8080 - traefik.http.routers.streaming.entrypoints=websecure - traefik.http.routers.streaming.tls=true - traefik.http.routers.streaming.tls.certresolver=letsencrypt - traefik.protocol=http environment: # Dashboard - LISTEN=:8080 - BASIC_AUTH_USER=${BASIC_AUTH_USER:-} - BASIC_AUTH_PASS=${BASIC_AUTH_PASS:-} - STREAMS=${STREAMS:-} - MTX_API=http://mediamtx:9997 - MTX_HLS=http://mediamtx:8888 - MTX_API_USER=admin - MTX_API_PASS=admin #ports: #- "8080:8080" depends_on: - mediamtx #healthcheck: #test: #- CMD #- /app/dashboard #- -healthcheck # optionaler Schalter, siehe unten #interval: 15s #timeout: 3s #retries: 5 security_opt: - no-new-privileges:true read_only: true tmpfs: - /tmp networks: - traefik-net networks: traefik-net: external: true