Skip to content

Instantly share code, notes, and snippets.

@ProteinPig
Last active October 10, 2022 10:50
Show Gist options
  • Save ProteinPig/31806d8ffb4a3029bfdc0e81d10d7c0a to your computer and use it in GitHub Desktop.
Save ProteinPig/31806d8ffb4a3029bfdc0e81d10d7c0a to your computer and use it in GitHub Desktop.
基于Docker的家庭服务器
#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: "2.4"
services:
######### FRONTENDS ##########
# Portainer - WebUI for Containers
portainer:
image: portainer/portainer
container_name: portainer
hostname: portainer
restart: always
command: -H unix:///var/run/docker.sock
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${USERDIR}/docker/portainer/data:/data
- ${USERDIR}/docker/shared:/shared
environment:
- TZ=${TZ}
# Muximux - Unified HTPC/Home Server Web Interface
muximux:
image: linuxserver/muximux
container_name: muximux
hostname: muximux
restart: always
ports:
- 80:80
volumes:
- ${USERDIR}/docker/muximux:/config
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# Organizer - Unified HTPC/Home Server Web Interface
# organizr:
# image: organizrtools/organizr-v2
# container_name: organizr2
# hostname: organizr2
# restart: always
# ports:
# - 9080:80
# volumes:
# - ${USERDIR}/docker/organizr2:/config
# - ${USERDIR}/docker/shared:/shared
# environment:
# - PUID=${PUID}
# - PGID=${PGID}
# - TZ=${TZ}
######### DOCKER RELATED ##########
# Watchtower - Automatic Update of Containers
watchtower:
image: v2tec/watchtower
container_name: watchtower
hostname: watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --schedule "0 0 4 * * *" --cleanup
######### SMART HOME APPS ##########
# Home Assistant - Smart Home Hub
# homeassistant:
# image: homeassistant/home-assistant
# container_name: homeassistant
# hostname: hass
# restart: always
# privileged: true
# ports:
# - 8123:8123
# devices:
# - /dev/ttyUSB0:/dev/ttyUSB0
# - /dev/ttyUSB1:/dev/ttyUSB1
# - /dev/ttyACM0:/dev/ttyACM0
# volumes:
# - ${USERDIR}/docker/homeassistant:/config
# - ${USERDIR}/docker/shared:/shared
# environment:
# - PUID=${PUID}
# - PGID=${PGID}
# - TZ=${TZ}
######### DOWNLOADERS ##########
# Deluge – Bittorrent Downloader
# deluge:
# image: linuxserver/deluge
# container_name: deluge
# hostname: deluge
# restart: always
# network_mode: host
# volumes:
# - ${USERDIR}/docker/deluge:/config
# - ${USERDIR}/Storage/Downloads:/downloads
# - ${USERDIR}/docker/shared:/shared
# environment:
# - PUID=${PUID}
# - PGID=${PGID}
# - TZ=${TZ}
# qBittorrent – Bittorrent Downloader
# qbittorrent:
# image: linuxserver/qbittorrent
# container_name: qbittorrent
# hostname: qbittorrent
# restart: always
# ports:
# - 8113:8113
# - 6881:6881
# - 6881:6881/udp
# volumes:
# - ${USERDIR}/docker/qbittorrent:/config
# - ${USERDIR}/Storage/Downloads:/downloads
# - ${USERDIR}/docker/shared:/shared
# environment:
# - PUID=${PUID}
# - PGID=${PGID}
# - TZ=${TZ}
# - WEBUI_PORT=8113
# Transmission – Bittorrent Downloader
transmission:
image: linuxserver/transmission
container_name: transmission
hostname: transmission
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
volumes:
- ${USERDIR}/docker/transmission:/config
- ${USERDIR}/Storage/Downloads:/downloads
- ${USERDIR}/Storage/Downloads/Watch:/watch
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# Aria2 – Downloader
aria2:
image: abcminiuser/docker-aria2-with-webui:latest-ng
container_name: aria2
hostname: aria2
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
ports:
- 6800:6800
- 6880:80
volumes:
- ${USERDIR}/docker/aria2:/conf
- ${USERDIR}/Storage/Downloads:/data
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### PERSONAL VIDEO RECORDERS ##########
# Radarr – Movie Download and Management
radarr:
image: linuxserver/radarr
container_name: radarr
hostname: radarr
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
ports:
- 7878:7878
volumes:
- ${USERDIR}/docker/radarr:/config
- ${USERDIR}/Storage/Downloads:/downloads
- ${USERDIR}/Storage/Media/Movies:/movies
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# RRShare – TV Download and Management
rrshare:
image: auska/docker-rrshareweb
container_name: rrshare
hostname: rrshare
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
ports:
- 3001:3001
- 6714:6714
- 30210:30210
volumes:
- ${USERDIR}/docker/rrshare:/rrshare
- ${USERDIR}/Storage/Downloads/YYETS:/opt/work/store
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# Sonarr – TV Show Download and Management
sonarr:
image: linuxserver/sonarr
container_name: sonarr
hostname: sonarr
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
ports:
- 8989:8989
volumes:
- ${USERDIR}/docker/sonarr:/config
- ${USERDIR}/Storage/Downloads:/downloads
- ${USERDIR}/Storage/Media/TVShows:/tv
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
#LIDARR - Music Download and Management
lidarr:
image: linuxserver/lidarr
container_name: lidarr
hostname: lidarr
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
ports:
- 8686:8686
volumes:
- ${USERDIR}/docker/lidarr:/config
- ${USERDIR}/Storage/Downloads:/downloads
- ${USERDIR}/Storage/Media/Music:/music
- ${USERDIR}/docker/shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### MEDIA SERVER APPS ##########
# Emby Media Server
emby:
image: emby/embyserver
container_name: emby
hostname: emby
restart: always
volumes:
- ${USERDIR}/docker/emby:/config
- ${USERDIR}/Storage/Media:/mnt/share1
- ${USERDIR}/docker/shared:/shared
ports:
- 8096:8096
- 8920:8920
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
# Logitech Media Server
lms:
image: apnar/logitech-media-server
container_name: lms
hostname: lms
restart: always
volumes:
- ${USERDIR}/docker/lms:/srv/squeezebox
- ${USERDIR}/Storage/Media/Music:/srv/music
- ${USERDIR}/docker/shared:/shared
ports:
- 9002:9000
- 9090:9090
- 3483:3483
- 3483:3483/udp
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### SEARCHERS ##########
# Jackett – Torrent Proxy
jackett:
image: linuxserver/jackett
container_name: jackett
hostname: jackett
restart: always
# cpus: 1.2 根据CPU核心数设置,4核的话为1.2/4=30%
volumes:
- ${USERDIR}/docker/jackett:/config
- ${USERDIR}/Storage/Downloads:/downloads
- ${USERDIR}/docker/shared:/shared
ports:
- 9117:9117
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
######### UTILITIES ##########
# WebUI for MariaDB
# phpmyadmin:
# image: phpmyadmin/phpmyadmin
# container_name: phpmyadmin
# hostname: phpmyadmin
# restart: always
# ports:
# - 8080:80
# links:
# - mariadb:db
# environment:
# - PMA_HOST=mariadb
# - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
# MariaDB – Database Server for your Apps
# mariadb:
# image: linuxserver/mariadb
# container_name: mariadb
# hostname: mariadb
# restart: always
# ports:
# - 3306:3306
# volumes:
# - ${USERDIR}/docker/mariadb:/config
# environment:
# - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
# - PUID=${PUID}
# - PGID=${PGID}
# - TZ=${TZ}
# NextCloud – Your Own Cloud Storage
# nextcloud:
# image: linuxserver/nextcloud
# container_name: nextcloud
# hostname: nextcloud
# restart: always
# ports:
# - 443:443
# volumes:
# - ${USERDIR}/docker/nextcloud:/config
# - ${USERDIR}/Cloud_Data:/data
# - ${USERDIR}/docker/shared:/shared
# environment:
# - PUID=${PUID}
# - PGID=${PGID}
# - TZ=${TZ}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment