--- version: '3.4' x-function: &function networks: - traefik_proxy1 labels: - "traefik.enable=true" - "traefik.docker.network=traefik_proxy1" - "traefik.frontend.headers.SSLRedirect=true" - "traefik.frontend.headers.STSSeconds=315360000" - "traefik.frontend.headers.browserXSSFilter=true" - "traefik.frontend.headers.contentTypeNosniff=true" - "traefik.frontend.headers.forceSTSHeader=true" - "traefik.frontend.headers.SSLHost=example.com" - "traefik.frontend.headers.STSIncludeSubdomains=true" - "traefik.frontend.headers.STSPreload=true" - "traefik.frontend.headers.frameDeny=true" restart: always environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} # Media Server services: #Grabber, manage TV shows sonarr: <<: *function image: linuxserver/sonarr:latest container_name: sonarr volumes: - /opt/appdata/sonarr:/config - /mnt/storage/tv:/tv - /downloads/:/downloads - /downloads/complete/tv_import:/tv_import ports: - 27021:8989 labels: - "traefik.backend=sonarr" - "traefik.port=8989" - "traefik.frontend.rule=Host:sonarr.${DOMAINNAME}" - "docker.group=external" #Indexer, Used by managers to query sites for content jackett: <<: *function image: linuxserver/jackett:latest container_name: jackett volumes: - /opt/appdata/jackett:/config - /downloads:/downloads ports: - 9117:9117 labels: - "traefik.backend=jackett" - "traefik.frontend.rule=Host:jackett.${DOMAINNAME}" - "traefik.port=9117" - "docker.group=internal" #Reverse Proxy, Used to route applications to domain traefik: <<: *function hostname: traefik image: traefik:v1.7 container_name: traefik domainname: ${DOMAINNAME} networks: - default - traefik_proxy1 ports: - "80:80" - "443:443" - "8080:8080" labels: - "traefik.enable=true" - "traefik.backend=traefik" - "traefik.frontend.rule=Host:traefik.${DOMAINNAME}" - "traefik.port=80" - "traefik.frontend.auth.basic.users=${HTTP_USERNAME}:${HTTP_PASSWORD}" - "docker.group=internal" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /home/dockeruser/traefik:/etc/traefik - /opt/appdata/shared:/shared - /opt/appdata/traefik:/var/log - /opt/appdata/traefik/tmp:/tmp #Downloader, pull in content from torrents & hide traffic behind VPN arch-deluge: <<: *function image: binhex/arch-delugevpn:latest container_name: arch-deluge ports: - 8112:8112 - 8118:8118 - 58846:58846 - 58946:58946 cap_add: - NET_ADMIN volumes: - /opt/appdata/arch-deluge:/config - /downloads:/downloads - /mnt/storage:/mnt/storage - /opt/appdata/shared:/shared - /opt/appdata/arch-deluge/data:/data environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - VPN_ENABLED=yes - VPN_USER=${VPN_USER} - VPN_PASS=${VPN_PASS} - VPN_PROV=custom - STRICT_PORT_FORWARD=yes - ENABLE_PRIVOXY=yes - LAN_NETWORK=192.168.0.100/24 - NAME_SERVERS=103.86.96.100, 103.86.99.100 - DELUGE_DAEMON_LOG_LEVEL=error - DELUGE_WEB_LOG_LEVEL=error - DEBUG=true - UMASK=000 labels: - "traefik.backend=arch-deluge" - "traefik.frontend.rule=Host:deluge.${DOMAINNAME}" - "traefik.port=8112" - "docker.group=external" privileged: true #updated version of plex requests ombi: <<: *function image: linuxserver/ombi container_name: ombi environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - BASE_URL=/ombi #optional volumes: - /opt/appdata/ombi:/config - /opt/appdata/shared:/shared networks: - traefik_proxy1 labels: - "traefik.backend=ombi" - "traefik.frontend.rule=Host:requests.${DOMAINNAME}" # - "traefik.port=3579" - "traefik.docker.network=traefik_proxy1" - "docker.group=external" ports: - 3579:3579 #NZBGet - usenet downloader nzbget: <<: *function image: linuxserver/nzbget:latest container_name: nzbget volumes: - /opt/appdata/nzbget/config:/config - /opt/appdata/nzbget/data:/data - /downloads:/downloads - /opt/appdata/shared:/shared ports: - 27020:6789 networks: - traefik_proxy1 labels: - "traefik.backend=nzbget" - "traefik.frontend.rule=Host:nzbget.${DOMAINNAME}" # - "traefik.port=6789" - "docker.group=external" #Networks, Needed for Traefik networks: traefik_proxy1: # external: true default: driver: bridge