Split docker-compose.yml into multiple files in dedicated dir
This commit is contained in:
parent
9b9a141093
commit
74affa6dae
|
@ -1,7 +1,7 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
/config
|
/config
|
||||||
tunnel-options.sh
|
**/tunnel-options.sh
|
||||||
.env
|
**/.env
|
||||||
traefik/http_auth
|
**/traefik/http_auth
|
||||||
backup/
|
backup/
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
## Services are now located in separate files, in the services directory. ##
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
# Common network used by all services
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
external:
|
||||||
|
name: "traefik-network"
|
||||||
|
|
||||||
|
# Common volumes used by at least 2 services
|
||||||
|
volumes:
|
||||||
|
config:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config
|
||||||
|
torrents:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/torrents
|
||||||
|
downloads:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/torrents/deluge
|
|
@ -1,385 +0,0 @@
|
||||||
version: "3.7"
|
|
||||||
|
|
||||||
services:
|
|
||||||
traefik:
|
|
||||||
image: traefik
|
|
||||||
container_name: traefik
|
|
||||||
restart: always
|
|
||||||
command:
|
|
||||||
- --certificatesresolvers.le.acme.email=${ACME_MAIL}
|
|
||||||
- --pilot.token=${PILOT_TOKEN}
|
|
||||||
ports:
|
|
||||||
- "80:80"
|
|
||||||
- "443:443"
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
- ./traefik:/etc/traefik:ro
|
|
||||||
- configtraefik:/config
|
|
||||||
environment:
|
|
||||||
- TRAEFIK_DOMAIN=${TRAEFIK_DOMAIN}
|
|
||||||
- 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"
|
|
||||||
|
|
||||||
deluge:
|
|
||||||
image: ghcr.io/linuxserver/deluge
|
|
||||||
container_name: deluge
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- torrents:/torrents
|
|
||||||
- configdeluge:/config
|
|
||||||
- downloads:/downloads
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.deluge.rule=Host(`deluge.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.deluge.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
plex:
|
|
||||||
image: ghcr.io/linuxserver/plex
|
|
||||||
container_name: plex
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- "32400:32400"
|
|
||||||
- "32400:32400/udp"
|
|
||||||
- "32469:32469"
|
|
||||||
- "32469:32469/udp"
|
|
||||||
- "5353:5353/udp"
|
|
||||||
- "1900:1900/udp"
|
|
||||||
volumes:
|
|
||||||
- configplex:/config
|
|
||||||
- torrents:/torrents
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
- VERSION=latest
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.services.plex-seedbox.loadbalancer.server.port=32400"
|
|
||||||
- "traefik.http.routers.plex.rule=Host(`plex.${TRAEFIK_DOMAIN}`)"
|
|
||||||
|
|
||||||
flaresolverr:
|
|
||||||
image: ghcr.io/flaresolverr/flaresolverr
|
|
||||||
container_name: flaresolverr
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- CAPTCHA_SOLVER=hcaptcha-solver
|
|
||||||
|
|
||||||
jackett:
|
|
||||||
image: ghcr.io/linuxserver/jackett
|
|
||||||
container_name: jackett
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- config:/config
|
|
||||||
- torrents:/downloads
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
- 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"
|
|
||||||
|
|
||||||
sonarr:
|
|
||||||
image: ghcr.io/linuxserver/sonarr:preview
|
|
||||||
container_name: sonarr
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- configsonarr:/config
|
|
||||||
- torrents:/torrents
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.sonarr.rule=Host(`sonarr.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.sonarr.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
radarr:
|
|
||||||
image: ghcr.io/linuxserver/radarr:develop
|
|
||||||
container_name: radarr
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- configradarr:/config
|
|
||||||
- torrents:/torrents
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.radarr.rule=Host(`radarr.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.radarr.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
bazarr:
|
|
||||||
image: ghcr.io/linuxserver/bazarr
|
|
||||||
container_name: bazarr
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- torrents:/torrents
|
|
||||||
- configbazarr:/config
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.bazarr.rule=Host(`bazarr.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.bazarr.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
lidarr:
|
|
||||||
image: ghcr.io/linuxserver/lidarr:preview
|
|
||||||
container_name: lidarr
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- configlidarr:/config
|
|
||||||
- torrents:/torrents
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.lidarr.rule=Host(`lidarr.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.lidarr.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
tautulli:
|
|
||||||
image: ghcr.io/linuxserver/tautulli
|
|
||||||
container_name: tautulli
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- configtautulli:/config
|
|
||||||
- config:/logs:ro # Inside of tautulli, bind to logs via "/logs/Plex Media Server/Logs"
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.tautulli.rule=Host(`tautulli.${TRAEFIK_DOMAIN}`)"
|
|
||||||
|
|
||||||
jdownloader:
|
|
||||||
image: jlesage/jdownloader-2
|
|
||||||
container_name: jdownloader
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- configjdownloader:/config
|
|
||||||
- downloads:/output
|
|
||||||
environment:
|
|
||||||
- USER_ID=${PUID}
|
|
||||||
- GROUP_ID=${PGID}
|
|
||||||
- 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"
|
|
||||||
|
|
||||||
tdarr:
|
|
||||||
image: haveagitgat/tdarr
|
|
||||||
container_name: tdarr
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
volumes:
|
|
||||||
- torrents:/home/Tdarr/Media
|
|
||||||
- configtdarr:/home/Tdarr/Documents/Tdarr
|
|
||||||
- tdarrdb:/var/lib/mongodb
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.services.tdarr-seedbox.loadbalancer.server.port=8265"
|
|
||||||
- "traefik.http.routers.tdarr.rule=Host(`tdarr.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.tdarr.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
nextcloud-db:
|
|
||||||
image: mariadb:10
|
|
||||||
container_name: nextcloud-db
|
|
||||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
|
||||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
|
||||||
- MYSQL_USER=${MYSQL_USER}
|
|
||||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
||||||
- TZ=${TZ}
|
|
||||||
volumes:
|
|
||||||
- nextclouddb:/var/lib/mysql
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=false"
|
|
||||||
|
|
||||||
# See tools/init-setup-nextcloud.sh for first install
|
|
||||||
nextcloud:
|
|
||||||
depends_on:
|
|
||||||
- nextcloud-db
|
|
||||||
image: linuxserver/nextcloud
|
|
||||||
container_name: nextcloud
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- PGID=${PGID}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
volumes:
|
|
||||||
- confignextcloud:/config
|
|
||||||
- nextclouddata:/data
|
|
||||||
- torrents:/torrents
|
|
||||||
- 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"
|
|
||||||
|
|
||||||
portainer:
|
|
||||||
image: portainer/portainer-ce
|
|
||||||
container_name: portainer
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/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"
|
|
||||||
|
|
||||||
netdata:
|
|
||||||
image: netdata/netdata
|
|
||||||
restart: always
|
|
||||||
container_name: netdata
|
|
||||||
hostname: netdata.${TRAEFIK_DOMAIN}
|
|
||||||
environment:
|
|
||||||
PGID: 999
|
|
||||||
cap_add:
|
|
||||||
- SYS_PTRACE
|
|
||||||
security_opt:
|
|
||||||
- apparmor:unconfined
|
|
||||||
volumes:
|
|
||||||
- /proc:/host/proc:ro
|
|
||||||
- /sys:/host/sys:ro
|
|
||||||
- /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
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.netdata.rule=Host(`netdata.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.netdata.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
duplicati:
|
|
||||||
image: ghcr.io/linuxserver/duplicati
|
|
||||||
container_name: duplicati
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
volumes:
|
|
||||||
- configduplicati:/config
|
|
||||||
- backups:/backups
|
|
||||||
- alldata:/source
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.duplicati.rule=Host(`duplicati.${TRAEFIK_DOMAIN}`)"
|
|
||||||
- "traefik.http.routers.duplicati.middlewares=common-auth@file"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
external:
|
|
||||||
name: "traefik-network"
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
alldata:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data
|
|
||||||
config:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config
|
|
||||||
configtraefik:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/traefik
|
|
||||||
configplex:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/Plex
|
|
||||||
configsonarr:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/sonarr
|
|
||||||
configradarr:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/radarr
|
|
||||||
configbazarr:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/bazarr
|
|
||||||
configlidarr:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/lidarr
|
|
||||||
configdeluge:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/deluge
|
|
||||||
configtautulli:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/tautulli
|
|
||||||
configjdownloader:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/jdownloader
|
|
||||||
configtdarr:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/tdarr
|
|
||||||
tdarrdb:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/tdarr-db
|
|
||||||
nextclouddb:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/nextcloud-db
|
|
||||||
confignextcloud:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/nextcloud
|
|
||||||
nextclouddata:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/nextcloud-data
|
|
||||||
torrents:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/torrents
|
|
||||||
downloads:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/torrents/deluge
|
|
||||||
configduplicati:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/config/duplicati
|
|
||||||
backups:
|
|
||||||
driver: local-persist
|
|
||||||
driver_opts:
|
|
||||||
mountpoint: /data/backups
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
services:
|
||||||
|
bazarr:
|
||||||
|
image: ghcr.io/linuxserver/bazarr
|
||||||
|
container_name: bazarr
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- torrents:/torrents
|
||||||
|
- configbazarr:/config
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.bazarr.rule=Host(`bazarr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.bazarr.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configbazarr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/bazarr
|
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
deluge:
|
||||||
|
image: ghcr.io/linuxserver/deluge
|
||||||
|
container_name: deluge
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- torrents:/torrents
|
||||||
|
- configdeluge:/config
|
||||||
|
- downloads:/downloads
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.deluge.rule=Host(`deluge.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.deluge.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configdeluge:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/deluge
|
|
@ -0,0 +1,31 @@
|
||||||
|
services:
|
||||||
|
duplicati:
|
||||||
|
image: ghcr.io/linuxserver/duplicati
|
||||||
|
container_name: duplicati
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- PUID=${PUID}
|
||||||
|
- PGID=${PGID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
volumes:
|
||||||
|
- configduplicati:/config
|
||||||
|
- backups:/backups
|
||||||
|
- alldata:/source
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.duplicati.rule=Host(`duplicati.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.duplicati.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
alldata:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data
|
||||||
|
configduplicati:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/duplicati
|
||||||
|
backups:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/backups
|
|
@ -0,0 +1,7 @@
|
||||||
|
services:
|
||||||
|
flaresolverr:
|
||||||
|
image: ghcr.io/flaresolverr/flaresolverr
|
||||||
|
container_name: flaresolverr
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- CAPTCHA_SOLVER=hcaptcha-solver
|
|
@ -0,0 +1,18 @@
|
||||||
|
services:
|
||||||
|
jackett:
|
||||||
|
image: ghcr.io/linuxserver/jackett
|
||||||
|
container_name: jackett
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- config:/config
|
||||||
|
- torrents:/downloads
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- 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"
|
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
jdownloader:
|
||||||
|
image: jlesage/jdownloader-2
|
||||||
|
container_name: jdownloader
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- configjdownloader:/config
|
||||||
|
- downloads:/output
|
||||||
|
environment:
|
||||||
|
- USER_ID=${PUID}
|
||||||
|
- GROUP_ID=${PGID}
|
||||||
|
- 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:
|
||||||
|
configjdownloader:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/jdownloader
|
|
@ -0,0 +1,22 @@
|
||||||
|
services:
|
||||||
|
lidarr:
|
||||||
|
image: ghcr.io/linuxserver/lidarr:preview
|
||||||
|
container_name: lidarr
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configlidarr:/config
|
||||||
|
- torrents:/torrents
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.lidarr.rule=Host(`lidarr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.lidarr.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configlidarr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/lidarr
|
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
netdata:
|
||||||
|
image: netdata/netdata
|
||||||
|
restart: always
|
||||||
|
container_name: netdata
|
||||||
|
hostname: netdata.${TRAEFIK_DOMAIN}
|
||||||
|
environment:
|
||||||
|
PGID: 999
|
||||||
|
cap_add:
|
||||||
|
- SYS_PTRACE
|
||||||
|
security_opt:
|
||||||
|
- apparmor:unconfined
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /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
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.netdata.rule=Host(`netdata.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.netdata.middlewares=common-auth@file"
|
|
@ -0,0 +1,52 @@
|
||||||
|
services:
|
||||||
|
nextcloud-db:
|
||||||
|
image: mariadb:10
|
||||||
|
container_name: nextcloud-db
|
||||||
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
|
- TZ=${TZ}
|
||||||
|
volumes:
|
||||||
|
- nextclouddb:/var/lib/mysql
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=false"
|
||||||
|
|
||||||
|
# See tools/init-setup-nextcloud.sh for first install
|
||||||
|
nextcloud:
|
||||||
|
depends_on:
|
||||||
|
- nextcloud-db
|
||||||
|
image: linuxserver/nextcloud
|
||||||
|
container_name: nextcloud
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
volumes:
|
||||||
|
- confignextcloud:/config
|
||||||
|
- nextclouddata:/data
|
||||||
|
- torrents:/torrents
|
||||||
|
- 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:
|
||||||
|
nextclouddb:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/nextcloud-db
|
||||||
|
confignextcloud:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/nextcloud
|
||||||
|
nextclouddata:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/nextcloud-data
|
|
@ -0,0 +1,30 @@
|
||||||
|
services:
|
||||||
|
plex:
|
||||||
|
image: ghcr.io/linuxserver/plex
|
||||||
|
container_name: plex
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "32400:32400"
|
||||||
|
- "32400:32400/udp"
|
||||||
|
- "32469:32469"
|
||||||
|
- "32469:32469/udp"
|
||||||
|
- "5353:5353/udp"
|
||||||
|
- "1900:1900/udp"
|
||||||
|
volumes:
|
||||||
|
- configplex:/config
|
||||||
|
- torrents:/torrents
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
- 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:
|
||||||
|
configplex:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/Plex
|
|
@ -0,0 +1,12 @@
|
||||||
|
services:
|
||||||
|
portainer:
|
||||||
|
image: portainer/portainer-ce
|
||||||
|
container_name: portainer
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/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"
|
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
radarr:
|
||||||
|
image: ghcr.io/linuxserver/radarr:develop
|
||||||
|
container_name: radarr
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configradarr:/config
|
||||||
|
- torrents:/torrents
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.radarr.rule=Host(`radarr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.radarr.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configradarr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/radarr
|
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
sonarr:
|
||||||
|
image: ghcr.io/linuxserver/sonarr:preview
|
||||||
|
container_name: sonarr
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configsonarr:/config
|
||||||
|
- torrents:/torrents
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.sonarr.rule=Host(`sonarr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.sonarr.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configsonarr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/sonarr
|
|
@ -0,0 +1,21 @@
|
||||||
|
services:
|
||||||
|
tautulli:
|
||||||
|
image: ghcr.io/linuxserver/tautulli
|
||||||
|
container_name: tautulli
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- configtautulli:/config
|
||||||
|
- config:/logs:ro # Inside of tautulli, bind to logs via "/logs/Plex Media Server/Logs"
|
||||||
|
environment:
|
||||||
|
- PGID=${PGID}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.tautulli.rule=Host(`tautulli.${TRAEFIK_DOMAIN}`)"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configtautulli:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/tautulli
|
|
@ -0,0 +1,28 @@
|
||||||
|
services:
|
||||||
|
tdarr:
|
||||||
|
image: haveagitgat/tdarr:1.3003
|
||||||
|
container_name: tdarr
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- PUID=${PUID}
|
||||||
|
- PGID=${PGID}
|
||||||
|
- TZ=${TZ}
|
||||||
|
volumes:
|
||||||
|
- torrents:/home/Tdarr/Media
|
||||||
|
- configtdarr:/home/Tdarr/Documents/Tdarr
|
||||||
|
- tdarrdb:/var/lib/mongodb
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.tdarr-seedbox.loadbalancer.server.port=8265"
|
||||||
|
- "traefik.http.routers.tdarr.rule=Host(`tdarr.${TRAEFIK_DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.tdarr.middlewares=common-auth@file"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
configtdarr:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/tdarr
|
||||||
|
tdarrdb:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/tdarr-db
|
|
@ -0,0 +1,30 @@
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
image: traefik
|
||||||
|
container_name: traefik
|
||||||
|
restart: always
|
||||||
|
command:
|
||||||
|
- --certificatesresolvers.le.acme.email=${ACME_MAIL}
|
||||||
|
- --pilot.token=${PILOT_TOKEN}
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- ./traefik:/etc/traefik:ro
|
||||||
|
- configtraefik:/config
|
||||||
|
environment:
|
||||||
|
- TRAEFIK_DOMAIN=${TRAEFIK_DOMAIN}
|
||||||
|
- 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:
|
||||||
|
configtraefik:
|
||||||
|
driver: local-persist
|
||||||
|
driver_opts:
|
||||||
|
mountpoint: /data/config/traefik
|
|
@ -4,10 +4,14 @@
|
||||||
source .env
|
source .env
|
||||||
echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth
|
echo "${HTTP_USER}:${HTTP_PASSWORD}" > traefik/http_auth
|
||||||
|
|
||||||
|
# Fetch all YAML files
|
||||||
|
SERVICES=$(find services2 -name "*.yaml" -mindepth 1 -maxdepth 1 | sed -e 's/^/-f /')
|
||||||
|
ALL_SERVICES="-f docker-compose.yaml $SERVICES"
|
||||||
|
|
||||||
echo "[$0] ***** Pulling all images... *****"
|
echo "[$0] ***** Pulling all images... *****"
|
||||||
docker-compose pull
|
docker-compose ${ALL_SERVICES} pull
|
||||||
echo "[$0] ***** Recreating containers if required... *****"
|
echo "[$0] ***** Recreating containers if required... *****"
|
||||||
docker-compose up -d --remove-orphans
|
docker-compose ${ALL_SERVICES} up -d --remove-orphans
|
||||||
echo "[$0] ***** Done updating containers *****"
|
echo "[$0] ***** Done updating containers *****"
|
||||||
echo "[$0] ***** Clean unused images... *****"
|
echo "[$0] ***** Clean unused images... *****"
|
||||||
docker image prune -af
|
docker image prune -af
|
||||||
|
|
Loading…
Reference in New Issue