Experimenting with traefik to no avail

This commit is contained in:
NetShade 2024-08-16 15:51:43 +02:00
parent 9de4e2ac93
commit 9b5c20450d
3 changed files with 163 additions and 137 deletions

View File

@ -57,6 +57,14 @@ services:
- PGID=101 - PGID=101
- UMASK=002 - UMASK=002
- TZ=Europe/Stockholm - TZ=Europe/Stockholm
labels:
- traefik.enable=true
- "traefik.http.routers.arr-prowlarr.rule=(Host(`niefelheim.com`) && Path(`/prowlarr`))"
- "traefik.http.routers.arr-prowlarr_https.rule=(Host(`niefelheim.com`) && Path(`/prowlarr`))"
- traefik.http.services.arr-prowlarr.loadbalancer.server.port=9696
- traefik.http.routers.arr-prowlarr_https.entrypoints=web-secure
- traefik.http.routers.arr-prowlarr_https.tls=true
- traefik.http.routers.arr-prowlarr_https.tls.certresolver=le
volumes: volumes:
- "prowlarr:/config" - "prowlarr:/config"
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"

View File

@ -4,24 +4,25 @@ services:
# image used to index torrent links from the internet # image used to index torrent links from the internet
prowlarr: prowlarr:
image: linuxserver/prowlarr:latest image: ghcr.io/hotio/prowlarr:latest
container_name: arr-suite-prowlarr container_name: arr-suite-prowlarr
deploy: deploy:
placement: placement:
constraints: [node.labels.media_disk == true ] constraints: [node.labels.media_disk == true ]
environment: environment:
- PUID=988 - PUID=988
- PGID=979 - PGID=101
- UMASK=002 - UMASK=002
- TZ=Europe/Stockholm - TZ=Europe/Stockholm
volumes: volumes:
- "prowlarr:/config" - "prowlarr:/config"
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
- "/data/backup/arr/prowlarr:/config/backup"
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/prowlarr:/config # database and Prowlarr configs #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/prowlarr:/config # database and Prowlarr configs
expose: #expose:
- 9696/tcp # web ui # - 9696/tcp # web ui
ports: #ports:
- 9696:9696/tcp # web ui # - 9696:9696/tcp # web ui
restart: unless-stopped restart: unless-stopped
networks: networks:
- traefik-public - traefik-public
@ -40,145 +41,145 @@ services:
# - traefik.http.routers.prowlarr.middlewares=local-ipwhitelist@file # - traefik.http.routers.prowlarr.middlewares=local-ipwhitelist@file
# image used to scan for tv shows # image used to scan for tv shows
sonarr: #sonarr:
image: linuxserver/sonarr:latest # image: linuxserver/sonarr:latest
container_name: arr-suite-sonarr # container_name: arr-suite-sonarr
deploy: # deploy:
placement: # placement:
constraints: [node.labels.media_disk == true ] # constraints: [node.labels.media_disk == true ]
environment: # environment:
- PUID=989 # - PUID=989
- PGID=979 # - PGID=979
- TZ=Europe/Stockholm # - TZ=Europe/Stockholm
- UMASK=002 # - UMASK=002
volumes: # volumes:
- "sonarr:/config" # - "sonarr:/config"
- "/etc/localtime:/etc/localtime:ro" # - "/etc/localtime:/etc/localtime:ro"
- "/var/cloud/Media/Serier:/media/tv" # - "/var/cloud/Media/Serier:/media/tv"
- "/var/cloud/transmission/downloads:/data/torrents" # - "/var/cloud/transmission/downloads:/data/torrents"
- "/var/cloud/Media/Trashcan/Series:/media/trash" # - "/var/cloud/Media/Trashcan/Series:/media/trash"
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/sonarr:/config # database and Radarr configs #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/sonarr:/config # database and Radarr configs
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder
expose: # expose:
- 8989/tcp # web ui # - 8989/tcp # web ui
ports: # ports:
- 8989:8989/tcp # web ui # - 8989:8989/tcp # web ui
restart: unless-stopped # restart: unless-stopped
networks: # networks:
- traefik-public # - traefik-public
labels: # labels:
- traefik.enable=true # - traefik.enable=true
- traefik.docker.network=traefik-public # - traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public # - traefik.constraint-label=traefik-public
- "traefik.http.routers.sonarr.rule=(Host(`niefelheim.com`) && Path(`/sonarr`))" # - "traefik.http.routers.sonarr.rule=(Host(`niefelheim.com`) && Path(`/sonarr`))"
- traefik.http.services.sonarr.loadbalancer.server.port=8989 # - traefik.http.services.sonarr.loadbalancer.server.port=8989
# # Optional part for traefik middlewares # # Optional part for traefik middlewares
# - traefik.http.routers.sonarr.middlewares=local-ipwhitelist@file # - traefik.http.routers.sonarr.middlewares=local-ipwhitelist@file
# image used to scan for movies # image used to scan for movies
radarr: #radarr:
image: linuxserver/radarr:latest # image: linuxserver/radarr:latest
container_name: arr-suite-radarr # container_name: arr-suite-radarr
deploy: # deploy:
placement: # placement:
constraints: [node.labels.media_disk == true ] # constraints: [node.labels.media_disk == true ]
environment: # environment:
- PUID=990 # - PUID=990
- PGID=101 # - PGID=101
- UMASK=002 # - UMASK=002
- TZ=Europe/Stockholm # - TZ=Europe/Stockholm
volumes: # volumes:
- "radarr:/config" # - "radarr:/config"
- "/etc/localtime:/etc/localtime:ro" # - "/etc/localtime:/etc/localtime:ro"
- "/var/cloud/transmission/downloads:/data/torrents" # - "/var/cloud/transmission/downloads:/data/torrents"
- "/var/cloud/Media/Film:/media/movies" # - "/var/cloud/Media/Film:/media/movies"
- "/var/cloud/Media/Kids:/media/movies2" # - "/var/cloud/Media/Kids:/media/movies2"
- "/var/cloud/Media/Trashcan/Movies:/media/trash" # - "/var/cloud/Media/Trashcan/Movies:/media/trash"
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/radarr:/config #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/radarr:/config
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder
expose: # expose:
- 7878/tcp # web ui # - 7878/tcp # web ui
ports: # ports:
- 7878:7878/tcp # web ui # - 7878:7878/tcp # web ui
restart: unless-stopped # restart: unless-stopped
networks: # networks:
- traefik-public # - traefik-public
labels: # labels:
- traefik.enable=true # - traefik.enable=true
- traefik.docker.network=traefik-public # - traefik.docker.network=traefik-public
- "traefik.http.routers.radarr.rule=(Host(`niefelheim.com`) && Path(`/radarr`))" # - "traefik.http.routers.radarr.rule=(Host(`niefelheim.com`) && Path(`/radarr`))"
- traefik.constraint-label=traefik-public # - traefik.constraint-label=traefik-public
- traefik.http.services.radarr.loadbalancer.server.port=7878 # - traefik.http.services.radarr.loadbalancer.server.port=7878
# # Optional part for traefik middlewares # # Optional part for traefik middlewares
# - traefik.http.routers.radarr.middlewares=local-ipwhitelist@file # - traefik.http.routers.radarr.middlewares=local-ipwhitelist@file
# image used to scan for music # image used to scan for music
lidarr: #lidarr:
image: linuxserver/lidarr:latest # image: linuxserver/lidarr:latest
container_name: arr-suite-lidarr # container_name: arr-suite-lidarr
deploy: # deploy:
placement: # placement:
constraints: [node.label.media_disk == true ] # constraints: [node.label.media_disk == true ]
environment: # environment:
- PUID=993 # - PUID=993
- PGID=101 # - PGID=101
- TZ=Europe/Stockholm # - TZ=Europe/Stockholm
volumes: # volumes:
- "lidarr:/config" # - "lidarr:/config"
- "/etc/localtime:/etc/localtime:ro" # - "/etc/localtime:/etc/localtime:ro"
- "/var/cloud/Media/Mp3:/media/music" # - "/var/cloud/Media/Mp3:/media/music"
- "/var/cloud/Media/Trashcan:/media/trash" # - "/var/cloud/Media/Trashcan:/media/trash"
- "/var/cloud/transmission/downloads:/data/torrents" # - "/var/cloud/transmission/downloads:/data/torrents"
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/lidarr:/config #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/lidarr:/config
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder
expose: # expose:
- 8686/tcp # web ui # - 8686/tcp # web ui
ports: # ports:
- 8686:8686/tcp # web ui # - 8686:8686/tcp # web ui
restart: unless-stopped # restart: unless-stopped
networks: # networks:
- traefik-public # - traefik-public
labels: # labels:
- traefik.enable=true # - traefik.enable=true
- traefik.docker.network=traefik-public # - traefik.docker.network=traefik-public
- "traefik.http.routers.lidarr.rule=(Host(`niefelheim.com`) && Path(`/lidarr`))" # - "traefik.http.routers.lidarr.rule=(Host(`niefelheim.com`) && Path(`/lidarr`))"
- traefik.constraint-label=traefik-public # - traefik.constraint-label=traefik-public
- traefik.http.services.lidarr.loadbalancer.server.port=8686 # - traefik.http.services.lidarr.loadbalancer.server.port=8686
# # Optional part for traefik middlewares # # Optional part for traefik middlewares
# - traefik.http.routers.lidarr.middlewares=local-ipwhitelist@file # - traefik.http.routers.lidarr.middlewares=local-ipwhitelist@file
# image used to scan for books # image used to scan for books
readarr: #readarr:
image: linuxserver/readarr:develop # image: linuxserver/readarr:develop
container_name: arr-suite-readarr # container_name: arr-suite-readarr
deploy: # deploy:
placement: # placement:
constraints: [node.label.media_disk == true ] # constraints: [node.label.media_disk == true ]
environment: # environment:
- PUID=991 # - PUID=991
- PGID=101 # - PGID=101
- TZ=Europe/Stockholm # - TZ=Europe/Stockholm
volumes: # volumes:
- "readarr:/config" # - "readarr:/config"
- "/etc/localtime:/etc/localtime:ro" # - "/etc/localtime:/etc/localtime:ro"
- "/var/cloud/transmission/downloads:/data/torrents" # - "/var/cloud/transmission/downloads:/data/torrents"
- "/var/cloud/Media/Books:/media/books" # - "/var/cloud/Media/Books:/media/books"
- "/var/cloud/Media/Trashcan/Books:/media/trash" # - "/var/cloud/Media/Trashcan/Books:/media/trash"
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/readarr:/config #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/readarr:/config
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder
expose: # expose:
- 8787/tcp # web ui # - 8787/tcp # web ui
ports: # ports:
- 8787:8787/tcp # web ui # - 8787:8787/tcp # web ui
restart: unless-stopped # restart: unless-stopped
networks: # networks:
- traefik-public # - traefik-public
labels: # labels:
- traefik.enable=true # - traefik.enable=true
- traefik.docker.network=traefik-public # - traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public # - traefik.constraint-label=traefik-public
- "traefik.http.routers.readarr.rule=(Host(`niefelheim.com`) && Path(`/readarr`))" # - "traefik.http.routers.readarr.rule=(Host(`niefelheim.com`) && Path(`/readarr`))"
- traefik.http.services.readarr.loadbalancer.server.port=8787 # - traefik.http.services.readarr.loadbalancer.server.port=8787
# # Optional part for traefik middlewares # # Optional part for traefik middlewares
# - traefik.http.routers.readarr.middlewares=local-ipwhitelist@file # - traefik.http.routers.readarr.middlewares=local-ipwhitelist@file
@ -315,13 +316,13 @@ networks:
volumes: volumes:
#bazarr: #bazarr:
# driver: local # driver: local
lidarr: #lidarr:
driver: local # driver: local
prowlarr: prowlarr:
driver: local driver: local
readarr: #readarr:
driver: local # driver: local
radarr: #radarr:
driver: local # driver: local
sonarr: #sonarr:
driver: local # driver: local

