-
Notifications
You must be signed in to change notification settings - Fork 102
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
189 lines (178 loc) · 5.85 KB
/
docker-compose.yml
File metadata and controls
189 lines (178 loc) · 5.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# 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 # This is where you docker containers will store their data for each application
# MEDIA_SHARE = /home/username/data # This is where your media files will live
#
# https://trash-guides.info/Hardlinks/Hardlinks-and-Instant-Moves/ # This can be useful for establishing how the media will be presented below
#
# NOTE: This is not a plug and play solution, some research / customization will be required to make this work as intended
# Feel free to customize ie: remove/change/add containers as needed - one size does not fit all
---
version: "3.8"
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}:/data #Access to the entire share
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}:/data #Access to the entire share
ports:
- 8989:8989
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
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
seerr:
image: ghcr.io/seerr-team/seerr:latest
init: true
container_name: seerr
environment:
- LOG_LEVEL=debug
- PUID=${PUID}
- PGID=${GUID}
- TZ=${TZ}
- PORT=5055 #optional
volumes:
- ${BASE_PATH}/seer/config:/app/config
- ${MEDIA_SHARE}:/data #Access to the entire share
ports:
- 5055:5055
restart: unless-stopped
qbit-vpn:
image: binhex/arch-qbittorrentvpn:latest
container_name: qbit-vpn
network_mode: bridge
cap_add:
- NET_ADMIN
environment:
- PUID=0 # Required | Leave 0 because this container requires admin priviledges
- PGID=0 # Required | Leave 0 because this container requires admin priviledges
- UMASK=000 # Required
- TZ=${TZ} # Required
- WEBUI_PORT=8080 # Required, default 8080
- VPN_ENABLED=yes # Required | yes or no
- VPN_USER=p1234567 # Optional if VPN_ENABLED=no
- VPN_PASS=fI348rW8zT # Optional if VPN_ENABLED=no
- VPN_PROV=pia # Optional if VPN_ENABLED=no | Private Internet Access is the best VPN, I suggest using it because it supports port forwarding
- VPN_CLIENT=wireguard # Optional if VPN_ENABLED=no | Can be wireguard or openvpn
- STRICT_PORT_FORWARD=yes # Optional if VPN_ENABLED=no | Allow port forwarding via vpn? Yes
- LAN_NETWORK=192.168.1.0/24 # Change this to your local network
- ENABLE_STARTUP_SCRIPTS=no # Optional | yes or no
- NAME_SERVERS=1.1.1.1,1.0.0.1
- ENABLE_PRIVOXY=yes
sysctls:
- net.ipv4.conf.all.src_valid_mark=1 # Required if using wireguard
privileged: true # Required if using wireguard
ports:
- 8080:8080 # WebUI
- 8118:8118 # Privoxy
- 58946:58946 # Torrenting (TCP)
- 58946:58946/udp # Torrenting (UDP)
devices:
- /dev/dri:/dev/dri #Required for plex HW transcoding / QuickSync
volumes:
- ${BASE_PATH}/qbittorrent/config:/config
- ${MEDIA_SHARE}:/data
- /etc/localtime:/etc/localtime:ro
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:/config
ports:
- 8181:8181
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
restart: unless-stopped
prefetcharr:
image: phueber/prefetcharr:latest
container_name: prefetcharr
volumes:
- ${BASE_PATH}/prefetcharr/config.toml:/config
- ${BASE_PATH}/prefetcharr/logs:/log