media-server-docker-compose/docker-compose.yml

385 lines
11 KiB
YAML
Raw Normal View History

2024-04-06 22:52:47 -04:00
services:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
2024-04-18 21:35:33 -04:00
- "443:443"
2024-04-06 22:52:47 -04:00
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
2024-04-19 11:43:48 -04:00
- ./nginx/certs:/etc/nginx/certs
- ./nginx/html:/usr/share/nginx/html
- ./nginx/vhost.d:/etc/nginx/vhost.d
2024-04-08 02:02:04 -04:00
- ./client_max_body_size.conf:/etc/nginx/conf.d/client_max_body_size.conf:ro
2024-04-19 11:43:48 -04:00
nginx-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nginx-letsencrypt
restart: always
volumes_from:
- nginx-proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- DEFAULT_EMAIL=${EMAIL}
2024-04-18 21:35:33 -04:00
redis:
image: redis:alpine
container_name: redis-dbcache
restart: unless-stopped
2024-04-19 23:33:50 -04:00
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
# Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
hostname: mail.${DOMAIN}
# env_file:
# - .env
# - .env.mail
environment:
- PUID=${UID}
- PGID=${GID}
- VIRTUAL_HOST=mail.${DOMAIN}
- ENABLE_RSPAMD=1
- ENABLE_CLAMAV=1
- ENABLE_FAIL2BAN=1
- ONE_DIR=1
cap_add:
- NET_ADMIN # For Fail2Ban to work
# More information about the mail-server ports:
# https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
# To avoid conflicts with yaml base-60 float, DO NOT remove the quotation marks.
ports:
- "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead)
- "143:143" # IMAP4 (explicit TLS => STARTTLS)
- "465:465" # ESMTP (implicit TLS)
- "587:587" # ESMTP (explicit TLS => STARTTLS)
- "993:993" # IMAP4 (implicit TLS)
expose:
- "25"
- "143"
- "465"
- "587"
- "993"
volumes:
- ./mail/data/:/var/mail/
- ./mail/state/:/var/mail-state/
- ./mail/logs/:/var/log/mail/
- ${CONFIG_LOCATION}/mail:/tmp/docker-mailserver/
- /etc/localtime:/etc/localtime:ro
restart: always
stop_grace_period: 1m
# Uncomment if using `ENABLE_FAIL2BAN=1`:
# cap_add:
# - NET_ADMIN
healthcheck:
test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1"
timeout: 3s
retries: 0
2024-04-19 11:43:48 -04:00
homarr:
container_name: homarr
image: ghcr.io/ajnart/homarr:latest
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration
- ${CONFIG_LOCATION}/homarr:/app/data/configs
- ${DATA_LOCATION}/homarr/icons:/app/public/icons
- ${DATA_LOCATION}/homarr:/data
environment:
- VIRTUAL_HOST=homarr.${DOMAIN}, ${DOMAIN}, www.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST="homarr.${DOMAIN}, ${DOMAIN}, www.${DOMAIN}"
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-19 11:43:48 -04:00
expose:
- "7575"
ports:
- '7575:7575'
dashdot:
image: mauricenino/dashdot
container_name: dashdot
restart: unless-stopped
privileged: true
environment:
- VIRTUAL_HOST=dash.${DOMAIN}
- DASHDOT_ENABLE_CPU_TEMPS=true
- DASHDOT_FS_DEVICE_FILTER=sda,sdb,sdc,sdd,sde,sdf
- DASHDOT_FS_VIRTUAL_MOUNTS=tank/storage/media, psb29404@psb29404.seedbox.io:/files
expose:
- "3001"
ports:
- 3001:3001
volumes:
- /:/mnt/host:ro
2024-04-07 01:10:14 -04:00
plex:
2024-04-18 19:20:48 -04:00
image: plexinc/pms-docker:latest
2024-04-07 01:10:14 -04:00
container_name: plex
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-07 02:18:03 -04:00
- VIRTUAL_HOST=plex.${DOMAIN}
2024-04-07 01:10:14 -04:00
- VERSION=docker
- PLEX_CLAIM=${PLEX_CLAIM}
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/plex:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/TV:/tv
- ${DATA_LOCATION}/Movies:/movies
2024-04-07 01:10:14 -04:00
expose:
- "32400"
ports:
- 32400:32400
restart: unless-stopped
2024-04-18 19:20:48 -04:00
tautulli:
image: lscr.io/linuxserver/tautulli:latest
container_name: tautulli
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- VIRTUAL_HOST=tautulli.${DOMAIN},plex-stats.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=tautulli.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-18 19:20:48 -04:00
volumes:
- ${CONFIG_LOCATION}/tautulli:/config
ports:
- 8181:8181
restart: unless-stopped
2024-04-06 22:52:47 -04:00
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-08 02:02:04 -04:00
- VIRTUAL_HOST=radarr.${DOMAIN},radar.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=radarr.${DOMAIN},radar.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-06 22:52:47 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/radarr:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Movies:/movies
2024-04-06 22:52:47 -04:00
- /media/seedbox:/downloads
expose:
2024-04-07 00:37:31 -04:00
- "7878"
2024-04-06 22:52:47 -04:00
ports:
2024-04-07 00:37:31 -04:00
- 7878:7878
2024-04-06 22:52:47 -04:00
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-08 02:02:04 -04:00
- VIRTUAL_HOST=sonarr.${DOMAIN},sonar.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=sonarr.${DOMAIN},sonar.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-06 22:52:47 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/sonarr:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/TV:/tv
2024-04-06 22:52:47 -04:00
- /media/seedbox:/downloads
expose:
2024-04-07 00:37:31 -04:00
- "8989"
2024-04-06 22:52:47 -04:00
ports:
2024-04-07 00:37:31 -04:00
- 8989:8989
2024-04-06 22:52:47 -04:00
restart: unless-stopped
2024-04-07 00:37:31 -04:00
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-07 02:15:21 -04:00
- VIRTUAL_HOST=prowlarr.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=prowlarr.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-07 00:37:31 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/prowlarr:/config
2024-04-07 00:37:31 -04:00
expose:
- "9696"
ports:
- 9696:9696
restart: unless-stopped
2024-04-07 01:10:14 -04:00
overseerr:
image: lscr.io/linuxserver/overseerr:latest
container_name: overseerr
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-08 02:02:04 -04:00
- VIRTUAL_HOST=overseerr.${DOMAIN},overseer.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=overseerr.${DOMAIN},overseer.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-07 01:10:14 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/overseerr:/config
2024-04-07 01:10:14 -04:00
expose:
- "5055"
ports:
- 5055:5055
restart: unless-stopped
2024-04-07 02:12:37 -04:00
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
environment:
2024-04-19 14:21:10 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-08 02:02:04 -04:00
- VIRTUAL_HOST=lidarr.${DOMAIN},lidar.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=lidarr.${DOMAIN},lidar.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-07 02:12:37 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/lidarr:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Music:/music
2024-04-07 02:12:37 -04:00
- /media/seedbox:/downloads
expose:
- "8686"
ports:
- 8686:8686
restart: unless-stopped
2024-04-07 01:10:14 -04:00
mylar3:
image: lscr.io/linuxserver/mylar3:latest
container_name: mylar3
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-08 02:02:04 -04:00
- VIRTUAL_HOST=mylar.${DOMAIN},mylar3.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=mylar.${DOMAIN},mylar3.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-07 01:10:14 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/mylar3:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Comics:/comics
2024-04-07 01:10:14 -04:00
- /media/seedbox:/downloads
ports:
- 8090:8090
restart: unless-stopped
2024-04-07 02:12:37 -04:00
ubooquity:
image: lscr.io/linuxserver/ubooquity:latest
container_name: ubooquity
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-07 02:15:21 -04:00
- VIRTUAL_HOST=ubooquity.${DOMAIN}
2024-04-18 22:39:11 -04:00
- VIRTUAL_PORT=2202
2024-04-07 02:12:37 -04:00
# - MAXMEM= #optional
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/ubooquity:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Books:/books
- ${DATA_LOCATION}/Comics:/comics
2024-04-07 02:12:37 -04:00
# - /path/to/raw/files:/files
expose:
- "2202"
- "2203"
ports:
2024-04-08 02:02:04 -04:00
- 2202:2202 #:2202/ubooquity
2024-04-07 02:12:37 -04:00
- 2203:2203 #:2203/ubooquity/admin
restart: unless-stopped
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
ports:
- 13378:80
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/audiobookshelf:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Audiobooks:/audiobooks
2024-04-07 02:12:37 -04:00
# - </path/to/podcasts>:/podcasts
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Audiobooks/metadata:/metadata
2024-04-07 02:12:37 -04:00
environment:
2024-04-18 21:35:33 -04:00
- TZ=${TZ}
2024-04-07 02:15:21 -04:00
- VIRTUAL_HOST=audiobookshelf.${DOMAIN}
2024-04-07 02:12:37 -04:00
readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: readarr
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-08 02:02:04 -04:00
- VIRTUAL_HOST=readarr.${DOMAIN},readar.${DOMAIN}
2024-04-19 14:21:10 -04:00
- LETSENCRYPT_HOST=readarr.${DOMAIN},readar.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-07 02:12:37 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/readarr:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Books:/books
2024-04-07 02:12:37 -04:00
- /media/seedbox:/downloads
expose:
- "8787"
ports:
- 8787:8787
restart: unless-stopped
2024-04-19 22:37:20 -04:00
readarraudio:
2024-04-07 02:12:37 -04:00
image: lscr.io/linuxserver/readarr:develop
2024-04-19 22:37:20 -04:00
container_name: readarraudio
2024-04-07 02:12:37 -04:00
environment:
2024-04-07 02:17:39 -04:00
- PUID=${UID}
- PGID=${GID}
2024-04-07 02:21:43 -04:00
- TZ=${TZ}
2024-04-19 22:37:20 -04:00
- VIRTUAL_HOST=readarraudio.${DOMAIN},readaraudio.${DOMAIN}
- LETSENCRYPT_HOST=readarraudio.${DOMAIN},readaraudio.${DOMAIN}
- LETSENCRYPT_EMAIL=${EMAIL}
2024-04-07 02:12:37 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/readarr-audio:/config
2024-04-17 10:34:39 -04:00
- ${DATA_LOCATION}/Audiobooks:/audiobooks
2024-04-07 02:12:37 -04:00
- /media/seedbox:/downloads
restart: unless-stopped
2024-04-18 21:35:33 -04:00
wordpress-botc:
depends_on:
- db
image: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: ${DBPASS}
WORDPRESS_DB_NAME: clocktower
VIRTUAL_HOST: "botc.${DOMAIN}, *.phillybotc.com"
2024-04-19 14:21:10 -04:00
LETSENCRYPT_HOST: "botc.${DOMAIN}, *.phillybotc.com"
LETSENCRYPT_EMAIL: ${EMAIL}
2024-04-18 21:35:33 -04:00
volumes:
- wordpress-botc:/var/www/html
2024-04-19 11:43:48 -04:00
# wordpress-home:
# depends_on:
# - db
# image: wordpress
# restart: always
# environment:
# WORDPRESS_DB_HOST: db
# WORDPRESS_DB_USER: root
# WORDPRESS_DB_PASSWORD: ${DBPASS}
# WORDPRESS_DB_NAME: homepage
# VIRTUAL_HOST: "${DOMAIN}, www.${DOMAIN}"
# LETSENCRYPT_HOST: "www.brodin.rocks"
# LETSENCRYPT_EMAIL: "bjageman@gmail.com"
# volumes:
# - wordpress-home:/var/www/html
2024-04-18 21:35:33 -04:00
db:
2024-04-08 02:02:04 -04:00
image: mysql:latest
restart: always
environment:
2024-04-18 21:35:33 -04:00
MYSQL_ROOT_PASSWORD: ${DBPASS}
2024-04-08 02:02:04 -04:00
volumes:
2024-04-18 21:35:33 -04:00
- db:/var/lib/mysql
- ./docker/provision/mysql/init:/docker-entrypoint-initdb.d
2024-04-10 13:43:42 -04:00
#Nextcloud
2024-04-16 23:03:11 -04:00
nextcloud:
2024-04-18 21:35:33 -04:00
depends_on:
- db
2024-04-16 23:03:11 -04:00
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
2024-04-10 13:43:42 -04:00
environment:
2024-04-18 21:35:33 -04:00
PUID: "1000"
PGID: "1000"
TZ: "${TZ}"
VIRTUAL_HOST: "nextcloud.${DOMAIN}"
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: root
MYSQL_PASSWORD: ${DBPASS}
2024-04-19 14:21:10 -04:00
REDIS_HOST: redis
LETSENCRYPT_HOST: nextcloud.${DOMAIN}
LETSENCRYPT_EMAIL: ${EMAIL}
# LETSENCRYPT_TEST: true
2024-04-10 13:43:42 -04:00
volumes:
2024-04-17 11:42:29 -04:00
- ${CONFIG_LOCATION}/nextcloud:/config
2024-04-17 11:30:11 -04:00
- ${DATA_LOCATION}/Cloud/Nextcloud:/data
2024-04-16 23:03:11 -04:00
restart: unless-stopped
2024-04-08 02:02:04 -04:00
volumes:
2024-04-19 11:43:48 -04:00
# wordpress-home:
2024-04-08 02:02:04 -04:00
wordpress-botc:
2024-04-18 21:35:33 -04:00
db: