Merge pull request #7 from navilg/prowlarr

Prowlarr
This commit is contained in:
Navratan Lal Gupta 2022-08-12 16:08:25 +05:30 committed by GitHub
commit e5bf1beb9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 195 additions and 31 deletions

View File

@ -1,13 +1,43 @@
# Install radarr. sonarr, transmission, jackett and jellyfin
# Install media stack
- Change transmission password in docker-compose.yml file
- Run below commands
There are two media stacks available.
`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-compose up -d
docker-compose -f docker-compose-nginx.yml up -d # OPTIONAL
bash post-deploy.sh
docker network create mynetwork
# Install Jellyfin, Radarr, Sonarr, Jackett and Transmission stack
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
@ -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 --> Indexers --> Add --> Add Rarbg indexer --> Add minimum seeder (4) --> Test --> Save
- 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
# Add a movie
@ -41,6 +71,14 @@ bash post-deploy.sh
- 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
- 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.
# 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
- Add base URL, Admin Dashboard -> Networking -> Base URL (/jellyfin)

View File

@ -1,28 +1,106 @@
version: '2'
version: "3.9"
name: media-stack
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:
profiles: ["tx", "stack-1"]
container_name: transmission
image: lscr.io/linuxserver/transmission:3.00-r5-ls127
networks:
- mynetwork
network_mode: service:vpn # Comment this line if vpn is disabled
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
- USER=admin
- PASS=nimdatx
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
## Uncomment below ports if VPN is disabled.
# ports:
# - 9091:9091
# - 51413:51413
# - 51413:51413/udp
volumes:
- tx-config:/config
- tx-downloads:/downloads
- torrent-downloads:/downloads
- tx-watch:/watch
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:
profiles: ["base", "radarr", "stack-1", "stack-2"]
container_name: radarr
image: lscr.io/linuxserver/radarr:4.1.0.6175-ls146
networks:
@ -35,10 +113,11 @@ services:
- 7878:7878
volumes:
- radarr-config:/config
- tx-downloads:/downloads
- torrent-downloads:/downloads
restart: "unless-stopped"
sonarr:
profiles: ["base", "sonarr", "stack-1", "stack-2"]
image: lscr.io/linuxserver/sonarr:3.0.8.1507-ls150
container_name: sonarr
networks:
@ -49,12 +128,13 @@ services:
- TZ=UTC
volumes:
- sonarr-config:/config
- tx-downloads:/downloads #optional
- torrent-downloads:/downloads
ports:
- 8989:8989
restart: unless-stopped
jackett:
profiles: ["jackett", "stack-1"]
container_name: jackett
image: lscr.io/linuxserver/jackett:v0.20.1426-ls74
networks:
@ -70,7 +150,24 @@ services:
- 9117:9117
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:
profiles: ["base", "jelly", "stack-1", "stack-2"]
image: lscr.io/linuxserver/jellyfin:10.8.1-1-ls171
container_name: jellyfin
networks:
@ -81,24 +178,26 @@ services:
- TZ=UTC
volumes:
- jellyfin-config:/config
- tx-downloads:/data
- torrent-downloads:/data
# devices:
# - /dev/videoN:/dev/videoN # Mount GPU device
ports:
- 8096:8096
- 7359:7359/udp #optional
- 7359:7359/udp
- 8920:8920
restart: unless-stopped
volumes:
tx-config:
tx-downloads:
tx-watch:
torrent-downloads:
radarr-config:
sonarr-config:
jackett-config:
jackett-blackhole:
prowlarr-config:
jellyfin-config:
qbittorrent-config:
tx-config:
tx-watch:
networks:
mynetwork:

View File

@ -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

View File

@ -1,3 +0,0 @@
#!/usr/bin/env bash
docker network ls | grep -i mynetwork || docker network create mynetwork # Create network if not already exist