Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Ultimate docker-compose setup for home media center
#Reference: https://www.smarthomebeginner.com/docker-home-media-server-2018-basic
version: "3.6"
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
######### FRONTENDS ##########
#Portainer - WebUI for Containers
portainer:
image: portainer/portainer
hostname: portainer
container_name: portainer
restart: unless-stopped
command: -H unix:///var/run/docker.sock
expose:
- 9000
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./docker/portainer/data:/data
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=portainer.${HOST_DOMAIN}
- VIRTUAL_PORT=9000
######### DOCKER RELATED ##########
# Watchtower - Automatic Update of Containers/Apps
watchtower:
container_name: watchtower
hostname: watchtower
restart: unless-stopped
image: v2tec/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --schedule "0 0 4 * * *" --cleanup
######### DOWNLOADERS ##########
# SABnzbd – Usenet (NZB) Downloader
sabnzbd:
image: "linuxserver/sabnzbd"
hostname: sabnzbd
container_name: "sabnzbd"
volumes:
- ./docker/sabnzbd:/config
- ./docker/Downloads/blackhole:/blackhole
- ./docker/Downloads/completed:/downloads
- ./docker/Downloads/incomplete:/incomplete-downloads
ports:
- "8080:8080"
expose:
- 8080
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=sabnzbd.${HOST_DOMAIN}
- VIRTUAL_PORT=8080
# CouchPotato – Movie Download and Management (Alternative)
couchpotato:
image: "linuxserver/couchpotato"
hostname: couchpotato
container_name: "couchpotato"
volumes:
- ./docker/couchpotato:/config
- ./docker/Downloads/blackhole/movies:/blackhole
- ./docker/Downloads/completed/movies:/downloads
- ./NAS/Movies:/movies
ports:
- "5050:5050"
expose:
- 5050
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- UMASK_SET=002
- TZ=America/New_York
- VIRTUAL_HOST=couchpotato.${HOST_DOMAIN}
- VIRTUAL_PORT=5050
# Sonarr – TV Show Download and Management
sonarr:
image: "linuxserver/sonarr"
hostname: sonarr
container_name: "sonarr"
volumes:
- ./docker/sonarr:/config
- ./docker/Downloads/blackhole/tv:/blackhole
- ./docker/Downloads/completed:/downloads
- ./NAS/TV:/tv
- "/etc/localtime:/etc/localtime:ro"
ports:
- "8989:8989"
expose:
- 8989
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=sonarr.${HOST_DOMAIN}
- VIRTUAL_PORT=8989
# Premiumizer -- Generic Downloader
premiumizer:
image: "piejanssens/premiumizer"
hostname: premiumizer
container_name: "premiumizer"
volumes:
- ./docker/premiumizer:/premiumizer/conf
- ./docker/Downloads/blackhole:/blackhole
- ./docker/Downloads/completed:/downloads
- "/etc/localtime:/etc/localtime:ro"
ports:
- "5000:5000"
expose:
- 5000
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=premiumizer.${HOST_DOMAIN}
######### MEDIA SERVER APPS ##########
# Plex Media Server
plexms:
hostname: plexms
restart: unless-stopped
image: plexinc/pms-docker
volumes:
- ./docker/plexms:/config
- ./docker/Downloads/plex_tmp:/transcode
- ./NAS:/media
ports:
- "32400:32400/tcp"
- "3005:3005/tcp"
- "8324:8324/tcp"
- "32469:32469/tcp"
- "1900:1900/udp"
- "32410:32410/udp"
- "32412:32412/udp"
- "32413:32413/udp"
- "32414:32414/udp"
environment:
- TZ=America/New_York
- HOSTNAME="plex"
- PLEX_CLAIM="claim-SPCiGQju7gd8khj2As9i"
- PLEX_UID=1000
- PLEX_GID=1000
- ADVERTISE_IP="http://${HOST_IP}:32400/"
######### SEARCHERS ##########
# NZBHydra2 – NZB Meta Search
hydra:
image: "linuxserver/hydra2"
hostname: hydra
container_name: "hydra"
volumes:
- ./docker/hydra2:/config
- ./docker/Downloads:/downloads
ports:
- "9004:5076"
expose:
- 5076
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=hydra.${HOST_DOMAIN}
- VIRTUAL_PORT=9004
jackett:
image: "linuxserver/jackett"
container_name: "jackett"
volumes:
- ./docker/jackett:/config
- ./Downloads/completed:/downloads
- "/etc/localtime:/etc/localtime:ro"
ports:
- "9117:9117"
restart: always
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=jacket.${HOST_DOMAIN}
- VIRTUAL_PORT=9117
######### KODI ##########
kodi:
image: "linuxserver/kodi-headless"
hostname: kodi
container_name: kodi
restart: unless-stopped
ports:
- "8000:8080"
- "9777:9777"
- "9090:9090"
expose:
- 8080
- 9777
- 9090
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- VIRTUAL_HOST=kodi.${HOST_DOMAIN}
- VIRTUAL_PORT=8080
links:
- kodi-mysql:mysql
volumes:
- ./docker/kodi:/config/.kodi
kodi-mysql:
image: "tutum/mysql:5.6"
ports:
- "3307:3306"
restart: unless-stopped
environment:
on_create_db: kodi_video
mysql_user: kodi
mysql_pass: kodi
#startup_sql: /tmp/mysql-script/startup.sql
volumes:
# - ./config/mysql:/tmp/mysql-script
- ./docker/mysql:/var/lib/mysql
kodi-video-server:
image: "jalle19/xbmc-video-server"
hostname: kodivs
container_name: kodivs
restart: unless-stopped
ports:
- "8081:80"
expose:
- 80
links:
- kodi:kodi
environment:
- VIRTUAL_HOST=kodivs.${HOST_DOMAIN}
- VIRTUAL_PORT=80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment