Created
January 19, 2026 11:24
-
-
Save calops/48c59ea5f56beeee2a110de07464fcaa to your computer and use it in GitHub Desktop.
Tocard Media Center
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Tocard media server | |
| version: "3" | |
| services: | |
| traefik: | |
| container_name: traefik | |
| image: traefik:2.11 | |
| restart: unless-stopped | |
| ports: | |
| - "80:80" | |
| - "8080:8080" | |
| - "443:443" | |
| volumes: | |
| - $TRAEFIK_DIR/config:/etc/traefik | |
| - $TRAEFIK_DIR/letsencrypt:/letsencrypt | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| labels: | |
| - "traefik.enable=true" | |
| emby: | |
| container_name: emby | |
| image: emby/embyserver:latest | |
| restart: unless-stopped | |
| privileged: true | |
| volumes: | |
| - $EMBY_DIR/config:/config | |
| - $DATA_SERIES:/data/series | |
| - $DATA_MOVIES:/data/movies | |
| ports: | |
| - 8096:8096 # http | |
| - 8920:8920 # https | |
| - 7359:7359 # emby remote control | |
| - 1900:1900/udp # emby remote control | |
| devices: | |
| - /dev/dri:/dev/dri | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.emby.rule=Host(`${EMBY_DOMAIN}`) | |
| - traefik.http.routers.emby.entrypoints=web,websecure | |
| - traefik.http.routers.emby.tls.certresolver=letsencrypt | |
| - traefik.http.services.emby.loadbalancer.server.port=${EMBY_PORT} | |
| # - traefik.http.routers.emby.middlewares=auth_coadmin | |
| organizr: | |
| container_name: organizr | |
| image: organizr/organizr:latest | |
| restart: unless-stopped | |
| volumes: | |
| - $ORGANIZR_DIR:/config | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.organizr.rule=Host(`organizr.tocards.net`) | |
| - traefik.http.routers.organizr.entrypoints=websecure | |
| - traefik.http.routers.organizr.tls.certresolver=letsencrypt | |
| - traefik.http.services.organizr.loadbalancer.server.port=${ORGANIZR_PORT} | |
| - traefik.http.middlewares.auth_admin.forwardauth.address=https://organizr.tocards.net/api/v2/auth/0 | |
| - traefik.http.middlewares.auth_coadmin.forwardauth.address=https://organizr.tocards.net/api/v2/auth/1 | |
| - traefik.http.middlewares.auth_user.forwardauth.address=https://organizr.tocards.net/api/v2/auth/4 | |
| depends_on: | |
| - traefik | |
| environment: | |
| - fpm=true | |
| sonarr: | |
| container_name: sonarr | |
| image: linuxserver/sonarr:latest | |
| restart: unless-stopped | |
| volumes: | |
| - $SONARR_DIR:/config | |
| - $DATA_SERIES:/data/series | |
| - $DATA_DOWNLOADS:/data/downloads | |
| - $DATA_TORRENTS:/torrents | |
| environment: | |
| - PUID=$PUID | |
| - PGID=$PGID | |
| - TZ=$TZ | |
| - DOCKER_MODS=ghcr.io/gilbn/theme.park:sonarr | |
| - TP_THEME=aquamarine | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.sonarr.rule=Host(`${SONARR_DOMAIN}`) | |
| - traefik.http.routers.sonarr.entrypoints=websecure | |
| - traefik.http.routers.sonarr.tls.certresolver=letsencrypt | |
| - traefik.http.services.sonarr.loadbalancer.server.port=${SONARR_PORT} | |
| - traefik.http.routers.sonarr.middlewares=auth_coadmin | |
| radarr: | |
| container_name: radarr | |
| image: linuxserver/radarr:latest | |
| restart: unless-stopped | |
| volumes: | |
| - $RADARR_DIR:/config | |
| - $DATA_MOVIES:/data/movies | |
| - $DATA_DOWNLOADS:/data/downloads | |
| - $DATA_TORRENTS:/torrents | |
| environment: | |
| - PUID=$PUID | |
| - PGID=$PGID | |
| - TZ=$TZ | |
| - DOCKER_MODS=ghcr.io/gilbn/theme.park:radarr | |
| - TP_THEME=aquamarine | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.radarr.rule=Host(`${RADARR_DOMAIN}`) | |
| - traefik.http.routers.radarr.entrypoints=websecure | |
| - traefik.http.routers.radarr.tls.certresolver=letsencrypt | |
| - traefik.http.services.radarr.loadbalancer.server.port=${RADARR_PORT} | |
| - traefik.http.routers.radarr.middlewares=auth_coadmin | |
| prowlarr: | |
| image: lscr.io/linuxserver/prowlarr:latest | |
| container_name: prowlarr | |
| restart: unless-stopped | |
| environment: | |
| - PUID=$PUID | |
| - PGID=$PGID | |
| - TZ=$TZ | |
| volumes: | |
| - $PROWLARR_DIR:/config | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.prowlarr.rule=Host(`${PROWLARR_DOMAIN}`) | |
| - traefik.http.routers.prowlarr.entrypoints=websecure | |
| - traefik.http.routers.prowlarr.tls.certresolver=letsencrypt | |
| - traefik.http.services.prowlarr.loadbalancer.server.port=${PROWLARR_PORT} | |
| - traefik.http.routers.prowlarr.middlewares=auth_coadmin | |
| flaresolverr: | |
| container_name: flaresolverr | |
| image: 21hsmw/flaresolverr:nodriver | |
| # image: flaresolverr/flaresolverr:latest | |
| restart: unless-stopped | |
| rutorrent: | |
| container_name: rutorrent | |
| image: mondedie/rutorrent:latest | |
| restart: unless-stopped | |
| volumes: | |
| - $RUTORRENT_DIR:/config | |
| - $RUTORRENT_DIR/data:/data | |
| - $DATA_DOWNLOADS:/data/downloads | |
| - ./config/themes/theme.park/docker-mods/rutorrent/root/etc/cont-init.d/98-themepark:/etc/cont-init.d/99-themepark | |
| environment: | |
| - TP_THEME=aquamarine | |
| ports: | |
| - 45000:45000 | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.rutorrent.rule=Host(`${RUTORRENT_DOMAIN}`) | |
| - traefik.http.routers.rutorrent.entrypoints=websecure | |
| - traefik.http.routers.rutorrent.tls.certresolver=letsencrypt | |
| - traefik.http.services.rutorrent.loadbalancer.server.port=${RUTORRENT_PORT} | |
| - traefik.http.routers.rutorrent.middlewares=auth_coadmin | |
| jellyseerr: | |
| container_name: jellyseerr | |
| image: fallenbagel/jellyseerr:latest | |
| restart: unless-stopped | |
| volumes: | |
| - $JELLYSEERR_DIR:/app/config | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.jellyseerr.rule=Host(`${JELLYSEERR_DOMAIN}`) | |
| - traefik.http.routers.jellyseerr.entrypoints=websecure | |
| - traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt | |
| - traefik.http.services.jellyseerr.loadbalancer.server.port=${JELLYSEERR_PORT} | |
| - traefik.http.routers.jellyseerr.middlewares=auth_user | |
| smtp: | |
| container_name: smtp | |
| image: namshi/smtp | |
| restart: unless-stopped | |
| environment: | |
| - MAILNAME=$SERVER_NAME | |
| - PORT=$SMTP_PORT | |
| gossa: | |
| container_name: gossa | |
| image: pldubouilh/gossa | |
| restart: unless-stopped | |
| environment: | |
| - PUID=$PUID | |
| - PGID=$PGID | |
| - TZ=$TZ | |
| volumes: | |
| - $DATA_DOWNLOADS:/shared/downloads | |
| - $DATA_SERIES:/shared/series | |
| - $DATA_MOVIES:/shared/movies | |
| labels: | |
| - traefik.enable=true | |
| - traefik.http.routers.gossa.rule=Host(`${GOSSA_DOMAIN}`) | |
| - traefik.http.routers.gossa.entrypoints=websecure | |
| - traefik.http.routers.gossa.tls.certresolver=letsencrypt | |
| - traefik.http.services.gossa.loadbalancer.server.port=${GOSSA_PORT} | |
| - traefik.http.routers.gossa.middlewares=auth_user |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment