Update and rename docker-compose.yml to advanced-compose.yml
This commit is contained in:
parent
e96eff59a4
commit
622945eda3
1 changed files with 3 additions and 1 deletions
377
advanced-compose.yml
Normal file
377
advanced-compose.yml
Normal file
|
|
@ -0,0 +1,377 @@
|
|||
# Welcome to my Ultimate Plex Stack!
|
||||
#
|
||||
# Make sure to rename this file to "docker-compose.yaml" if you are using git clone
|
||||
#
|
||||
# I was hoping this could maybe help some people out when setting up their stack
|
||||
#
|
||||
# Environment Variable Examples:
|
||||
# PUID = 99
|
||||
# GUID = 101
|
||||
# TZ = America/Edmonton
|
||||
# BASE_PATH = /home/username/docker
|
||||
#
|
||||
# https://trash-guides.info/Hardlinks/Hardlinks-and-Instant-Moves/ # This can be useful for establishing how the media will be presented below
|
||||
# MEDIA_SHARE = /mnt/media # This can also be renamed to "SHARE" or "MEDIA" this is where you will present your media
|
||||
#
|
||||
# NOTE: This is not a plug and play solution, some research / customization will be required to make this work as intented
|
||||
# Feel free to customize ie: remove/change/add containers as needed - one size does not fit all
|
||||
|
||||
---
|
||||
version: "3.0"
|
||||
|
||||
networks: #This is used if you have a reverse proxy. I use Nginx Proxy Manager but anything will do
|
||||
proxy: #You can remove this block if you are not planning to use a vpn
|
||||
external:
|
||||
name: proxy
|
||||
|
||||
services:
|
||||
#Plex - used to display the media
|
||||
#
|
||||
#This can also be replaced by Emby/Jellyfin
|
||||
plex:
|
||||
image: lscr.io/linuxserver/plex:latest
|
||||
container_name: plex
|
||||
network_mode: host
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
- VERSION=docker
|
||||
- PLEX_CLAIM=${PLEX_CLAIM}
|
||||
ports:
|
||||
- 32400:32400
|
||||
devices:
|
||||
- /dev/dri:/dev/dri #Required for plex HW transcoding / QuickSync
|
||||
volumes:
|
||||
- ${BASE_PATH}/plex/config:/config
|
||||
- ${MEDIA_SHARE}/media/tv:/tv
|
||||
- ${MEDIA_SHARE}/media/movies:/movies
|
||||
restart: unless-stopped
|
||||
|
||||
#Radarr - used to find movies automatically
|
||||
radarr:
|
||||
image: lscr.io/linuxserver/radarr:latest
|
||||
container_name: radarr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/radarr/config:/config
|
||||
- ${MEDIA_SHARE}:/share #Access to the entire share
|
||||
#networks: #Does not connect to overseer if you use NPM
|
||||
# - proxy
|
||||
ports:
|
||||
- 7878:7878
|
||||
restart: unless-stopped
|
||||
|
||||
#Sonarr - used to find tv shows automatically
|
||||
sonarr:
|
||||
image: lscr.io/linuxserver/sonarr:latest
|
||||
container_name: sonarr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/sonarr/config:/config
|
||||
- ${MEDIA_SHARE}:/share #Access to the entire share
|
||||
#networks: #Does not connect to overseer if you use NPM
|
||||
# - proxy
|
||||
ports:
|
||||
- 8989:8989
|
||||
restart: unless-stopped
|
||||
|
||||
#Readarr - Used to download books
|
||||
readarr:
|
||||
image: lscr.io/linuxserver/readarr:develop
|
||||
container_name: readarr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/readarr/config:/config
|
||||
- ${MEDIA_SHARE}:/share
|
||||
|
||||
ports:
|
||||
- 8787:8787
|
||||
restart: unless-stopped
|
||||
|
||||
#Lidarr - Used to download music
|
||||
lidarr:
|
||||
image: lscr.io/linuxserver/lidarr:latest
|
||||
container_name: lidarr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/lidarr/config:/config
|
||||
- ${MEDIA_SHARE}:/share
|
||||
ports:
|
||||
- 8686:8686
|
||||
restart: unless-stopped
|
||||
|
||||
#Prowlarr - manages your Sonarr, Radarr and download client
|
||||
prowlarr:
|
||||
image: lscr.io/linuxserver/prowlarr:latest
|
||||
container_name: prowlarr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/prowlarr/config:/config
|
||||
#networks:
|
||||
# - proxy
|
||||
ports:
|
||||
- 9696:9696
|
||||
restart: unless-stopped
|
||||
|
||||
#Autobrr - used to grab torrents using the trackers IRC channel - Increases seeding due to grabbing content before RSS feed
|
||||
autobrr:
|
||||
container_name: autobrr
|
||||
image: ghcr.io/autobrr/autobrr:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
volumes:
|
||||
- ${BASE_PATH}/autobrr/config:/config
|
||||
ports:
|
||||
- 7474:7474
|
||||
|
||||
#Overseer - allows users to request media on their own
|
||||
overseerr:
|
||||
image: lscr.io/linuxserver/overseerr:latest
|
||||
container_name: overseerr
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/overseer/config:/config
|
||||
- ${MEDIA_SHARE}:/share #Access to the entire share
|
||||
#networks:
|
||||
# - proxy
|
||||
ports:
|
||||
- 5055:5055
|
||||
restart: unless-stopped
|
||||
|
||||
#Flaresolerr - Used as a proxy server to bypass Cloudflare and DDoS-GUARD protection.
|
||||
flaresolverr:
|
||||
# DockerHub mirror flaresolverr/flaresolverr:latest
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
environment:
|
||||
- LOG_LEVEL=info
|
||||
- LOG_HTML=false
|
||||
- CAPTCHA_SOLVER=none
|
||||
- TZ=${TZ}
|
||||
ports:
|
||||
- 8191:8191
|
||||
restart: unless-stopped
|
||||
|
||||
#Qbittorent - torrenting software
|
||||
#
|
||||
#You can also use RuTorrent, Transmisson or Deluge
|
||||
qbittorrent:
|
||||
image: lscr.io/linuxserver/qbittorrent:latest
|
||||
container_name: qbittorrent
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
- WEBUI_PORT=8080
|
||||
- TORRENTING_PORT=8694 #Make sure to port forward this port in your router so you can seed more effectively
|
||||
volumes:
|
||||
- ${BASE_PATH}/qbittorent/config:/config
|
||||
- ${MEDIA_SHARE}:/share
|
||||
restart: unless-stopped
|
||||
|
||||
#Tautulli - for plex statistics. Very useful when troubleshooting performance issues
|
||||
tautulli:
|
||||
image: lscr.io/linuxserver/tautulli:latest
|
||||
container_name: tautulli
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/tautulli:/config
|
||||
networks:
|
||||
- proxy
|
||||
ports:
|
||||
- 8181:8181
|
||||
restart: unless-stopped
|
||||
|
||||
#Tdarr - to transcode videos from one format to another like x265 or H.265
|
||||
#
|
||||
#This container requires a decent amount of horse power to run but will save space in the long run
|
||||
tdarr:
|
||||
container_name: tdarr
|
||||
image: ghcr.io/haveagitgat/tdarr:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8265:8265 # webUI port
|
||||
- 8266:8266 # server port
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
- UMASK_SET=002
|
||||
- nodeName=ServerNode
|
||||
- serverIP=0.0.0.0
|
||||
- serverPort=8266
|
||||
- webUIPort=8265
|
||||
- internalNode=true
|
||||
- inContainer=true
|
||||
- ffmpegVersion=6
|
||||
volumes:
|
||||
- ${BASE_PATH}/tdarr/server:/app/server
|
||||
- ${BASE_PATH}/tdarr/configs:/app/configs
|
||||
- ${BASE_PATH}/tdarr/logs:/app/logs
|
||||
- ${MEDIA_SHARE}:/media
|
||||
- /transcode_cache:/temp
|
||||
devices:
|
||||
- /dev/dri:/dev/dri #Required for HW transcoding / QuickSync
|
||||
|
||||
#Membarr - to invite users via discord
|
||||
#
|
||||
#Can be configured so that when a plex member invites an outside user to a discord channel they are auto invited to plex
|
||||
#
|
||||
#Feel free to remove this container if you want to manually invite everyone yourself
|
||||
membarr:
|
||||
container_name: membarr
|
||||
image: yoruio/membarr:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- token=${MEMBARR_TOKEN}
|
||||
volumes:
|
||||
- ${BASE_PATH}/membarr/config:/app/app/config
|
||||
|
||||
#Bazarr - for subtitles. Try to use SRT format if you can rather than PGS due to performance issues
|
||||
bazarr:
|
||||
container_name: bazarr
|
||||
image: lscr.io/linuxserver/bazarr:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=${GUID}
|
||||
- PGID=${GUID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/bazarr/config:/config
|
||||
- ${MEDIA_SHARE}:/share
|
||||
ports:
|
||||
- 6767:6767
|
||||
|
||||
#Plex Auto Languages - This switchs languages automatically example: watching english show and non english speaks you get subtitle lol
|
||||
plexautolanguages:
|
||||
image: remirigal/plex-auto-languages:latest
|
||||
container_name: plex-auto-languages
|
||||
environment:
|
||||
- PLEX_URL=${PLEX_URL} #This is your local URl example: http://192.168.1.10:32400
|
||||
#To find your plex token go to https://app.plex.tv/, go to your library, click on the 3 dots on the bottom right of one of your tv/movie posters
|
||||
#Then click "View XML" in the bottom right of that popup, look at the URL of the XML window and find your X-Plex-Token= in the URL (at the very end)
|
||||
- PLEX_TOKEN=${PLEX_TOKEN}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${BASE_PATH}/pal/config:/config
|
||||
|
||||
#Cross Seed - used to take torrents from one tracker and seed them on another without leeching first. Increases ratio
|
||||
#
|
||||
#This is fairly advanced but can be removed if you don't think you will need it. Some trackers also don't allow this
|
||||
cross-seed:
|
||||
image: ghcr.io/cross-seed/cross-seed
|
||||
container_name: cross-seed
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${GUID}
|
||||
ports:
|
||||
- "2468:2468" # you'll need this for daemon mode only
|
||||
volumes:
|
||||
- ${BASE_PATH}/cross-seed/config:/config #To configure you have to manually nano the config file
|
||||
- ${BASE_PATH}/qbittorent/config/qBittorrent/BT_backup:/torrents:ro # your torrent clients .torrent cache, can and should be mounted read-only (e.g. qbit: `BT_Backup` | deluge: `state` | transmission: `transmission/torrents` | rtorrent: session dir from `.rtorrent.rc`)
|
||||
- ${MEDIA_SHARE}/cross-seed/current-cross-seeds:/cross-seeds # A place to temp save current cross seed .torrent files
|
||||
#- ${MEDIA_SHARE}/downloads:/data # OPTIONAL!!! this is dataDir path (for data-based matching) - will need to replicate your torrent client's container path (like Arr's do)
|
||||
command: daemon # this enables the search mode, change to daemon to specifically run the daemon
|
||||
|
||||
#Plex Meta Manager - used to create collections in plex. Example: "Most Popular Movies This Week", "Best of horror", etc.
|
||||
plex-meta-manager:
|
||||
image: meisnate12/plex-meta-manager
|
||||
container_name: plex-meta-manager
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
#- PMM_OVERLAYS_ONLY=true #Tells PMM to run overlays only
|
||||
- PMM_CONFIG=/config/config.yml
|
||||
- PMM_RUN=true #Runs PMM Immediately
|
||||
#- PMM_RUN_LIBRARIES=Movies #Tells PMM to process only a library called "Movies"
|
||||
volumes:
|
||||
- ${BASE_PATH}/plex-meta-manager/config:/config
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
#Wizarr - Allows you to create a share link that you can send to users to invite them to your media server
|
||||
wizarr:
|
||||
container_name: wizarr
|
||||
image: ghcr.io/wizarrrr/wizarr:latest
|
||||
ports:
|
||||
- 5690:5690
|
||||
volumes:
|
||||
- ${BASE_PATH}/wizarr/data/database:/data/database
|
||||
|
||||
#Dozzle - Used to easily view logs of any container in real time!
|
||||
dozzle:
|
||||
container_name: dozzle
|
||||
image: amir20/dozzle:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
ports:
|
||||
- 9999:8080
|
||||
|
||||
#Unpacker - Used to unzip zipped files
|
||||
unpackerr:
|
||||
image: golift/unpackerr
|
||||
container_name: unpackerr
|
||||
|
||||
volumes:
|
||||
# You need at least this one volume mapped so Unpackerr can find your files to extract.
|
||||
# Make sure this matches your Starr apps; the folder mount (/downloads or /data) should be identical.
|
||||
- ${MEDIA_SHARE}:/share
|
||||
#- ${BASE_PATH}/unpackerr/config:/config
|
||||
restart: always
|
||||
user: 1000:1000 #Needs to run as 1000
|
||||
# What you see below are defaults for this compose. You only need to modify things specific to your environment.
|
||||
# Remove apps and feature configs you do not use or need.
|
||||
# ie. Remove all lines that begin with UN_CMDHOOK, UN_WEBHOOK, UN_FOLDER, UN_WEBSERVER, and other apps you do not use.
|
||||
environment:
|
||||
- UN_START_DELAY=1m
|
||||
#- UMASK=002
|
||||
- TZ=${TZ}
|
||||
#- UN_DEBUG=true
|
||||
# Sonarr Config
|
||||
- UN_SONARR_0_URL=http://${SERVER_IP}:7878
|
||||
- UN_SONARR_0_API_KEY=${SONARR_KEY}
|
||||
#- UN_SONARR_0_PATHS_0=/share/downloads/tv
|
||||
- UN_SONARR_0_TIMEOUT=10s
|
||||
#- UN_SONARR_0_PATHS_0=/share/downloads/tv
|
||||
# Radarr Config
|
||||
- UN_RADARR_0_URL=http://${SERVER_IP}:8989
|
||||
- UN_RADARR_0_API_KEY=${RADARR_KEY}
|
||||
#- UN_RADARR_0_PATHS_0=/share/downloads/movies
|
||||
- UN_RADARR_0_TIMEOUT=10s
|
||||
#- UN_RADARR_0_PATHS_0=/share/downloads/movies
|
||||
|
||||
# Used to sync Trash Guides config's to radarr and sonarr
|
||||
# Only accessible via command line! No GUI
|
||||
recyclarr:
|
||||
image: ghcr.io/recyclarr/recyclarr
|
||||
container_name: recyclarr
|
||||
user: ${PUID}:${GUID}
|
||||
volumes:
|
||||
- ${BASE_PATH}/recyclarr/config:/config
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue