From 28092de55f6c960904544563906c9bc7e92164f2 Mon Sep 17 00:00:00 2001 From: Navratan Lal Gupta Date: Fri, 5 May 2023 13:27:27 +0530 Subject: [PATCH] doc: Improve document --- README.md | 78 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 24eae6b..6d4e3a3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,13 @@ -# Install media stack +# media-stack + +A stack of self-hosted media managers and streamer along with VPN. + +## Requirements + +- Docker version 23.0.5 +- Docker compose version v2.17.3 + +## Install media stack There are two media stacks available. @@ -6,23 +15,25 @@ There are two media stacks available. `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. +Any one of them can be deployed using `--profile` option with docker compose command. + +Specific tool which is not present in a stack can also be included using their profile name in `--profile`. For example, to include prowlarr with stack-1 we can use `--profile stack-1 --profile prowlarr` with docker compose command. ``` docker network create mynetwork # Install Jellyfin, Radarr, Sonarr, Jackett and Transmission stack -docker-compose --profile stack-1 up -d +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 +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 +docker compose -f docker-compose-nginx.yml up -d # OPTIONAL to use Nginx as reverse proxy ``` -# Configure Transmission / qBittorrent +## Configure Transmission / qBittorrent For qBitTorrent, @@ -31,24 +42,24 @@ For qBitTorrent, For qBiTorrent / Transmission -- From backend, Run below commands +- Run below commands ``` -# docker exec -it transmission bash # Get inside transmission container, OR docker exec -it qbittorrent bash # Get inside qBittorrent container +# OR, docker exec -it transmission bash # Get inside transmission container mkdir /downloads/movies /downloads/tvshows chown 1000:1000 /downloads/movies /downloads/tvshows ``` -# Add indexer to Jackett +## Add indexer to Jackett - Open Jackett UI at http://localhost:9117 - Add indexer - Search for torrent indexer (e.g. the pirates bay, YTS) - Add selected -# Configure Radarr +## Configure Radarr - Open Radarr at http://localhost:7878 - Settings --> Media Management --> Check mark "Movies deleted from disk are automatically unmonitored in Radarr" under File management section --> Save @@ -57,22 +68,22 @@ chown 1000:1000 /downloads/movies /downloads/tvshows - 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 +## Add a movie - Movies --> Search for a movie --> Add Root folder (/downloads) --> Quality profile --> Add movie - Go to transmission (http://localhost:9091) and see if movie is getting downloaded. -# Configure Jellyfin +## Configure Jellyfin - Open Jellyfin at http://localhost:8096 - Configure as it asks for first time. - Add media library folder and choose /data/movies/ -# Configure Jackett +## Configure Jackett - Add admin password -# Configure Prowlarr +## Configure Prowlarr - Open Prowlarr at http://localhost:9696 - Settings --> General --> Authentications --> Select AUthentication and add username and password @@ -80,26 +91,24 @@ chown 1000:1000 /downloads/movies /downloads/tvshows - 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 +## Configure Nginx + +- Get inside Nginx container +- `cd /etc/nginx/conf.d` +- Add proxies for all tools. + +`docker cp nginx.conf nginx:/etc/nginx/conf.d/default.conf && docker exec -it nginx nginx -s reload` +- Close ports of other tools in firewall/security groups except port 80 and 443. + + +## Apply SSL in Nginx - Open port 80 and 443. - Get inside Nginx container and install certbot and certbot-nginx `apk add certbot certbot-nginx` - Add URL in server block. e.g. `server_name localhost armdev.navratangupta.in;` in /etc/nginx/conf.d/default.conf - Run `certbot --nginx` and provide details asked. - -# Configure Nginx - -- Get inside Nginx container -- `cd /etc/nginx/conf.d` -- Add proxies as per below for all tools. -- OR, copy nginx.conf file to /etc/nginx/conf.d/default.conf and make necessary changes - -`docker cp nginx.conf nginx:/etc/nginx/conf.d/default.conf && docker exec -it nginx nginx -s reload` -- Close ports of other tools in firewall/security groups except port 80 and 443. - - -# Radarr Nginx reverse proxy +## Radarr Nginx reverse proxy - Settings --> General --> URL Base --> Add base (/radarr) - Add below proxy in nginx configuration @@ -118,7 +127,7 @@ location /radarr { - Restart containers. -# Sonarr Nginx reverse proxy +## Sonarr Nginx reverse proxy - Settings --> General --> URL Base --> Add base (/sonarr) - Add below proxy in nginx configuration @@ -135,7 +144,7 @@ location /radarr { } ``` -# Prowlarr Nginx reverse proxy +## Prowlarr Nginx reverse proxy - Settings --> General --> URL Base --> Add base (/prowlarr) - Add below proxy in nginx configuration @@ -156,7 +165,7 @@ location /prowlarr { - Restart containers. -# Jackett Nginx reverse proxy +## Jackett Nginx reverse proxy - Get inside jackett container and go to `/config/Jackett/` - Add `"BasePathOverride": "/jackett"` in ServerConfig.json file. @@ -177,7 +186,7 @@ location /jackett/ { - Restart containers -# Transmission Nginx reverse proxy +## Transmission Nginx reverse proxy - Add below proxy in Nginx config @@ -213,7 +222,7 @@ location ^~ /transmission { **Note: If VPN is enabled, then transmission is reachable on vpn's service name** -# qBittorrent Nginx proxy +## qBittorrent Nginx proxy ``` location /qbt/ { @@ -229,7 +238,7 @@ location /qbt/ { **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 below config in Ngix config @@ -259,4 +268,5 @@ location /qbt/ { proxy_buffering off; } ``` + - Restart containers