View File

@ -7,9 +7,9 @@ services:
image: traefik:v3.0 image: traefik:v3.0
ports: ports:
# Listen on port 80, default for HTTP, necessary to redirect to HTTPS # Listen on port 80, default for HTTP, necessary to redirect to HTTPS
- 80:80 #- 80:80
# Listen on port 443, default for HTTPS # Listen on port 443, default for HTTPS
- 443:443 #- 443:443
# Listen on port 8080, traefiks web-ui # Listen on port 8080, traefiks web-ui
- 8080:8080 - 8080:8080
deploy: deploy:
@ -23,10 +23,10 @@ services:
- traefik.enable=true - traefik.enable=true
# Use the traefik-public network (declared below) # Use the traefik-public network (declared below)
- traefik.docker-network=traefik-public - traefik.docker-network=traefik-public
# User the custome label "traefik.constraint-label=traefik-public" # Use the custome label "traefik.constraint-label=traefik-public"
# This public Traefik will only use services with this label # This public Traefik will only use services with this label
# That way you can add other internal Traefik instances per stack if needed # That way you can add other internal Traefik instances per stack if needed
- traefik.constraint-label=traefik-public #- traefik.constraint-label=traefik-public
# admin-auth middleware with HTTP Basic auth # admin-auth middleware with HTTP Basic auth
# Using the environment variables USERNAME and HASHED_PASSOWRD # Using the environment variables USERNAME and HASHED_PASSOWRD
- traefik.http.middlewares.admin-auth.basicauth.users=${USERNAME?Variable not set}:${HASHED_PASSWORD?Variable not set} - traefik.http.middlewares.admin-auth.basicauth.users=${USERNAME?Variable not set}:${HASHED_PASSWORD?Variable not set}
@ -57,7 +57,12 @@ services:
- /var/run/docker.sock:/var/run/docker.sock:ro - /var/run/docker.sock:/var/run/docker.sock:ro
# Mount the volume to store the certificates # Mount the volume to store the certificates
- traefik-public-certificates:/certificates - traefik-public-certificates:/certificates
# Mount the volume to store logs
- traefik-logs:/logs
# Mount the directory where rules are saved
- /data/share/traefik/rules:/rules
command: command:
- --global.checkNewVersion=true
# Enable Docker in Traefik, so that it reads labels from Docker services # Enable Docker in Traefik, so that it reads labels from Docker services
- --providers.docker - --providers.docker
# Add a constraint to only use services with the label "traefik.constraint-label=traefik-public" # Add a constraint to only use services with the label "traefik.constraint-label=traefik-public"
@ -84,6 +89,15 @@ services:
- --api=true - --api=true
- --api.dashboard=true - --api.dashboard=true
- --api.insecure=true - --api.insecure=true
- --log=true
- --log.filePath=/logs/trafeik.log
- --log.level=INFO
- --accessLog=true
- --accessLog.filePath=/logs/access.log
- --accessLog.bufferingSize=100
- --accessLog.filters.statusCodes=204-299,400-499,500-599
- --providers.file.directory=rules
- --providers.file.watch=true
networks: networks:
# Use the public network created to be shared between Traefik and # Use the public network created to be shared between Traefik and
# any other service that needs to be publicly available with HTTPS # any other service that needs to be publicly available with HTTPS
@ -94,6 +108,9 @@ volumes:
# Traefik is always deployed to the same Docker node with the same volume containing # Traefik is always deployed to the same Docker node with the same volume containing
# the HTTPS certificates # the HTTPS certificates
traefik-public-certificates: traefik-public-certificates:
driver: local
traefik-logs:
driver: local
networks: networks:
# Use the previously created public network "traefik-public", shared with other # Use the previously created public network "traefik-public", shared with other