Remove docker labels, new v2 config.yaml is now mandatory on this branch
This commit is contained in:
parent
32da0ba9ac
commit
48fa3a1eb6
52
README.md
52
README.md
|
@ -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 driver’s 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 driver’s 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
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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à!
|
|
@ -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
|
|
|
@ -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"
|
|
|
@ -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"
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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"
|
|
||||||
|
|
|
@ -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
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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"
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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"
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue