-
-
Save sudo-battlekafer/95852818f3e6b20adda13c0056d32a2f to your computer and use it in GitHub Desktop.
docker-compose for various
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Your timezone, https://en.wikipedia.org/wiki/List_of_tz_database_time_zones | |
TZ=America/Chicago | |
# UNIX PUID and PGID, find with: id $USER | |
PUID=1001 | |
PGID=1001 | |
# The directory where data and configuration will be stored Example /docker or /data. | |
ROOT=/data | |
# CONTAINER STUFF | |
#PLEX | |
#get claim code at https://www.plex.tv/claim/ | |
PLEX_CLAIM_CODE=claim-111111111111111111 | |
PLEX_URL=https://plex.DNS.FQDN:443 | |
PLEXHOSTNAME=plex.DNS.FQDN | |
TRANSMISSIONHOSTNAME=transmission.DNS.FQDN | |
REQUESTHOSTNAME=overseerr.DNS.FQDN | |
RADARRHOSTNAME=radarr.DNS.FQDN | |
SONARRHOSTNAME=sonarr.DNS.FQDN | |
BAZARRHOSTNAME=bazarr.DNS.FQDN | |
NZBHOSTNAME=nzb.DNS.FQDN | |
KUMAHOSTNAME=kuma.DNS.FQDN | |
LIDARRHOSTNAME=lidarr.DNS.FQDN | |
#OPENVPN | |
# provider list and options | |
# https://haugene.github.io/docker-transmission-openvpn/ | |
TRANSVPN_PROVIDER=NORDVPN | |
TRANSVPN_USERNAME=ffjklsdfjkldsjfkldsjfklsdjf | |
TRANSVPN_PASSWORD=fjkdlfjdklsfjkldsjfkldsjfkl | |
NORD_COUNTRY=PO | |
NORD_CATEGORY=P2P | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.4" | |
services: | |
# for PC minecraft | |
minecraft-java: | |
image: itzg/minecraft-server | |
ports: | |
- 25565:25565 | |
volumes: | |
- ${ROOT}/config/minecraft-java:/data | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- SERVER_NAME="mytest" | |
- SERVER_MODE="creative" | |
- EULA="TRUE" | |
restart: always | |
# for mobile/console minecraft | |
minecraft-bedrock: | |
image: itzg/minecraft-bedrock-server | |
ports: | |
- 19132:19132/udp | |
volumes: | |
- ${ROOT}/config/minecraft-bedrock:/data | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- SERVER_NAME="mytest" | |
- SERVER_MODE="creative" | |
- EULA="TRUE" | |
restart: always |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.4" | |
services: | |
plex: | |
image: plexinc/pms-docker:latest | |
container_name: plex | |
environment: | |
- TZ=${TZ} # timezone, defined in .env | |
# # get claim at https://www.plex.tv/claim/ | |
- PLEX_CLAIM=${PLEX_CLAIM_CODE} # defined in .env | |
- ADVERTISE_IP=${PLEX_URL} # defined in .env | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- VERSION=docker | |
volumes: | |
- ${ROOT}/config/plex/config:/config | |
- ${ROOT}/transcode:/transcode #trancode mount directory | |
- ${ROOT}/media/movies:/data/movies # movies folder | |
- ${ROOT}/media/tvshows:/data/tv # tv shows folder | |
- ${ROOT}/media/anime:/data/anime # tv shows folder | |
- ${ROOT}/media/music:/music # music folder | |
hostname: ${PLEXHOSTNAME} # defined in .env | |
ports: | |
- 32400:32400/tcp | |
- 32400:32400/udp | |
- 3005:3005/tcp | |
- 8324:8324/tcp | |
- 32469:32469/tcp | |
- 1900:1900/udp | |
- 32410:32410/udp | |
- 32412:32412/udp | |
- 32413:32413/udp | |
- 32414:32414/udp | |
restart: unless-stopped | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.plex.rule=Host(`${PLEXHOSTNAME}`)" | |
- "traefik.http.routers.plex.entrypoints=websecure" | |
- "traefik.http.routers.plex.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.plex.loadbalancer.server.port=32400" | |
# tv series management | |
sonarr: | |
container_name: sonarr | |
image: ghcr.io/linuxserver/sonarr:latest | |
restart: unless-stopped | |
network_mode: host | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
volumes: | |
- /etc/localtime:/etc/localtime:ro | |
- ${ROOT}/config/sonarr:/config # config files | |
- ${ROOT}/media/tvshows:/tv # tv shows folder | |
- ${ROOT}/downloads:/downloads # download folder | |
- ${ROOT}/media/anime:/anime # anime shows folder | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.sonarr.rule=Host(`${SONARRHOSTNAME}`)" | |
- "traefik.http.routers.sonarr.entrypoints=websecure" | |
- "traefik.http.routers.sonarr.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.sonarr.loadbalancer.server.port=8989" | |
# movie management | |
radarr: | |
container_name: radarr | |
image: ghcr.io/linuxserver/radarr:latest | |
restart: unless-stopped | |
network_mode: host | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
volumes: | |
- /etc/localtime:/etc/localtime:ro | |
- ${ROOT}/config/radarr:/config # config files | |
- ${ROOT}/media/movies:/movies # movies folder | |
- ${ROOT}/downloads:/downloads # download folder | |
- ${ROOT}/media/anime:/anime # anime shows folder | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.radarr.rule=Host(`${RADARRHOSTNAME}`)" | |
- "traefik.http.routers.radarr.entrypoints=websecure" | |
- "traefik.http.routers.radarr.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.radarr.loadbalancer.server.port=7878" | |
# subtitle management | |
bazarr: | |
container_name: bazarr | |
image: ghcr.io/linuxserver/bazarr:latest | |
restart: unless-stopped | |
network_mode: host | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
volumes: | |
- ${ROOT}/config/bazarr:/config # config files | |
- ${ROOT}/media/movies:/movies # movies folder | |
- ${ROOT}/media/tvshows:/tv # tv shows folder | |
- ${ROOT}/media/anime:/anime # anime shows folder | |
# ports: | |
# - 6767:6767 | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.bazarr.rule=Host(`${BAZARRHOSTNAME} | |
- "traefik.http.routers.bazarr.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.bazarr.loadbalancer.server.port=6767" | |
# music mgmt | |
lidarr: | |
image: lscr.io/linuxserver/lidarr | |
container_name: lidarr | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
volumes: | |
- /etc/localtime:/etc/localtime:ro | |
- ${ROOT}/config/lidarr:/config # config files | |
- ${ROOT}/media/music:/music # music root folder | |
- ${ROOT}/downloads:/downloads # download folder | |
ports: | |
- 8686:8686 | |
restart: unless-stopped | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.lidarr.rule=Host(`${LIDARRHOSTNAME}`)" | |
- "traefik.http.routers.lidarr.entrypoints=websecure" | |
- "traefik.http.routers.lidarr.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.lidarr.loadbalancer.server.port=8686" | |
# openvpn torrent client | |
transmission: | |
cap_add: | |
- NET_ADMIN | |
volumes: | |
- '${ROOT}/downloads:/downloads' | |
- '${ROOT}/config/transmission/transmission-home:/data/transmission-home' | |
# combustion UI dark mode | |
# download at: https://github.com/SebDanielsson/dark-combustion | |
- '${ROOT}/config/transmission/main.77f9cffc.css:/opt/transmission-ui/combustion-release/main.77f9cffc.css' | |
restart: unless-stopped | |
container_name: transmission | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
# provider list and options | |
# https://haugene.github.io/docker-transmission-openvpn/ | |
- OPENVPN_PROVIDER=${TRANSVPN_PROVIDER} # defined in .env | |
# - OPENVPN_CONFIG=romania | |
- OPENVPN_USERNAME=${TRANSVPN_USERNAME} # defined in .env | |
- OPENVPN_PASSWORD=${TRANSVPN_PASSWORD} # defined in .env | |
- NORDVPN_COUNTRY=${NORD_COUNTRY} # defined in .env | |
- NORDVPN_CATEGORY=${NORD_CATEGORY} # defined in .env | |
# optional use of combustion UI | |
- TRANSMISSION_WEB_UI=combustion | |
- TRANSMISSION_DOWNLOAD_DIR=/downloads/completed | |
- TRANSMISSION_INCOMPLETE_DIR=/downloads/incomplete | |
- TRANSMISSION_WATCH_DIR=/downloads/torrents | |
- LOCAL_NETWORK=10.11.0.0/16 | |
- DISABLE_PORT_UPDATER=true | |
- OVERRIDE_DNS_1=1.1.1.1 | |
- OVERRIDE_DNS_2=1.0.0.1 | |
logging: | |
driver: json-file | |
options: | |
max-size: 10m | |
ports: | |
- '9091:9091' | |
image: haugene/transmission-openvpn | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.transmission.rule=Host(`${TRANSMISSIONHOSTNAME}`)" | |
- "traefik.http.routers.transmission.entrypoints=websecure" | |
- "traefik.http.routers.transmission.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.transmission.loadbalancer.server.port=9091" | |
nzbget: | |
container_name: nzbget | |
image: ghcr.io/linuxserver/nzbget:latest | |
restart: unless-stopped | |
network_mode: host | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
volumes: | |
- ${ROOT}/downloads:/downloads # download folder | |
- ${ROOT}/config/nzbget:/config # config files | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.nzb.rule=Host(`${NZBHOSTNAME}`)" | |
- "traefik.http.routers.nzb.entrypoints=websecure" | |
- "traefik.http.routers.nzb.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.nzb.loadbalancer.server.port=6789" | |
uptime-kuma: | |
image: louislam/uptime-kuma | |
container_name: uptime-kuma | |
volumes: | |
- ${ROOT}/config/uptime-kuma:/app/data | |
ports: | |
- 3001:3001 | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.uptime-kuma.rule=Host(`${KUMAHOSTNAME}`)" | |
- "traefik.http.routers.uptime-kuma.entrypoints=websecure" | |
- "traefik.http.routers.uptime-kuma.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.uptime-kuma.loadbalancer.server.port=9696" | |
# not routed through traefik | |
smtp: | |
image: namshi/smtp | |
container_name: smtp_relay | |
restart: always | |
ports: | |
- "25:25" | |
environment: | |
# change this to your subnets (ex: :192.168.10/24) | |
# must include the : | |
- RELAY_NETWORKS=:10.11.2.0/24:10.11.3.0/24 | |
# this can be used with other providers, I just chose gmail | |
# # To act as a Gmail relay | |
- GMAIL_USER=<gmail user, no domain> | |
- GMAIL_PASSWORD=<gmail password> | |
# # set this to any value to disable ipv6 | |
- DISABLE_IPV6=true | |
# indexer mgmt | |
prowlarr: | |
image: ghcr.io/linuxserver/prowlarr:develop | |
container_name: prowlarr | |
environment: | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
volumes: | |
- ${ROOT}/config/prowlarr:/config | |
ports: | |
- 9696:9696 | |
restart: unless-stopped | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.prowlarr.rule=Host(`${PROWLARRHOSTNAME}`)" | |
- "traefik.http.routers.prowlarr.entrypoints=websecure" | |
- "traefik.http.routers.prowlarr.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.prowlarr.loadbalancer.server.port=9696" | |
# to keep the images updated | |
# no web interface, not routed through traefik | |
watchtower: | |
container_name: watchtower | |
image: containrrr/watchtower | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock:ro | |
ports: | |
- 8082:8080 | |
command: --interval 10 --http-api-metrics --http-api-token demotoken --debug radarr sonarr prowlarr nzbget trannsmission bazarr nzbhydra2 uptime-kuma | |
overseerr: | |
image: lscr.io/linuxserver/overseerr | |
container_name: overseerr | |
environment: | |
- LOG_LEVEL=debug | |
- PUID=${PUID} # default user id, defined in .env | |
- PGID=${PGID} # default group id, defined in .env | |
- TZ=${TZ} # timezone, defined in .env | |
ports: | |
- 5055:5055 | |
volumes: | |
- ${ROOT}/config/overseer:/config | |
restart: unless-stopped | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.overseerr.rule=Host(`${REQUESTHOSTNAME}`)" | |
- "traefik.http.routers.overseerr.entrypoints=websecure" | |
- "traefik.http.routers.overseerr.tls.certresolver=mydnschallenge" | |
- "traefik.http.services.overseerr.loadbalancer.server.port=5055" | |
traefik: | |
restart: always | |
image: traefik | |
container_name: traefik | |
read_only: true | |
ports: | |
- "80:80" | |
- "443:443" | |
# - "8080:8080" # traefik wed interface - optional | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock:ro | |
- ${ROOT}/config/traefik/traefik.yaml:/traefik.yaml:ro | |
# - ${ROOT}/config/traefik/data/traefik.yaml:/traefik.yaml:ro | |
- ${ROOT}/config/traefik/etc/traefik:/etc/traefik/ | |
- ${ROOT}/config/traefik/log:/var/log/traefik/ | |
- ${ROOT}/config/traefik/config.yml:/config.yml:ro | |
# - ${ROOT}/config/traefik/data/acme.json:/acme.json |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment