commit
						23beb81f24
					
				|  | @ -26,3 +26,7 @@ NEXTCLOUD_ADMIN_PASSWORD=h4ckMePleAse873214668 | |||
| 
 | ||||
| # Portainer | ||||
| 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 | ||||
| **/traefik/http_auth | ||||
| 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     | | ||||
| | 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    | | ||||
| | 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   | | ||||
| | 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     | | ||||
| | 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   | | ||||
| | 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 | | ||||
|  |  | |||
|  | @ -1,11 +1,15 @@ | |||
| deluge: enable | ||||
| flood: enable | ||||
| plex: enable | ||||
| flaresolverr: enable | ||||
| jackett: enable | ||||
| prowlarr: enable | ||||
| sonarr: enable | ||||
| radarr: enable | ||||
| bazarr: enable | ||||
| lidarr: enable | ||||
| ombi: disable | ||||
| overseerr: enable | ||||
| tautulli: enable | ||||
| jdownloader: 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: | ||||
|   netdata: | ||||
|     image: netdata/netdata | ||||
|     image: netdata/netdata:stable | ||||
|     restart: always | ||||
|     container_name: netdata | ||||
|     hostname: netdata.${TRAEFIK_DOMAIN} | ||||
|  | @ -16,7 +16,7 @@ services: | |||
|       - /etc/passwd:/host/etc/passwd:ro | ||||
|       - /etc/group:/host/etc/group: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: | ||||
|       - "traefik.enable=true" | ||||
|       - "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 | ||||
| 
 | ||||
| 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 | ||||
|  | @ -7,17 +21,44 @@ echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth | |||
| # Docker-compose settings | ||||
| 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 | ||||
| disabled_pattern="" | ||||
| while read -r line ; do | ||||
|     disabled_pattern="${disabled_pattern} ! -name $line.yaml" | ||||
|   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" | ||||
| 
 | ||||
| echo "[$0] ***** Pulling all images... *****" | ||||
| docker-compose ${ALL_SERVICES} pull | ||||
| # 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" /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... *****" | ||||
| docker-compose ${ALL_SERVICES} up -d --remove-orphans | ||||
| echo "[$0] ***** Done updating containers *****" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue