commit
23beb81f24
|
@ -26,3 +26,7 @@ NEXTCLOUD_ADMIN_PASSWORD=h4ckMePleAse873214668
|
||||||
|
|
||||||
# Portainer
|
# Portainer
|
||||||
PORTAINER_ADMIN_PASSWORD=h4ckMePleAse
|
PORTAINER_ADMIN_PASSWORD=h4ckMePleAse
|
||||||
|
|
||||||
|
# Flood username declared in deluge rpc daemon
|
||||||
|
FLOOD_PASSWORD=myfloodpassword
|
||||||
|
FLOOD_AUTOCREATE_USER_IN_DELUGE_DAEMON=false
|
|
@ -5,3 +5,4 @@
|
||||||
**/.env
|
**/.env
|
||||||
**/traefik/http_auth
|
**/traefik/http_auth
|
||||||
backup/
|
backup/
|
||||||
|
services.conf
|
||||||
|
|
|
@ -9,11 +9,15 @@ seedbox and personal media server.
|
||||||
-----------------------|----------------------------|------------------------------------------------------------------------|-------------------------|---------------------|
|
-----------------------|----------------------------|------------------------------------------------------------------------|-------------------------|---------------------|
|
||||||
| 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 |
|
||||||
|
| 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 |
|
||||||
| Bazarr | bazarr.yourdomain.com | [linuxserver/bazarr](https://hub.docker.com/r/linuxserver/bazarr) | *latest* | Subtitles monitor |
|
| Bazarr | bazarr.yourdomain.com | [linuxserver/bazarr](https://hub.docker.com/r/linuxserver/bazarr) | *latest* | Subtitles monitor |
|
||||||
| Lidarr | lidarr.yourdomain.com | [linuxserver/lidarr](https://hub.docker.com/r/linuxserver/lidarr) | *develop* | Music monitor |
|
| Lidarr | lidarr.yourdomain.com | [linuxserver/lidarr](https://hub.docker.com/r/linuxserver/lidarr) | *develop* | Music monitor |
|
||||||
|
| Ombi | ombi.yourdomain.com | [linuxserver/ombi](https://hub.docker.com/r/linuxserver/ombi) | *latest* | Plex content requests |
|
||||||
|
| Overseerr | overseerr.yourdomain.com | [linuxserver/overseerr](https://hub.docker.com/r/linuxserver/overseerr) | *latest* | Plex content requests |
|
||||||
| 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) | *nightly* | Tracker indexer **(new)** |
|
||||||
| 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 |
|
||||||
| 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 |
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
deluge: enable
|
deluge: enable
|
||||||
|
flood: enable
|
||||||
plex: enable
|
plex: enable
|
||||||
flaresolverr: enable
|
flaresolverr: enable
|
||||||
jackett: enable
|
jackett: enable
|
||||||
|
prowlarr: enable
|
||||||
sonarr: enable
|
sonarr: enable
|
||||||
radarr: enable
|
radarr: enable
|
||||||
bazarr: enable
|
bazarr: enable
|
||||||
lidarr: enable
|
lidarr: enable
|
||||||
|
ombi: disable
|
||||||
|
overseerr: enable
|
||||||
tautulli: enable
|
tautulli: enable
|
||||||
jdownloader: enable
|
jdownloader: enable
|
||||||
tdarr: enable
|
tdarr: enable
|
|
@ -0,0 +1,32 @@
|
||||||
|
services:
|
||||||
|
flood:
|
||||||
|
image: jesec/flood:latest
|
||||||
|
container_name: flood
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- deluge
|
||||||
|
user: ${PUID}:${PGID}
|
||||||
|
command:
|
||||||
|
- --auth=none
|
||||||
|
- --dehost=deluge
|
||||||
|
- --deport=58846
|
||||||
|
- --deuser=flood
|
||||||
|
- --depass=${FLOOD_PASSWORD}
|
||||||
|
- --rundir=/config
|
||||||
|
volumes:
|
||||||
|
- configflood:/config
|
||||||
|
- torrents:/torrents
|
||||||
|
- downloads:/downloads
|
||||||
|
- /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:
|
||||||
|
configflood:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/flood
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
netdata:
|
netdata:
|
||||||
image: netdata/netdata
|
image: netdata/netdata:stable
|
||||||
restart: always
|
restart: always
|
||||||
container_name: netdata
|
container_name: netdata
|
||||||
hostname: netdata.${TRAEFIK_DOMAIN}
|
hostname: netdata.${TRAEFIK_DOMAIN}
|
||||||
|
@ -16,7 +16,7 @@ services:
|
||||||
- /etc/passwd:/host/etc/passwd:ro
|
- /etc/passwd:/host/etc/passwd:ro
|
||||||
- /etc/group:/host/etc/group:ro
|
- /etc/group:/host/etc/group:ro
|
||||||
- /etc/os-release:/host/etc/os-release:ro
|
- /etc/os-release:/host/etc/os-release:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:rw
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.netdata.rule=Host(`netdata.${TRAEFIK_DOMAIN}`)"
|
- "traefik.http.routers.netdata.rule=Host(`netdata.${TRAEFIK_DOMAIN}`)"
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
services:
|
||||||
|
ombi:
|
||||||
|
image: ghcr.io/linuxserver/ombi
|
||||||
|
container_name: ombi
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configombi:/config
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- BASE_URL=/
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.ombi.rule=Host(`ombi.${TRAEFIK_DOMAIN}`)"
|
||||||
|
#- "traefik.http.routers.ombi.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configombi:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/ombi
|
|
@ -0,0 +1,20 @@
|
||||||
|
services:
|
||||||
|
overseerr:
|
||||||
|
image: ghcr.io/linuxserver/overseerr
|
||||||
|
container_name: overseerr
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configoverseerr:/config
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.overseerr.rule=Host(`overseerr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configoverseerr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/overseerr
|
|
@ -0,0 +1,21 @@
|
||||||
|
services:
|
||||||
|
prowlarr:
|
||||||
|
image: ghcr.io/linuxserver/prowlarr:nightly
|
||||||
|
container_name: prowlarr
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configprowlarr:/config
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.prowlarr.rule=Host(`prowlarr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.prowlarr.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configprowlarr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/prowlarr
|
|
@ -1,5 +1,19 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
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
|
# Create/update http_auth file according to values in .env file
|
||||||
source .env
|
source .env
|
||||||
echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth
|
echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth
|
||||||
|
@ -7,6 +21,19 @@ echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth
|
||||||
# Docker-compose settings
|
# Docker-compose settings
|
||||||
COMPOSE_HTTP_TIMEOUT=240
|
COMPOSE_HTTP_TIMEOUT=240
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
|
||||||
# Fetch all YAML files
|
# Fetch all YAML files
|
||||||
disabled_pattern=""
|
disabled_pattern=""
|
||||||
while read -r line ; do
|
while read -r line ; do
|
||||||
|
@ -16,8 +43,22 @@ done < <(grep "disable" services.conf | awk -F : '{print $1}' )
|
||||||
SERVICES=$(find services -mindepth 1 -maxdepth 1 -name "*.yaml" ${disabled_pattern} | sed -e 's/^/-f /')
|
SERVICES=$(find services -mindepth 1 -maxdepth 1 -name "*.yaml" ${disabled_pattern} | sed -e 's/^/-f /')
|
||||||
ALL_SERVICES="-f docker-compose.yaml $SERVICES"
|
ALL_SERVICES="-f docker-compose.yaml $SERVICES"
|
||||||
|
|
||||||
echo "[$0] ***** Pulling all images... *****"
|
# Specific instructions for Flood
|
||||||
docker-compose ${ALL_SERVICES} pull
|
# 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" /data/config/deluge/auth; then
|
||||||
|
echo "flood:${FLOOD_PASSWORD}:10" >> /data/config/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... *****"
|
echo "[$0] ***** Recreating containers if required... *****"
|
||||||
docker-compose ${ALL_SERVICES} up -d --remove-orphans
|
docker-compose ${ALL_SERVICES} up -d --remove-orphans
|
||||||
echo "[$0] ***** Done updating containers *****"
|
echo "[$0] ***** Done updating containers *****"
|
||||||
|
|
Loading…
Reference in New Issue