388 lines
12 KiB
YAML
388 lines
12 KiB
YAML
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:ro
|
|
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: 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: 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}`)"
|
|
|
|
jackett:
|
|
image: linuxserver/jackett
|
|
container_name: jackett
|
|
restart: always
|
|
volumes:
|
|
- config:/config
|
|
- torrents:/downloads
|
|
- /etc/localtime:/etc/localtime:ro
|
|
environment:
|
|
- PGID=${PGID}
|
|
- PUID=${PUID}
|
|
- TZ=${TZ}
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.jackett.rule=Host(`jackett.${TRAEFIK_DOMAIN}`)"
|
|
- "traefik.http.routers.jackett.middlewares=common-auth@file"
|
|
|
|
sonarr:
|
|
image: 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: linuxserver/radarr:nightly
|
|
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: 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: 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: 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"
|
|
|
|
|
|
mkvtoolnix:
|
|
image: jlesage/mkvtoolnix
|
|
container_name: mkvtoolnix
|
|
restart: always
|
|
volumes:
|
|
- configmkvtoolnix:/config
|
|
- torrents:/storage
|
|
environment:
|
|
- USER_ID=${PUID}
|
|
- GROUP_ID=${PGID}
|
|
- TZ=${TZ}
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.services.mkvtoolnix-seedbox.loadbalancer.server.port=5800"
|
|
- "traefik.http.routers.mkvtoolnix.rule=Host(`mkvtoolnix.${TRAEFIK_DOMAIN}`)"
|
|
- "traefik.http.routers.mkvtoolnix.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
|
|
- ./appdata/:/home/Tdarr/Documents/Tdarr
|
|
- ./appdata/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 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
|
|
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}`)"
|
|
|
|
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
|
|
- /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: 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
|
|
configmkvtoolnix:
|
|
driver: local-persist
|
|
driver_opts:
|
|
mountpoint: /data/config/mkvtoolnix
|
|
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
|