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,17 +21,44 @@ 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 | ||||||
|     disabled_pattern="${disabled_pattern} ! -name $line.yaml" |   disabled_pattern="${disabled_pattern} ! -name $line.yaml" | ||||||
| done < <(grep "disable" services.conf | awk -F : '{print  $1}' ) | 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