Created
August 16, 2020 10:26
-
-
Save peavers/6a364ddd64097f71f1e189529a6904f4 to your computer and use it in GitHub Desktop.
docker-compose file for media server
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" | |
services: | |
# https://hub.docker.com/_/traefik | |
traefik: | |
container_name: traefik | |
image: traefik:v2.2 | |
restart: unless-stopped | |
command: | |
- --api | |
- --providers.docker | |
- --entrypoints.web.address=:80 | |
- --entrypoints.web.http.redirections.entryPoint.to=websecure | |
- --entrypoints.web.http.redirections.entryPoint.scheme=https | |
- --entrypoints.web.http.redirections.entrypoint.permanent=true | |
- --entrypoints.websecure.address=:443 | |
- --certificatesresolvers.leresolver.acme.caserver=https://acme-v02.api.letsencrypt.org/directory | |
- --certificatesresolvers.leresolver.acme.email=${EMAIL} | |
- --certificatesresolvers.leresolver.acme.storage=/acme.json | |
- --certificatesresolvers.leresolver.acme.tlschallenge=true | |
ports: | |
- 80:80 | |
- 443:443 | |
- 8080:8080 | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
- ${USERDIR}/traefik/acme.json:/acme.json | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
# https://hub.docker.com/r/linuxserver/bazarr/ | |
bazarr: | |
container_name: bazarr | |
image: linuxserver/bazarr:latest | |
restart: unless-stopped | |
ports: | |
- 6767:6767 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/bazerr:/config | |
- ${MEDIA}/tv:/tv | |
- ${MEDIA}/movies:/movies | |
depends_on: | |
- traefik | |
- nzbget | |
- hydra | |
- jackett | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.bazarr.rule=Host(`${DOMAIN}`) && PathPrefix(`/bazarr`)" | |
- "traefik.http.routers.bazarr.tls=true" | |
# https://hub.docker.com/r/linuxserver/sonarr/ | |
sonarr: | |
container_name: sonarr | |
image: linuxserver/sonarr:preview | |
restart: unless-stopped | |
ports: | |
- 8989:8989 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/sonarr:/config | |
- ${DOWNLOADS}:/downloads | |
- ${MEDIA}:/tv | |
depends_on: | |
- traefik | |
- nzbget | |
- hydra | |
- jackett | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.sonarr.rule=Host(`${DOMAIN}`) && PathPrefix(`/sonarr`)" | |
- "traefik.http.routers.sonarr.tls=true" | |
# https://hub.docker.com/r/linuxserver/radarr/ | |
radarr: | |
container_name: radarr | |
image: linuxserver/radarr:preview | |
restart: unless-stopped | |
ports: | |
- 7878:7878 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/radarr:/config | |
- ${DOWNLOADS}:/downloads | |
- ${MEDIA}:/movies | |
depends_on: | |
- traefik | |
- nzbget | |
- hydra | |
- jackett | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.radarr.rule=Host(`${DOMAIN}`) && PathPrefix(`/radarr`)" | |
- "traefik.http.routers.radarr.tls=true" | |
# https://hub.docker.com/r/linuxserver/lidarr/ | |
lidarr: | |
container_name: lidarr | |
image: linuxserver/lidarr:latest | |
restart: unless-stopped | |
ports: | |
- 8686:8686 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/lidarr:/config | |
- ${DOWNLOADS}:/downloads | |
- ${MEDIA}/music:/music | |
depends_on: | |
- traefik | |
- nzbget | |
- hydra | |
- jackett | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.lidarr.rule=Host(`${DOMAIN}`) && PathPrefix(`/lidarr`)" | |
- "traefik.http.routers.lidarr.tls=true" | |
# https://hub.docker.com/r/linuxserver/hydra2/ | |
hydra: | |
container_name: hydra | |
image: linuxserver/nzbhydra2:latest | |
restart: unless-stopped | |
ports: | |
- 5076:5076 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/hydra:/config | |
- ${DOWNLOADS}:/downloads | |
depends_on: | |
- traefik | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.hydra.rule=Host(`${DOMAIN}`) && PathPrefix(`/hydra`)" | |
- "traefik.http.routers.hydra.tls=true" | |
# https://hub.docker.com/r/linuxserver/hydra2/ | |
jackett: | |
container_name: jackett | |
image: linuxserver/jackett:latest | |
restart: unless-stopped | |
ports: | |
- 9117:9117 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/jackett:/config | |
- ${DOWNLOADS}/jackett:/downloads | |
depends_on: | |
- traefik | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.jackett.rule=Host(`${DOMAIN}`) && PathPrefix(`/jackett`)" | |
- "traefik.http.routers.jackett.tls=true" | |
# https://hub.docker.com/r/linuxserver/nzbget/ | |
nzbget: | |
container_name: nzbget | |
image: linuxserver/nzbget:latest | |
restart: unless-stopped | |
ports: | |
- 6789:6789 | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
volumes: | |
- ${USERDIR}/nzbget:/config | |
- ${DOWNLOADS}:/downloads | |
depends_on: | |
- traefik | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.nzbget.rule=Host(`${DOMAIN}`) && PathPrefix(`/nzbget`)" | |
- "traefik.http.routers.nzbget.tls=true" | |
# https://github.com/xataz/docker-rtorrent-rutorrent | |
rutorrent: | |
image: linuxserver/rutorrent:latest | |
container_name: rutorrent | |
restart: unless-stopped | |
ports: | |
- 8888:80 | |
- 6881:6881 | |
- 6881:6881/udp | |
- 127.0.0.1:5000:5000 | |
- 51413:51413 | |
environment: | |
- PGID=${PGID} | |
- PUID=${PUID} | |
- DHT_RTORRENT=on | |
- PORT_RTORRENT=6881 | |
volumes: | |
- ${USERDIR}/rutorrent:/config | |
- ${DOWNLOADS}/rutorrent:/downloads | |
depends_on: | |
- traefik | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- "traefik.http.routers.rutorrent.rule=Host(`${DOMAIN}`) && PathPrefix(`/rutorrent`)" | |
- "traefik.http.routers.rutorrent.tls=true" | |
# https://hub.docker.com/r/linuxserver/plex/ | |
plex: | |
container_name: plex | |
image: linuxserver/plex:latest | |
restart: unless-stopped | |
network_mode: host | |
environment: | |
- TZ=${TZ} | |
- PGID=${PGID} | |
- PUID=${PUID} | |
- VERSION=latest | |
volumes: | |
- ${USERDIR}/plex:/config | |
- ${MEDIA}/tv:/data/tvshows | |
- ${MEDIA}/movies:/data/movies | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- traefik.enable=false | |
# https://containrrr.github.io/watchtower/ | |
watchtower: | |
container_name: watchtower | |
image: containrrr/watchtower:latest | |
restart: unless-stopped | |
command: --interval 30 | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- traefik.enable=false | |
# https://hub.docker.com/r/sjmayotte/route53-dynamic-dns/ | |
amazon-dns-server: | |
container_name: amazon-dns-server | |
image: sjmayotte/route53-dynamic-dns:latest | |
restart: unless-stopped | |
environment: | |
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} | |
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} | |
- AWS_REGION=${AWS_REGION} | |
- ROUTE53_HOSTED_ZONE_ID=${ROUTE53_HOSTED_ZONE_ID} | |
- ROUTE53_DOMAIN=${DOMAIN} | |
- ROUTE53_TYPE=A | |
- ROUTE53_TTL=60 | |
- SEND_EMAIL_SES=false | |
- UPDATE_FREQUENCY=60000 | |
- IPCHECKER=ifconfig.co | |
logging: | |
options: | |
max-size: "2m" | |
max-file: "5" | |
labels: | |
- traefik.enable=false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment