version: '3.5'

networks:
  default:
    external:
      name: traefik_default

services:
  owncast:
    image: gabekangas/owncast:latest
    restart: unless-stopped
    container_name: owncast-app
    env_file: live.env
    networks:
      - default
    ports:
      - "8080:8080"
    volumes:
      - ${OWNCAST_ROOT}/db:/db # Remove if you don't want chat persistant
    command: /app/owncast -configFile=config.yaml -database=/db/chat.db
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.owncast.rule=Host(`watch.${DOMAIN}`)"
      - "traefik.http.routers.owncast.entrypoints=websecure"
      - "traefik.http.routers.owncast.tls.certresolver=myresolver"
      - "traefik.tcp.routers.rtmpcast.entrypoints=rtmp"
      - "traefik.tcp.routers.rtmpcast.rule=HostSNI(`watch.${DOMAIN}`)"
      - "traefik.tcp.routers.rtmpcast.service=rtmpcast"
      - "traefik.tcp.routers.rtmpcast.tls=true"
      - "traefik.tcp.routers.rtmpcast.tls.certresolver=myresolver"
      - "traefik.tcp.services.rtmpcast.loadbalancer.server.port=1935"