version: '3.4' services: plex: image: ghcr.io/linuxserver/plex:latest deploy: mode: replicated replicas: 1 #labels: # - 'traefik.enable=true' # - 'traefik.http.routers.plexswarm.entrypoints=http' # - 'traefik.http.routers.plexswarm.rule=Host(`plexswarm.home.test.com`)' # - 'traefik.http.middlewares.plexswarm-https-redirect.redirectscheme.scheme=https' # - 'traefik.http.routers.plexswarm.middlewares=plexswarm-https-redirect' # - 'traefik.http.routers.plexswarm-secure.entrypoints=https' # - 'traefik.http.routers.plexswarm-secure.rule=Host(`plexswarm.home.test.com`)' # - 'traefik.http.routers.plexswarm-secure.tls=true' # - 'traefik.http.routers.plexswarm-secure.service=plexswarm' # - 'traefik.http.services.plexswarm.loadbalancer.server.port=32400' # - 'traefik.docker.network=proxy' environment: DOCKER_MODS: "ghcr.io/pabloromeo/clusterplex_dockermod:latest" VERSION: docker PUID: 1000 PGID: 1000 TZ: America/New_York ORCHESTRATOR_URL: http://plex-orchestrator:3500 PMS_IP: 10.0.100.151 TRANSCODE_OPERATING_MODE: both #(local|remote|both) TRANSCODER_VERBOSE: "1" # 1=verbose, 0=silent healthcheck: test: curl -fsS http://localhost:32400/identity > /dev/null || exit 1 interval: 15s timeout: 15s retries: 5 start_period: 30s volumes: - /mnt/gvf2/plex/config:/config - /mnt/gvf2/plex/backups:/backups - /mnt/unraid/shows:/data/tv - /mnt/unraid/movies:/data/movies - /mnt/gvf2/plex/tmp:/tmp - /etc/localtime:/etc/localtime:ro ports: - 32469:32469 - 32400:32400 - 3005:3005 - 8324:8324 - 1900:1900/udp - 32410:32410/udp - 32412:32412/udp - 32413:32413/udp - 32414:32414/udp networks: # - proxy - plex_network plex-orchestrator: image: ghcr.io/pabloromeo/clusterplex_orchestrator:latest deploy: mode: replicated replicas: 1 update_config: order: start-first #labels: #- 'traefik.enable=true' #- 'traefik.http.routers.plex-orchestrator.entrypoints=http' #- 'traefik.http.routers.plex-orchestrator.rule=Host(`plex-orchestrator.home.test.com`)' #- 'traefik.http.middlewares.plex-orchestrator-https-redirect.redirectscheme.scheme=https' #- 'traefik.http.routers.plex-orchestrator.middlewares=plex-orchestrator-https-redirect' #- 'traefik.http.routers.plex-orchestrator-secure.entrypoints=https' #- 'traefik.http.routers.plex-orchestrator-secure.rule=Host(`plex-orchestrator.home.test.com`)' #- 'traefik.http.routers.plex-orchestrator-secure.tls=true' #- 'traefik.http.routers.plex-orchestrator-secure.service=plex-orchestrator' #- 'traefik.http.services.plex-orchestrator.loadbalancer.server.port=3500' #- 'traefik.docker.network=proxy' healthcheck: test: curl -fsS http://localhost:3500/health > /dev/null || exit 1 interval: 15s timeout: 15s retries: 5 start_period: 30s environment: TZ: America/New_York STREAM_SPLITTING: "OFF" # ON | OFF (default) LISTENING_PORT: 3500 WORKER_SELECTION_STRATEGY: "LOAD_RANK" # RR | LOAD_CPU | LOAD_TASKS | LOAD_RANK (default) volumes: - /etc/localtime:/etc/localtime:ro ports: - 3500:3500 networks: #- proxy - plex_network plex-worker: image: ghcr.io/linuxserver/plex:latest hostname: "plex-worker-{{.Node.Hostname}}" deploy: mode: global update_config: order: start-first environment: DOCKER_MODS: "ghcr.io/pabloromeo/clusterplex_worker_dockermod:latest" VERSION: docker PUID: 1000 PGID: 1000 TZ: America/New_York LISTENING_PORT: 3501 # used by the healthcheck STAT_CPU_INTERVAL: 2000 # interval for reporting worker load metrics ORCHESTRATOR_URL: http://plex-orchestrator:3500 healthcheck: test: curl -fsS http://localhost:3501/health > /dev/null || exit 1 interval: 15s timeout: 15s retries: 5 start_period: 240s volumes: - /mnt/gvf2/plex/codecs:/codecs # (optional, can be used to share codecs) - /mnt/unraid/shows:/data/tv - /mnt/unraid/movies:/data/movies - /mnt/gvf2/plex/tmp:/tmp - /etc/localtime:/etc/localtime:ro networks: #- proxy - plex_network networks: plex_network: driver: overlay attachable: true proxy: external: true