Remove docker labels, new v2 config.yaml is now mandatory on this branch

This commit is contained in:
Jean Froment 2022-03-06 18:19:36 +01:00
parent 32da0ba9ac
commit 48fa3a1eb6
34 changed files with 37 additions and 355 deletions

View File

@ -3,13 +3,14 @@
A collection of Dockerfiles and a docker-compose configuration to set up a A collection of Dockerfiles and a docker-compose configuration to set up a
seedbox and personal media server. seedbox and personal media server.
⚠️ Version 2 is released, please make sure you read [this V2 Migration Guide](doc/UPGRADE_V2.md) as there are breaking changes!
## Included Applications ## Included Applications
| Application | Web Interface | Docker image | Version (image tag) | Notes | | Application | Web Interface | Docker image | Version (image tag) | Notes |
-----------------------|----------------------------|------------------------------------------------------------------------|-------------------------|---------------------| -----------------------|----------------------------|------------------------------------------------------------------------|-------------------------|---------------------|
| Plex | plex.yourdomain.com | [linuxserver/plex](https://hub.docker.com/r/linuxserver/plex) | *latest* | Media Streaming | | Plex | plex.yourdomain.com | [linuxserver/plex](https://hub.docker.com/r/linuxserver/plex) | *latest* | Media Streaming |
| Deluge | deluge.yourdomain.com | [linuxserver/deluge](https://hub.docker.com/r/linuxserver/deluge) | *latest* | Torrents downloader | | Deluge | deluge.yourdomain.com | [linuxserver/deluge](https://hub.docker.com/r/linuxserver/deluge) | *latest* | Torrents downloader |
| Deluge (VPN) | deluge.yourdomain.com | [linuxserver/deluge](https://hub.docker.com/r/linuxserver/deluge) | *latest* | Torrents downloader (behind VPN) |
| Flood | flood.yourdomain.com | [jesec/flood](https://hub.docker.com/r/jesec/flood) | *latest* | Web client for Deluge (experimental) | | Flood | flood.yourdomain.com | [jesec/flood](https://hub.docker.com/r/jesec/flood) | *latest* | Web client for Deluge (experimental) |
| Sonarr | sonarr.yourdomain.com | [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr) | *develop* | TV Shows monitor | | Sonarr | sonarr.yourdomain.com | [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr) | *develop* | TV Shows monitor |
| Radarr | radarr.yourdomain.com | [linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr) | *develop* | Movies monitor | | Radarr | radarr.yourdomain.com | [linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr) | *develop* | Movies monitor |
@ -23,7 +24,6 @@ seedbox and personal media server.
| Jackett | jackett.yourdomain.com | [linuxserver/jackett](https://hub.docker.com/r/linuxserver/jackett) | *latest* | Tracker indexer | | Jackett | jackett.yourdomain.com | [linuxserver/jackett](https://hub.docker.com/r/linuxserver/jackett) | *latest* | Tracker indexer |
| Prowlarr | prowlarr.yourdomain.com | [linuxserver/prowlarr](https://hub.docker.com/r/linuxserver/prowlarr) | *develop* | Tracker indexer | | Prowlarr | prowlarr.yourdomain.com | [linuxserver/prowlarr](https://hub.docker.com/r/linuxserver/prowlarr) | *develop* | Tracker indexer |
| JDownloader | jdownloader.yourdomain.com | [jlesage/jdownloader-2](https://hub.docker.com/r/jlesage/jdownloader-2)| *latest* | Direct downloader | | JDownloader | jdownloader.yourdomain.com | [jlesage/jdownloader-2](https://hub.docker.com/r/jlesage/jdownloader-2)| *latest* | Direct downloader |
| JDownloader (VPN) | jdownloader.yourdomain.com | [jlesage/jdownloader-2](https://hub.docker.com/r/jlesage/jdownloader-2)| *latest* | Direct downloader (behind VPN) |
| Tautulli (plexPy) | tautulli.yourdomain.com | [linuxserver/tautulli](https://hub.docker.com/r/linuxserver/tautulli) | *latest* | Plex stats and admin| | Tautulli (plexPy) | tautulli.yourdomain.com | [linuxserver/tautulli](https://hub.docker.com/r/linuxserver/tautulli) | *latest* | Plex stats and admin|
| Tdarr | tdarr.yourdomain.com | [haveagitgat/tdarr](https://hub.docker.com/r/haveagitgat/tdarr) | *latest* | Re-encode files | | Tdarr | tdarr.yourdomain.com | [haveagitgat/tdarr](https://hub.docker.com/r/haveagitgat/tdarr) | *latest* | Re-encode files |
| NextCloud | nextcloud.yourdomain.com | [linuxserver/nextcloud](https://hub.docker.com/r/linuxserver/nextcloud) | *latest* | Files management | | NextCloud | nextcloud.yourdomain.com | [linuxserver/nextcloud](https://hub.docker.com/r/linuxserver/nextcloud) | *latest* | Files management |
@ -32,9 +32,9 @@ seedbox and personal media server.
| Netdata | netdata.yourdomain.com | [netdata/netdata](https://hub.docker.com/r/netdata/netdata) | *latest* | Server monitoring | | Netdata | netdata.yourdomain.com | [netdata/netdata](https://hub.docker.com/r/netdata/netdata) | *latest* | Server monitoring |
| Duplicati | duplicati.yourdomain.com | [linuxserver/duplicati](https://hub.docker.com/r/linuxserver/duplicati)| *latest* | Backups | | Duplicati | duplicati.yourdomain.com | [linuxserver/duplicati](https://hub.docker.com/r/linuxserver/duplicati)| *latest* | Backups |
| Heimdall | yourdomain.com | [linuxserver/heimdall](https://hub.docker.com/r/linuxserver/heimdall)| *latest* | Main dashboard | | Heimdall | yourdomain.com | [linuxserver/heimdall](https://hub.docker.com/r/linuxserver/heimdall)| *latest* | Main dashboard |
| Gluetun | - | [qmcgaw/gluetun](https://hub.docker.com/r/qmcgaw/gluetun)| *latest* | VPN client (still WIP...) | | Gluetun | - | [qmcgaw/gluetun](https://hub.docker.com/r/qmcgaw/gluetun)| *latest* | VPN client |
The front-end reverse proxy (Traefik - **check the next section if you have already the seedbox with Traefik v1**) routes based on the lowest level subdomain The front-end reverse proxy (Traefik - **check [this guide](doc/traefik_v2.md) if you still have the seedbox with Traefik v1**) routes based on the lowest level subdomain
(e.g. `deluge.example.com` would route to deluge). Since this is how the router (e.g. `deluge.example.com` would route to deluge). Since this is how the router
works, it is recommended for you to get a top level domain. If you do not have works, it is recommended for you to get a top level domain. If you do not have
one, you can edit your domains locally by changing your hosts file or use a one, you can edit your domains locally by changing your hosts file or use a
@ -45,38 +45,11 @@ Traefik takes care of valid Let's Encrypt certificates and auto-renewal.
Note: Plex is also available directly through the `32400` port without going Note: Plex is also available directly through the `32400` port without going
through the reverse proxy. through the reverse proxy.
## September 2020 - Upgrade to Traefik v2 instructions
Before upgrading Traefik to version 2, please check the following:
- In this repo, Traefik v2 upgrade is as seamless as possible (same environment variables than before, out-of-the-box config file...).
- **First, ``git pull`` to grab the latest code.**
- The ``HTTP_PASSWORD`` variable now must be simple-quoted in the .env file. See the updated ``.env.sample`` file (which has also been reorganized)
- Run ``init.sh`` in order to create required Docker objects (network name has changed).
- You can update your acme.json to a Traefik v2-compliant one by doing the following (before launching Traefik v2):
```sh
mkdir -p /tmp/migration
cd /tmp/migration
sudo cp /opt/traefik/acme.json .
sudo chmod 775 /tmp/migration/acme.json
# Do *NOT* forget the --resolver at the end! (le = Let's Encrypt resolver, see traefik/traefik.yml)
docker run --rm -v ${PWD}:/data -w /data containous/traefik-migration-tool acme -i acme.json -o acme2.json --resolver le
mkdir -p /data/config/traefik
sudo cp acme2.json /data/config/traefik/acme.json
sudo chmod 600 /data/config/traefik/acme.json
# When you already have a backup!
sudo rm -rf /opt/traefik /tmp/migration
```
- As from Traefik v2, as Http Authentication is now possible on the Traefik console, the latter is enabled at ``traefik.yourdomain.com``.
- After all this, you can simply do: ``./update-all.sh``! Voilà!
## Dependencies ## Dependencies
- [Docker](https://github.com/docker/docker) >= 20.10 - [Docker](https://github.com/docker/docker) >= 20.10
- [Docker Compose](https://github.com/docker/compose) >= 1.28.0 - [Docker Compose](https://github.com/docker/compose) >= 2.2
- [local-persist Docker plugin](https://github.com/MatchbookLab/local-persist): installed directly on host (not in container). This is a volume plugin that extends the default local drivers functionality by allowing you specify a mountpoint anywhere on the host, which enables the files to always persist, even if the volume is removed via `docker volume rm`. Use *systemd* install for Ubuntu 16.04. - [local-persist Docker plugin](https://github.com/MatchbookLab/local-persist): installed directly on host (not in container). This is a volume plugin that extends the default local drivers functionality by allowing you specify a mountpoint anywhere on the host, which enables the files to always persist, even if the volume is removed via `docker volume rm`. Use *systemd* install for Ubuntu.
## Configuration ## Configuration
@ -91,22 +64,15 @@ sudo su -c "mkdir /data && mkdir /data/config && mkdir /data/torrents"
Edit the `.env` file and change the variables as desired. Edit the `.env` file and change the variables as desired.
The variables are all self-explanatory. The variables are all self-explanatory.
**NEW**
You can also disable a service if you do not need it by editing the ``services.conf`` file.
Simply change the "*enable*" key with the "*disable*" one for the service you want to disable.
If you remove a line in this file, it will be considered as "enabled" as all services are enabled by default.
## Running & updating ## Running & updating
```sh ```sh
./update-all.sh ./run-seedbox.sh
``` ```
docker-compose should manage all the volumes and network setup for you. If it docker-compose should manage all the volumes and network setup for you. If it does not, verify that your docker and docker-compose version is updated.
does not, verify that your docker and docker-compose version is updated.
Make sure you install the dependencies and finish configuration before doing Make sure you install the dependencies and finish configuration before doing this.
this.
## PlexPass ## PlexPass

View File

@ -28,6 +28,7 @@ Since there are some breaking changes and a configuration structure migration, a
* ``Readarr``: [Ebook and comic monitor](https://github.com/Readarr/Readarr) * ``Readarr``: [Ebook and comic monitor](https://github.com/Readarr/Readarr)
* ``Komga``: [Comic Book Manager](https://github.com/gotson/komga) * ``Komga``: [Comic Book Manager](https://github.com/gotson/komga)
* ``Kavita``: [Comic / Book Manager](https://github.com/Kareadita/Kavita) * ``Kavita``: [Comic / Book Manager](https://github.com/Kareadita/Kavita)
* Docker compose v2.2+ is now required
And also: And also:

26
doc/traefik_v2.md Normal file
View File

@ -0,0 +1,26 @@
# September 2020 - Upgrade to Traefik v2 instructions
Before upgrading Traefik to version 2, please check the following:
- In this repo, Traefik v2 upgrade is as seamless as possible (same environment variables than before, out-of-the-box config file...).
- **First, ``git pull`` to grab the latest code.**
- The ``HTTP_PASSWORD`` variable now must be simple-quoted in the .env file. See the updated ``.env.sample`` file (which has also been reorganized)
- Run ``init.sh`` in order to create required Docker objects (network name has changed).
- You can update your acme.json to a Traefik v2-compliant one by doing the following (before launching Traefik v2):
```sh
mkdir -p /tmp/migration
cd /tmp/migration
sudo cp /opt/traefik/acme.json .
sudo chmod 775 /tmp/migration/acme.json
# Do *NOT* forget the --resolver at the end! (le = Let's Encrypt resolver, see traefik/traefik.yml)
docker run --rm -v ${PWD}:/data -w /data containous/traefik-migration-tool acme -i acme.json -o acme2.json --resolver le
mkdir -p /data/config/traefik
sudo cp acme2.json /data/config/traefik/acme.json
sudo chmod 600 /data/config/traefik/acme.json
# When you already have a backup!
sudo rm -rf /opt/traefik /tmp/migration
```
- As from Traefik v2, as Http Authentication is now possible on the Traefik console, the latter is enabled at ``traefik.yourdomain.com``.
- After all this, you can simply do: ``./update-all.sh``! Voilà!

View File

@ -1,132 +0,0 @@
#!/bin/bash
set -e
SKIP_PULL=0
for i in "$@"; do
case $i in
--no-pull)
SKIP_PULL=1
;;
*)
echo "[$0] ❌ ERROR: unknown parameter \"$i\""
exit 1
;;
esac
done
# Create/update http_auth file according to values in .env file
source .env
echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth
# Docker-compose settings
export COMPOSE_HTTP_TIMEOUT=240
# Retro-compatibility
[[ -z $HOST_CONFIG_PATH ]] && export HOST_CONFIG_PATH="/data/config"
[[ -z $HOST_MEDIA_PATH ]] && export HOST_MEDIA_PATH="/data/torrents"
[[ -z $DOWNLOAD_SUBFOLDER ]] && export DOWNLOAD_SUBFOLDER="deluge"
if [[ ! -f services.conf ]]; then
echo "[$0] No services.conf file found. Copying from sample file..."
cp services.conf.sample services.conf
fi
# Alert in case new services have been added (or removed) in sample but active file has not changed
NB_SERVICES_ACTIVE=$(cat services.conf | wc -l)
NB_SERVICES_ORIG=$(cat services.conf.sample | wc -l)
if [[ ${NB_SERVICES_ACTIVE} != ${NB_SERVICES_ORIG} ]]; then
echo "[$0] Your services.conf file seems outdated. It appears there are new services available, or services that have been removed."
diff -yt services.conf services.conf.sample || true
echo ""
fi
# Check if *-vpn services are enabled. If so, check that gluetun is enabled.
if [[ $(cat services.conf | { grep -E ".*vpn: enable" || true; } | wc -l) -ge 1 ]]; then
if [[ $(cat services.conf | { grep "gluetun: enable" || true; } | wc -l) -eq 0 ]]; then
echo "[$0] ERROR. A VPN-enabled service has been enabled BUT gluetun has not been enabled. Please check your services.conf file."
echo "******* Exiting *******"
exit 1
fi
fi
# Check if there are no conflict in enabled services (for example, you cannot enable deluge AND deluge-vpn)
for svc in deluge plex jdownloader; do
if [[ $(cat services.conf | { grep -E "${svc}.*: enable" || true; } | wc -l) -gt 1 ]]; then
echo "[$0] ERROR. You cannot enable multiple ${svc^} services simultaneously. Please edit this section in your services.conf file:"
cat services.conf | { grep -E "${svc}.*: enable" || true; }
echo "******* Exiting *******"
exit 1
fi
done
# Determine what host Flood should connect to
# => If deluge-vpn is enabled => gluetun
# => If deluge is enabled => deluge
if [[ $(cat services.conf | { grep -E "flood\: enable" || true; } | wc -l) -eq 1 ]]; then
if [[ $(cat services.conf | { grep -E "deluge\-vpn\: enable" || true; } | wc -l) -eq 1 ]]; then
export DELUGE_HOST="gluetun"
elif [[ $(cat services.conf | { grep -E "deluge\: enable" || true; } | wc -l) -eq 1 ]]; then
export DELUGE_HOST="deluge"
fi
fi
# Apply Traefik dynamic files in traefik conf directory if VPN are enabled for some services
for svc in $(cat services.conf | grep "\-vpn: enable" | sed -E "s/(.*)\: enable/\1/g"); do
if [[ -f samples/traefik-${svc}.yaml ]]; then
echo "[$0] traefik-$svc.yaml file detected in samples/ directory. Applying into Traefik runtime config directory..."
cp samples/traefik-${svc}.yaml traefik/custom/dynamic-${svc}.yaml
else
echo "[$0] No custom traefik file found in samples/directory for app $svc. Skipping..."
fi
done
# Apply other arbitrary custom Traefik config files
for f in `find samples/custom-traefik -maxdepth 1 -mindepth 1 -type f | grep -E "\.yml$|\.yaml$" | sort`; do
echo "[$0] Applying custom Traefik config $f..."
cp $f traefik/custom/dynamic-$(basename $f)
done
# Detect Synology devices for Netdata compatibility
if [[ $(cat services.conf | { grep -E "netdata\: enable" || true; } | wc -l) -eq 1 ]]; then
if [[ $(uname -a | { grep synology || true; } | wc -l) -eq 1 ]]; then
export OS_RELEASE_FILEPATH="/etc/VERSION"
else
export OS_RELEASE_FILEPATH="/etc/os-release"
fi
fi
# Fetch all YAML files
disabled_pattern=""
while read -r line ; do
disabled_pattern="${disabled_pattern} ! -name $line.yaml"
done < <(grep "disable" services.conf | awk -F : '{print $1}' )
SERVICES=$(find services -mindepth 1 -maxdepth 1 -name "*.yaml" ${disabled_pattern} | sed -e 's/^/-f /')
ALL_SERVICES="-f docker-compose.yaml $SERVICES"
# Specific instructions for Flood
# User for Deluge daemon RPC has to be created in deluge auth config file
if [[ ! -z ${FLOOD_PASSWORD} && ${FLOOD_AUTOCREATE_USER_IN_DELUGE_DAEMON} == true ]]; then
if ! grep -q "flood" $HOST_CONFIG_PATH/deluge/auth; then
echo "flood:${FLOOD_PASSWORD}:10" >> $HOST_CONFIG_PATH/deluge/auth
else
echo "[$0] No need to add user/password for flood as it has already been created."
echo "[$0] Consider setting FLOOD_AUTOCREATE_USER_IN_DELUGE_DAEMON variable to false in .env file."
fi
fi
if [[ "${SKIP_PULL}" != "1" ]]; then
echo "[$0] ***** Pulling all images... *****"
docker-compose ${ALL_SERVICES} pull
fi
echo "[$0] ***** Recreating containers if required... *****"
docker-compose ${ALL_SERVICES} up -d --remove-orphans
echo "[$0] ***** Done updating containers *****"
echo "[$0] ***** Clean unused images and volumes... *****"
docker image prune -af
docker volume prune -f
echo "[$0] ***** Done! *****"
exit 0

View File

@ -1,12 +0,0 @@
http:
routers:
deluge:
rule: 'Host(`deluge.{{ env "TRAEFIK_DOMAIN" }}`)'
middlewares:
- common-auth@file
service: deluge
services:
deluge:
loadBalancer:
servers:
- url: "http://gluetun:8112"

View File

@ -1,12 +0,0 @@
http:
routers:
jdownloader:
rule: 'Host(`jdownloader.{{ env "TRAEFIK_DOMAIN" }}`)'
middlewares:
- common-auth@file
service: deluge
services:
jdownloader:
loadBalancer:
servers:
- url: "http://gluetun:5800"

View File

@ -10,10 +10,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.bazarr.rule=Host(`bazarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.bazarr.middlewares=common-auth@file"
volumes: volumes:
configbazarr: configbazarr:

View File

@ -1,21 +0,0 @@
services:
deluge:
image: ghcr.io/linuxserver/deluge
container_name: deluge
restart: always
network_mode: "service:gluetun"
volumes:
- torrents:/torrents
- configdeluge:/config
- downloads:/downloads
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
# Traefik labels are in Gluetun YAML as deluge must be accessed via Gluetun
volumes:
configdeluge:
driver: local-persist
driver_opts:
mountpoint: $HOST_CONFIG_PATH/deluge

View File

@ -11,10 +11,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.deluge.rule=Host(`deluge.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.deluge.middlewares=common-auth@file"
volumes: volumes:
configdeluge: configdeluge:

View File

@ -11,10 +11,6 @@ services:
- configduplicati:/config - configduplicati:/config
- backups:/backups - backups:/backups
- config:/source - config:/source
labels:
- "traefik.enable=true"
- "traefik.http.routers.duplicati.rule=Host(`duplicati.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.duplicati.middlewares=common-auth@file"
volumes: volumes:
configduplicati: configduplicati:

View File

@ -18,12 +18,6 @@ services:
- torrents:/torrents - torrents:/torrents
- downloads:/downloads - downloads:/downloads
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.flood.rule=Host(`flood.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.flood.middlewares=common-auth@file"
- "traefik.http.routers.flood.service=flood-service"
- "traefik.http.services.flood-service.loadbalancer.server.port=3000"
volumes: volumes:
configflood: configflood:

View File

@ -17,15 +17,6 @@ services:
- WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY} - WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY}
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
- WIREGUARD_ADDRESS=${WIREGUARD_ADDRESS} - WIREGUARD_ADDRESS=${WIREGUARD_ADDRESS}
#labels:
# Control Panel
# - "traefik.enable=true"
# - "traefik.http.routers.gluetun.rule=Host(`gluetun.${TRAEFIK_DOMAIN}`)"
# - "traefik.http.routers.gluetun.middlewares=common-auth@file"
# - "traefik.http.routers.gluetun.service=gluetun"
# - "traefik.http.services.gluetun.loadbalancer.server.port=8000"
# Traefik rules for VPN-enabled services (which have ot be accessed through gluetun) are defined in the samples/ directory
# and are applied automatically in the update-all.sh script.
volumes: volumes:
configgluetun: configgluetun:

View File

@ -9,10 +9,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.heimdall.rule=Host(`${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.heimdall.middlewares=common-auth@file"
volumes: volumes:
configheimdall: configheimdall:

View File

@ -12,7 +12,3 @@ services:
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
- RUN_OPTS='-FlareSolverrURL="http://flaresolverr:8191"' - RUN_OPTS='-FlareSolverrURL="http://flaresolverr:8191"'
labels:
- "traefik.enable=true"
- "traefik.http.routers.jackett.rule=Host(`jackett.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.jackett.middlewares=common-auth@file"

View File

@ -1,20 +0,0 @@
services:
jdownloader:
image: jlesage/jdownloader-2
container_name: jdownloader
restart: always
network_mode: "service:gluetun"
volumes:
- configjdownloader:/config
- downloads:/output
environment:
- USER_ID=${PUID}
- GROUP_ID=${PGID}
- TZ=${TZ}
# Traefik routing rules are defined in the samples/ directory and applied automatically when this service is enabled
volumes:
configjdownloader:
driver: local-persist
driver_opts:
mountpoint: $HOST_CONFIG_PATH/jdownloader

View File

@ -10,11 +10,6 @@ services:
- USER_ID=${PUID} - USER_ID=${PUID}
- GROUP_ID=${PGID} - GROUP_ID=${PGID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.services.jdownloader-seedbox.loadbalancer.server.port=5800"
- "traefik.http.routers.jdownloader.rule=Host(`jdownloader.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.jdownloader.middlewares=common-auth@file"
volumes: volumes:
configjdownloader: configjdownloader:

View File

@ -11,9 +11,6 @@ services:
- TZ=${TZ} - TZ=${TZ}
# Wait for https://github.com/Kareadita/Kavita/issues/301 to be resolved # Wait for https://github.com/Kareadita/Kavita/issues/301 to be resolved
#user: "${PUID}:${PGID}" #user: "${PUID}:${PGID}"
labels:
- "traefik.enable=true"
- "traefik.http.routers.kavita.rule=Host(`kavita.${TRAEFIK_DOMAIN}`)"
volumes: volumes:
configkavita: configkavita:

View File

@ -10,9 +10,6 @@ services:
environment: environment:
- TZ=${TZ} - TZ=${TZ}
user: "${PUID}:${PGID}" user: "${PUID}:${PGID}"
labels:
- "traefik.enable=true"
- "traefik.http.routers.komga.rule=Host(`komga.${TRAEFIK_DOMAIN}`)"
volumes: volumes:
configkomga: configkomga:

View File

@ -10,10 +10,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.lidarr.rule=Host(`lidarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.lidarr.middlewares=common-auth@file"
volumes: volumes:
configlidarr: configlidarr:

View File

@ -17,7 +17,3 @@ services:
- /etc/group:/host/etc/group:ro - /etc/group:/host/etc/group:ro
- ${OS_RELEASE_FILEPATH}:/host/etc/os-release:ro - ${OS_RELEASE_FILEPATH}:/host/etc/os-release:ro
- /var/run/docker.sock:/var/run/docker.sock:ro - /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.netdata.rule=Host(`netdata.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.netdata.middlewares=common-auth@file"

View File

@ -32,11 +32,6 @@ services:
- nextclouddata:/data - nextclouddata:/data
- torrents:/torrents - torrents:/torrents
- config:/seedbox-config - config:/seedbox-config
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.${TRAEFIK_DOMAIN}`)"
- "traefik.http.services.nextcloud-seedbox.loadbalancer.server.scheme=https"
- "traefik.http.services.nextcloud-seedbox.loadbalancer.server.port=443"
volumes: volumes:
nextclouddb: nextclouddb:

View File

@ -10,10 +10,6 @@ services:
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
- BASE_URL=/ - BASE_URL=/
labels:
- "traefik.enable=true"
- "traefik.http.routers.ombi.rule=Host(`ombi.${TRAEFIK_DOMAIN}`)"
#- "traefik.http.routers.ombi.middlewares=common-auth@file"
volumes: volumes:
configombi: configombi:

View File

@ -9,9 +9,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.overseerr.rule=Host(`overseerr.${TRAEFIK_DOMAIN}`)"
volumes: volumes:
configoverseerr: configoverseerr:

View File

@ -19,10 +19,6 @@ services:
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
- VERSION=latest - VERSION=latest
labels:
- "traefik.enable=true"
- "traefik.http.services.plex-seedbox.loadbalancer.server.port=32400"
- "traefik.http.routers.plex.rule=Host(`plex.${TRAEFIK_DOMAIN}`)"
volumes: volumes:
configplex: configplex:

View File

@ -16,10 +16,6 @@ services:
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
- VERSION=latest - VERSION=latest
labels:
- "traefik.enable=true"
- "traefik.http.services.plex-seedbox.loadbalancer.server.port=32400"
- "traefik.http.routers.plex.rule=Host(`plex.${TRAEFIK_DOMAIN}`)"
volumes: volumes:
configplex: configplex:

View File

@ -6,7 +6,3 @@ services:
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
command: --admin-password ${PORTAINER_ADMIN_PASSWORD} --host=unix:///var/run/docker.sock command: --admin-password ${PORTAINER_ADMIN_PASSWORD} --host=unix:///var/run/docker.sock
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.rule=Host(`portainer.${TRAEFIK_DOMAIN}`)"
- "traefik.http.services.portainer-seedbox.loadbalancer.server.port=9000"

View File

@ -9,10 +9,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.prowlarr.rule=Host(`prowlarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.prowlarr.middlewares=common-auth@file"
volumes: volumes:
configprowlarr: configprowlarr:

View File

@ -11,10 +11,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.radarr.rule=Host(`radarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.radarr.middlewares=common-auth@file"
volumes: volumes:
configradarr: configradarr:

View File

@ -11,10 +11,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.readarr.rule=Host(`readarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.readarr.middlewares=common-auth@file"
volumes: volumes:
configreadarr: configreadarr:

View File

@ -11,10 +11,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.sonarr.rule=Host(`sonarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.sonarr.middlewares=common-auth@file"
volumes: volumes:
configsonarr: configsonarr:

View File

@ -16,12 +16,6 @@ services:
- 22000:22000/tcp - 22000:22000/tcp
- 22000:22000/udp - 22000:22000/udp
- 21027:21027/udp - 21027:21027/udp
labels:
- "traefik.enable=true"
- "traefik.http.routers.syncthing.rule=Host(`syncthing.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.syncthing.middlewares=common-auth@file"
- "traefik.http.routers.syncthing.service=syncthing"
- "traefik.http.services.syncthing.loadbalancer.server.port=8384"
volumes: volumes:
configsyncthing: configsyncthing:

View File

@ -10,9 +10,6 @@ services:
- PGID=${PGID} - PGID=${PGID}
- PUID=${PUID} - PUID=${PUID}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.tautulli.rule=Host(`tautulli.${TRAEFIK_DOMAIN}`)"
volumes: volumes:
configtautulli: configtautulli:

View File

@ -15,11 +15,6 @@ services:
- transcodes:/temp - transcodes:/temp
- configtdarrv2:/app/server - configtdarrv2:/app/server
- settingstdarrv2:/app/configs - settingstdarrv2:/app/configs
labels:
- "traefik.enable=true"
- "traefik.http.services.tdarrv2-seedbox.loadbalancer.server.port=8265"
- "traefik.http.routers.tdarrv2.rule=Host(`tdarr.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.tdarrv2.middlewares=common-auth@file"
tdarr_node: tdarr_node:
image: haveagitgat/tdarr_node:latest image: haveagitgat/tdarr_node:latest

View File

@ -16,12 +16,6 @@ services:
environment: environment:
- TRAEFIK_DOMAIN=${TRAEFIK_DOMAIN} - TRAEFIK_DOMAIN=${TRAEFIK_DOMAIN}
- TZ=${TZ} - TZ=${TZ}
labels:
- "traefik.enable=true"
# Docker labels for enabling Traefik dashboard
- "traefik.http.routers.traefik.rule=Host(`traefik.${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=common-auth@file"
volumes: volumes:
configtraefik: configtraefik: