Permalink
Switch branches/tags
Nothing to show
Find file Copy path
9f61acb Aug 8, 2018
1 contributor

Users who have contributed to this file

436 lines (404 sloc) 11.1 KB
#Reference: https://www.smarthomebeginner.com/docker-home-media-server-2018-basic
#Requirement: Set environmental variables: USERDIR, PUID, PGID, MYSQL_ROOT_PASSWORD, and TZ as explained in the reference.
version: "3.6"
services:
######### FRONTENDS ##########
#Portainer - WebUI for Containers
portainer:
image: portainer/portainer
hostname: portainer
container_name: portainer
restart: always
command: -H unix:///var/run/docker.sock
ports:
- "XXXX:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${USERDIR}/docker/portainer/data:/data
- ${USERDIR}/docker/shared:/shared
environment:
- TZ=${TZ}
# Organizer - Unified HTPC/Home Server Web Interface
organizr:
container_name: organizr
hostname: organizr
restart: always
image: lsiocommunity/organizr
volumes:
- ${USERDIR}/docker/organizr:/config
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:80"
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# WebUI for MariaDB
phpmyadmin:
hostname: phpmyadmin
container_name: phpmyadmin
image: phpmyadmin/phpmyadmin
restart: always
links:
- mariadb:db
ports:
- XXXX:80
environment:
- PMA_HOST=mariadb
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
######### DOCKER RELATED ##########
# Watchtower - Automatic Update of Containers/Apps
watchtower:
container_name: watchtower
hostname: watchtower
restart: always
image: v2tec/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --schedule "0 0 4 * * *" --cleanup
######### SMART HOME APPS ##########
# Home Assistant - Smart Home Hub
homeassistant:
container_name: homeassistant
hostname: hass
restart: always
image: homeassistant/home-assistant
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
- /dev/ttyUSB1:/dev/ttyUSB1
- /dev/ttyACM0:/dev/ttyACM0
volumes:
- ${USERDIR}/docker/homeassistant:/config
- /etc/localtime:/etc/localtime:ro
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:8123"
privileged: true
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### DOWNLOADERS ##########
# Transmission with VPN – Bittorrent Downloader
transmission-vpn:
container_name: transmission-vpn
hostname: transmission
image: haugene/transmission-openvpn
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
restart: always
ports:
- "XXXX:9091"
dns:
- 1.1.1.1
- 1.0.0.1
volumes:
- /etc/localtime:/etc/localtime:ro
- ${USERDIR}/docker/transmission-vpn:/data
- ${USERDIR}/docker/shared:/shared
- ${USERDIR}/Downloads:/data/watch
- ${USERDIR}/Downloads/completed:/data/completed
- ${USERDIR}/Downloads/incomplete:/data/incomplete
environment:
- OPENVPN_PROVIDER=IPVANISH
- OPENVPN_USERNAME=ipvanish_username
- OPENVPN_PASSWORD=ipvanish_password
- OPENVPN_CONFIG="YYYYYYYYYYY"
- OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60
- LOCAL_NETWORK=192.168.1.0/24
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true
- TRANSMISSION_RPC_HOST_WHITELIST="127.0.0.1,192.168.*.*"
- TRANSMISSION_RPC_PASSWORD=${TRANSMISSION_RPC_PASSWORD}
- TRANSMISSION_RPC_USERNAME=${TRANSMISSION_RPC_USERNAME}
- TRANSMISSION_UMASK=002
- TRANSMISSION_RATIO_LIMIT=0.01
- TRANSMISSION_RATIO_LIMIT_ENABLED=true
- TRANSMISSION_ALT_SPEED_DOWN=2000
- TRANSMISSION_ALT_SPEED_ENABLED=true
- TRANSMISSION_ALT_SPEED_UP=15
- TRANSMISSION_SPEED_LIMIT_DOWN=6000
- TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED=true
- TRANSMISSION_SPEED_LIMIT_UP=30
- TRANSMISSION_SPEED_LIMIT_UP_ENABLED=true
- TRANSMISSION_INCOMPLETE_DIR=/downloads/incomplete
- TRANSMISSION_INCOMPLETE_DIR_ENABLED=true
- TRANSMISSION_WATCH_DIR=/downloads
- TRANSMISSION_WATCH_DIR_ENABLED=true
- TRANSMISSION_DOWNLOAD_DIR=/downloads/completed
# qBittorrent without VPN – Bittorrent Downloader (Alternative)
qbittorrent:
image: "linuxserver/qbittorrent"
hostname: qbittorrent
container_name: "qbittorrent"
volumes:
- ${USERDIR}/docker/qbittorrent:/config
- ${USERDIR}/Downloads/completed:/downloads
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:XXXX"
- "6881:6881"
- "6881:6881/udp"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- UMASK_SET=002
- WEBUI_PORT=XXXX
# SABnzbd – Usenet (NZB) Downloader
sabnzbd:
image: "linuxserver/sabnzbd"
hostname: sabnzbd
container_name: "sabnzbd"
volumes:
- ${USERDIR}/docker/sabnzbd:/config
- ${USERDIR}/Downloads/completed:/downloads
- ${USERDIR}/Downloads/incomplete:/incomplete-downloads
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:8080"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# NZBGet – Usenet (NZB) Downloader (Alternative)
nzbget:
image: "linuxserver/nzbget"
hostname: nzbget
container_name: "nzbget"
volumes:
- ${USERDIR}/docker/sabnzbd:/config
- ${USERDIR}/Downloads:/downloads
- ${USERDIR}/Downloads/incomplete:/incomplete-downloads
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:6789"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### PERSONAL VIDEO RECORDERS ##########
# Radarr – Movie Download and Management
radarr:
image: "linuxserver/radarr"
hostname: radarr
container_name: "radarr"
volumes:
- ${USERDIR}/docker/radarr:/config
- ${USERDIR}/Downloads/completed:/downloads
- ${USERDIR}/media/movies:/movies
- "/etc/localtime:/etc/localtime:ro"
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:7878"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# CouchPotato – Movie Download and Management (Alternative)
couchpotato:
image: "linuxserver/couchpotato"
hostname: couchpotato
container_name: "couchpotato"
volumes:
- ${USERDIR}/docker/couchpotato:/config
- ${USERDIR}/Downloads/completed:/downloads
- ${USERDIR}/media/movies:/movies
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:5050"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK_SET=002
- TZ=${TZ}
# Sonarr – TV Show Download and Management
sonarr:
image: "linuxserver/sonarr"
hostname: sonarr
container_name: "sonarr"
volumes:
- ${USERDIR}/docker/sonarr:/config
- ${USERDIR}/Downloads/completed:/downloads
- ${USERDIR}/media/tvshows:/tv
- "/etc/localtime:/etc/localtime:ro"
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:8989"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
#LIDARR - Music Download and Management
lidarr:
image: "linuxserver/lidarr"
hostname: lidarr
container_name: "lidarr"
volumes:
- ${USERDIR}/docker/lidarr:/config
- ${USERDIR}/Downloads:/downloads
- ${USERDIR}/media/music:/music
- "/etc/localtime:/etc/localtime:ro"
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:8686"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# SickRage – TV Show Download and Management (Alternative)
sickrage:
image: "linuxserver/sickrage"
hostname: sickrage
container_name: "sickrage"
volumes:
- ${USERDIR}/docker/sickrage:/config
- ${USERDIR}/Downloads/completed:/downloads
- ${USERDIR}/media/tvshows:/tv
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:8081"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### MEDIA SERVER APPS ##########
# Plex Media Server
plexms:
container_name: plexms
hostname: plexms
restart: always
image: plexinc/pms-docker
volumes:
- ${USERDIR}/docker/plexms:/config
- ${USERDIR}/Downloads/plex_tmp:/transcode
- /media/media:/media
- ${USERDIR}/docker/shared:/shared
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=${TZ}
- HOSTNAME="Docker Plex"
- PLEX_CLAIM="claim-YYYYYYYYY"
- PLEX_UID=${PUID}
- PLEX_GID=${PGID}
- ADVERTISE_IP="http://SERVER-IP:32400/"
# Tautulli (aka PlexPy) – Monitoring Plex Usage
tautulli:
container_name: tautulli
hostname: tautulli
restart: always
image: linuxserver/tautulli
volumes:
- ${USERDIR}/docker/tautulli/config:/config
- ${USERDIR}/docker/tautulli/logs:/logs:ro
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:8181"
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# Ombi – Accept Requests for your Media Server
ombi:
container_name: ombi
hostname: ombi
restart: always
image: linuxserver/ombi
volumes:
- ${USERDIR}/docker/ombi:/config
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:3579"
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### SEARCHERS ##########
# NZBHydra – NZB Meta Search
hydra:
image: "linuxserver/hydra"
hostname: hydra
container_name: "hydra"
volumes:
- ${USERDIR}/docker/hydra:/config
- ${USERDIR}/Downloads:/downloads
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:5075"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# Jackett – Torrent Proxy
jackett:
image: "linuxserver/jackett"
hostname: jackett
container_name: "jackett"
volumes:
- ${USERDIR}/docker/jackett:/config
- ${USERDIR}/Downloads/completed:/downloads
- "/etc/localtime:/etc/localtime:ro"
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:9117"
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### UTILITIES ##########
# MariaDB – Database Server for your Apps
mariadb:
image: "linuxserver/mariadb"
container_name: "mariadb"
hostname: mariadb
volumes:
- ${USERDIR}/docker/mariadb:/config
ports:
- target: 3306
published: 3306
protocol: tcp
mode: host
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# NextCloud – Your Own Cloud Storage
nextcloud:
container_name: nextcloud
hostname: nextcloud
restart: always
image: linuxserver/nextcloud
volumes:
- ${USERDIR}/docker/nextcloud:/config
- ${USERDIR}/shared_data:/data
- ${USERDIR}/docker/shared:/shared
ports:
- "XXXX:443"
environment:
- PUID=${PUID}
- PGID=${PGID}