commit
e5bf1beb9f
91
README.md
91
README.md
@ -1,13 +1,43 @@
|
|||||||
# Install radarr. sonarr, transmission, jackett and jellyfin
|
# Install media stack
|
||||||
|
|
||||||
- Change transmission password in docker-compose.yml file
|
There are two media stacks available.
|
||||||
- Run below commands
|
|
||||||
|
`stack-1` This stack contains Jellyfin, Radarr, Sonarr, Jackett and Transmission.
|
||||||
|
|
||||||
|
`stack-2` This stack contains Jellyfin, Radarr, Sonarr, Prowlarr, qBitTorrent and VPN.
|
||||||
|
|
||||||
|
Any one of them can be deployed using --profile option with docker-compose.
|
||||||
|
|
||||||
```
|
```
|
||||||
bash pre-deploy.sh
|
docker network create mynetwork
|
||||||
docker-compose up -d
|
|
||||||
docker-compose -f docker-compose-nginx.yml up -d # OPTIONAL
|
# Install Jellyfin, Radarr, Sonarr, Jackett and Transmission stack
|
||||||
bash post-deploy.sh
|
docker-compose --profile stack-1 up -d
|
||||||
|
|
||||||
|
# Or, Install Jellyfin, Radarr, Sonarr, Prowlarr, qBitTorrent and VPN stack
|
||||||
|
## By default NordVPN is configured. This can be changed to ExpressVPN, SurfShark, OpenVPN or Wireguard VPN by updating docker-compose.yml file. It uses OpenVPN type for all providers.
|
||||||
|
VPN_SERVICE_PROVIDER=nordvpn OPENVPN_USER=openvpn-username OPENVPN_PASSWORD=openvpn-password SERVER_REGIONS=Switzerland docker-compose --profile stack-2 up -d
|
||||||
|
|
||||||
|
docker-compose -f docker-compose-nginx.yml up -d # OPTIONAL to use Nginx as reverse proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
# Configure Transmission / qBittorrent
|
||||||
|
|
||||||
|
For qBitTorrent,
|
||||||
|
|
||||||
|
- Open qBitTorrent at http://localhost:5080. Default username:password is admin:adminadmin
|
||||||
|
- Go to Tools --> Options --> WebUI --> Change password
|
||||||
|
|
||||||
|
For qBiTorrent / Transmission
|
||||||
|
|
||||||
|
- From backend, Run below commands
|
||||||
|
|
||||||
|
```
|
||||||
|
# docker exec -it transmission bash # Get inside transmission container, OR
|
||||||
|
docker exec -it qbittorrent bash # Get inside qBittorrent container
|
||||||
|
|
||||||
|
mkdir /downloads/movies /downloads/tvshows
|
||||||
|
chown 1000:1000 /downloads/movies /downloads/tvshows
|
||||||
```
|
```
|
||||||
|
|
||||||
# Add indexer to Jackett
|
# Add indexer to Jackett
|
||||||
@ -23,7 +53,7 @@ bash post-deploy.sh
|
|||||||
- Settings --> Media Management --> Check mark "Movies deleted from disk are automatically unmonitored in Radarr" under File management section --> Save
|
- Settings --> Media Management --> Check mark "Movies deleted from disk are automatically unmonitored in Radarr" under File management section --> Save
|
||||||
- Settings --> Indexers --> Add --> Add Rarbg indexer --> Add minimum seeder (4) --> Test --> Save
|
- Settings --> Indexers --> Add --> Add Rarbg indexer --> Add minimum seeder (4) --> Test --> Save
|
||||||
- Settings --> Indexers --> Add --> Torznab --> Follow steps from Jackett to add indexer
|
- Settings --> Indexers --> Add --> Torznab --> Follow steps from Jackett to add indexer
|
||||||
- Settings --> Download clients --> Transmission --> Add Host (transmission) and port (9091) --> Username and password if added --> Test --> Save
|
- Settings --> Download clients --> Transmission --> Add Host (transmission / qbittorrent) and port (9091 / 5080) --> Username and password if added --> Test --> Save **Note: If VPN is enabled, then transmission / qbittorrent is reachable on vpn's service name**
|
||||||
- Settings --> General --> Enable advance setting --> Select AUthentication and add username and password
|
- Settings --> General --> Enable advance setting --> Select AUthentication and add username and password
|
||||||
|
|
||||||
# Add a movie
|
# Add a movie
|
||||||
@ -41,6 +71,14 @@ bash post-deploy.sh
|
|||||||
|
|
||||||
- Add admin password
|
- Add admin password
|
||||||
|
|
||||||
|
# Configure Prowlarr
|
||||||
|
|
||||||
|
- Open Prowlarr at http://localhost:9696
|
||||||
|
- Settings --> General --> Authentications --> Select AUthentication and add username and password
|
||||||
|
- Add Indexers, Indexers --> Add Indexer --> Search for indexer --> Choose base URL --> Test and Save
|
||||||
|
- Add application, Settings --> Apps --> Add application --> Choose Sonarr or Radarr or any apps to link --> Prowlarr server (http://localhost:9696) --> Radarr server (http://localhost:7878) --> API Key --> Test and Save
|
||||||
|
- This will add indexers in respective apps automatically.
|
||||||
|
|
||||||
# Apply SSL in Nginx
|
# Apply SSL in Nginx
|
||||||
|
|
||||||
- Open port 80 and 443.
|
- Open port 80 and 443.
|
||||||
@ -96,6 +134,25 @@ location /radarr {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Prowlarr Nginx reverse proxy
|
||||||
|
|
||||||
|
- Settings --> General --> URL Base --> Add base (/prowlarr)
|
||||||
|
- Add below proxy in nginx configuration
|
||||||
|
|
||||||
|
This may need to change configurations in indexers and base in URL.
|
||||||
|
|
||||||
|
```
|
||||||
|
location /prowlarr {
|
||||||
|
proxy_pass http://prowlarr:9696;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection $http_connection;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
- Restart containers.
|
- Restart containers.
|
||||||
|
|
||||||
# Jackett Nginx reverse proxy
|
# Jackett Nginx reverse proxy
|
||||||
@ -153,6 +210,24 @@ location ^~ /transmission {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Note: If VPN is enabled, then transmission is reachable on vpn's service name**
|
||||||
|
|
||||||
|
# qBittorrent Nginx proxy
|
||||||
|
|
||||||
|
```
|
||||||
|
location /qbt/ {
|
||||||
|
proxy_pass http://qbittorrent:5080/;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
|
||||||
|
proxy_set_header Host http://qbittorrent:5080;
|
||||||
|
proxy_set_header X-Forwarded-Host $http_host;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_cookie_path / "/; Secure";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note: If VPN is enabled, then qbittorrent is reachable on vpn's service name**
|
||||||
|
|
||||||
# Jellyfin Nginx proxy
|
# Jellyfin Nginx proxy
|
||||||
|
|
||||||
- Add base URL, Admin Dashboard -> Networking -> Base URL (/jellyfin)
|
- Add base URL, Admin Dashboard -> Networking -> Base URL (/jellyfin)
|
||||||
|
@ -1,28 +1,106 @@
|
|||||||
version: '2'
|
version: "3.9"
|
||||||
name: media-stack
|
name: media-stack
|
||||||
services:
|
services:
|
||||||
|
vpn:
|
||||||
|
## Read https://github.com/qdm12/gluetun/wiki for details on configuring VPN for different service providers.
|
||||||
|
profiles: ["vpn", "stack-2"]
|
||||||
|
container_name: vpn
|
||||||
|
image: qmcgaw/gluetun
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
environment:
|
||||||
|
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:-nordvpn} # Valid values: nordvpn, expressvpn, protonvpn, surfshark or custom
|
||||||
|
- OPENVPN_USER=${OPENVPN_USER?"OPENVPN_USER variable must be set"}
|
||||||
|
- OPENVPN_PASSWORD=${OPENVPN_PASSWORD?"OPENVPN_PASSWORD variable must be set"}
|
||||||
|
|
||||||
|
## For list of server regions and countries, visit https://raw.githubusercontent.com/qdm12/gluetun/master/internal/storage/servers.json
|
||||||
|
|
||||||
|
## SERVER_REGIONS is required for NordVPN and Surfshark VPN. Comment SERVER_COUNTRIES if SERVER_REGIONS is used.
|
||||||
|
- SERVER_REGIONS=${SERVER_REGIONS:-Switzerland}
|
||||||
|
|
||||||
|
## SERVER_COUNTRIES is required for ExpressVPN and ProtonVPN. Comment SERVER_REGIONS if SERVER_COUNTRIES is used.
|
||||||
|
# - SERVER_COUNTRIES=${SERVER_COUNTRIES:-Netherlands}
|
||||||
|
|
||||||
|
## Enable below if VPN_SERVICE_PROVIDER=custom
|
||||||
|
# - VPN_TYPE=openvpn # or wiregiuard.
|
||||||
|
|
||||||
|
## If VPN_TYPE is openvpn
|
||||||
|
# - OPENVPN_CUSTOM_CONFIG=/gluetun/custom.conf
|
||||||
|
|
||||||
|
## If VPN_TYPE is wireguard. Replace below env variables as required.
|
||||||
|
# - VPN_ENDPOINT_IP=1.2.3.4 # Replace with your wg endpoint ip or domain
|
||||||
|
# - VPN_ENDPOINT_PORT=51820 # Replace with wg server port
|
||||||
|
# - WIREGUARD_PUBLIC_KEY=wAUaJMhAq3NFutLHIdF8AN0B5WG8RndfQKLPTEDHal0= # Replace with your wg public key
|
||||||
|
# - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU= # Replace with your wg client private key
|
||||||
|
# - WIREGUARD_PRESHARED_KEY=xOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU= # Replaced with your wg pre-shared key
|
||||||
|
# - WIREGUARD_ADDRESSES="10.64.222.21/32" # Replace with wg address
|
||||||
|
|
||||||
|
## Enable volume if custom VPN_SERVICE_PROVIDER is used
|
||||||
|
# volumes:
|
||||||
|
# - /yourpath/yourconfig.conf:/gluetun/config.conf:ro
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- mynetwork
|
||||||
|
ports:
|
||||||
|
# qbittorrent ports
|
||||||
|
- 5080:5080
|
||||||
|
- 6881:6881
|
||||||
|
- 6881:6881/udp
|
||||||
|
# Transmission ports
|
||||||
|
- 9091:9091
|
||||||
|
- 51413:51413
|
||||||
|
- 51413:51413/udp
|
||||||
transmission:
|
transmission:
|
||||||
|
profiles: ["tx", "stack-1"]
|
||||||
container_name: transmission
|
container_name: transmission
|
||||||
image: lscr.io/linuxserver/transmission:3.00-r5-ls127
|
image: lscr.io/linuxserver/transmission:3.00-r5-ls127
|
||||||
networks:
|
networks:
|
||||||
- mynetwork
|
- mynetwork
|
||||||
|
network_mode: service:vpn # Comment this line if vpn is disabled
|
||||||
environment:
|
environment:
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
- TZ=UTC
|
- TZ=UTC
|
||||||
- USER=admin
|
- USER=admin
|
||||||
- PASS=nimdatx
|
- PASS=nimdatx
|
||||||
ports:
|
|
||||||
- 9091:9091
|
## Uncomment below ports if VPN is disabled.
|
||||||
- 51413:51413
|
# ports:
|
||||||
- 51413:51413/udp
|
# - 9091:9091
|
||||||
|
# - 51413:51413
|
||||||
|
# - 51413:51413/udp
|
||||||
volumes:
|
volumes:
|
||||||
- tx-config:/config
|
- tx-config:/config
|
||||||
- tx-downloads:/downloads
|
- torrent-downloads:/downloads
|
||||||
- tx-watch:/watch
|
- tx-watch:/watch
|
||||||
restart: "unless-stopped"
|
restart: "unless-stopped"
|
||||||
|
|
||||||
|
## Default credentials - Username: admin password: adminadmin ##
|
||||||
|
## Change password after install from UI --> Tools --> Options --> WebUI ##
|
||||||
|
qbittorrent:
|
||||||
|
container_name: qbittorrent
|
||||||
|
profiles: ["qbt", "stack-2"]
|
||||||
|
image: lscr.io/linuxserver/qbittorrent:4.4.3.1-r1-ls209
|
||||||
|
networks:
|
||||||
|
- mynetwork
|
||||||
|
network_mode: service:vpn # Comment this line if vpn is disabled
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=UTC
|
||||||
|
- WEBUI_PORT=5080
|
||||||
|
volumes:
|
||||||
|
- qbittorrent-config:/config
|
||||||
|
- torrent-downloads:/downloads
|
||||||
|
|
||||||
|
## Uncomment below ports if VPN is disabled.
|
||||||
|
# ports:
|
||||||
|
# - 5080:5080
|
||||||
|
# - 6881:6881
|
||||||
|
# - 6881:6881/udp
|
||||||
|
restart: "unless-stopped"
|
||||||
radarr:
|
radarr:
|
||||||
|
profiles: ["base", "radarr", "stack-1", "stack-2"]
|
||||||
container_name: radarr
|
container_name: radarr
|
||||||
image: lscr.io/linuxserver/radarr:4.1.0.6175-ls146
|
image: lscr.io/linuxserver/radarr:4.1.0.6175-ls146
|
||||||
networks:
|
networks:
|
||||||
@ -35,10 +113,11 @@ services:
|
|||||||
- 7878:7878
|
- 7878:7878
|
||||||
volumes:
|
volumes:
|
||||||
- radarr-config:/config
|
- radarr-config:/config
|
||||||
- tx-downloads:/downloads
|
- torrent-downloads:/downloads
|
||||||
restart: "unless-stopped"
|
restart: "unless-stopped"
|
||||||
|
|
||||||
sonarr:
|
sonarr:
|
||||||
|
profiles: ["base", "sonarr", "stack-1", "stack-2"]
|
||||||
image: lscr.io/linuxserver/sonarr:3.0.8.1507-ls150
|
image: lscr.io/linuxserver/sonarr:3.0.8.1507-ls150
|
||||||
container_name: sonarr
|
container_name: sonarr
|
||||||
networks:
|
networks:
|
||||||
@ -49,12 +128,13 @@ services:
|
|||||||
- TZ=UTC
|
- TZ=UTC
|
||||||
volumes:
|
volumes:
|
||||||
- sonarr-config:/config
|
- sonarr-config:/config
|
||||||
- tx-downloads:/downloads #optional
|
- torrent-downloads:/downloads
|
||||||
ports:
|
ports:
|
||||||
- 8989:8989
|
- 8989:8989
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
jackett:
|
jackett:
|
||||||
|
profiles: ["jackett", "stack-1"]
|
||||||
container_name: jackett
|
container_name: jackett
|
||||||
image: lscr.io/linuxserver/jackett:v0.20.1426-ls74
|
image: lscr.io/linuxserver/jackett:v0.20.1426-ls74
|
||||||
networks:
|
networks:
|
||||||
@ -70,7 +150,24 @@ services:
|
|||||||
- 9117:9117
|
- 9117:9117
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
prowlarr:
|
||||||
|
profiles: ["prowlarr", "stack-2"]
|
||||||
|
container_name: prowlarr
|
||||||
|
image: linuxserver/prowlarr:develop-0.4.3.1921-ls62
|
||||||
|
networks:
|
||||||
|
- mynetwork
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=UTC
|
||||||
|
volumes:
|
||||||
|
- prowlarr-config:/config
|
||||||
|
ports:
|
||||||
|
- 9696:9696
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
jellyfin:
|
jellyfin:
|
||||||
|
profiles: ["base", "jelly", "stack-1", "stack-2"]
|
||||||
image: lscr.io/linuxserver/jellyfin:10.8.1-1-ls171
|
image: lscr.io/linuxserver/jellyfin:10.8.1-1-ls171
|
||||||
container_name: jellyfin
|
container_name: jellyfin
|
||||||
networks:
|
networks:
|
||||||
@ -81,24 +178,26 @@ services:
|
|||||||
- TZ=UTC
|
- TZ=UTC
|
||||||
volumes:
|
volumes:
|
||||||
- jellyfin-config:/config
|
- jellyfin-config:/config
|
||||||
- tx-downloads:/data
|
- torrent-downloads:/data
|
||||||
# devices:
|
# devices:
|
||||||
# - /dev/videoN:/dev/videoN # Mount GPU device
|
# - /dev/videoN:/dev/videoN # Mount GPU device
|
||||||
ports:
|
ports:
|
||||||
- 8096:8096
|
- 8096:8096
|
||||||
- 7359:7359/udp #optional
|
- 7359:7359/udp
|
||||||
- 8920:8920
|
- 8920:8920
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
tx-config:
|
torrent-downloads:
|
||||||
tx-downloads:
|
|
||||||
tx-watch:
|
|
||||||
radarr-config:
|
radarr-config:
|
||||||
sonarr-config:
|
sonarr-config:
|
||||||
jackett-config:
|
jackett-config:
|
||||||
jackett-blackhole:
|
jackett-blackhole:
|
||||||
|
prowlarr-config:
|
||||||
jellyfin-config:
|
jellyfin-config:
|
||||||
|
qbittorrent-config:
|
||||||
|
tx-config:
|
||||||
|
tx-watch:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
mynetwork:
|
mynetwork:
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
docker exec -it transmission mkdir -p /downloads/movies
|
|
||||||
docker exec -it transmission chown -R 1000:1000 /downloads/movies
|
|
||||||
|
|
||||||
docker exec -it transmission mkdir -p /downloads/tvshows
|
|
||||||
docker exec -it transmission chown -R 1000:1000 /downloads/tvshows
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
docker network ls | grep -i mynetwork || docker network create mynetwork # Create network if not already exist
|
|
Loading…
Reference in New Issue
Block a user