No description
Find a file
2024-11-19 10:08:42 +01:00
img Commit one 2024-11-19 10:08:42 +01:00
README.md Commit one 2024-11-19 10:08:42 +01:00

FREEDOM

Requirements

  • Not being a boomer
  • PC with Windows
  • Base IT knowledge (what's a URI, port, domain, container, virtualization, torrent, command line interface basics)
  • Patience
  • Ability to look for solutions by yourself

Steps and scripts

Step 0 : Setup File Explorer view

  1. Open the folder view options
    folder view
  2. Enable hidden files and file extensions
    folder view
  3. Create a folder where our files will reside in your Home folder (C:\Users\[the folder to be created])
    folder view
  4. In the same user folder (C:\Users\youruser\folderToCreate) create a folder where downloads and all the files will reside
    folder view

Step 1 : Required softwares

First, we'll download and install the tools we need to setup our environment.

  1. Git : https://git-scm.com/downloads/win download the 64bits version and install it
  2. WSL2 : Follow the documentation to install https://learn.microsoft.com/en-us/windows/wsl/install. It's basically this command : wsl --install --no-distribution

Disclaimer : in order to be able to install WSL2, virtualization MUST BE enabled in CPU section of your BIOS (VT-x for Intel, AMD-V for AMD) please follow instructions there : https://helpdeskgeek.com/how-to/how-to-enable-virtualization-in-bios-for-intel-and-amd/

  1. Docker Desktop : https://www.docker.com/products/docker-desktop/ select your architecture (AMD64, yes even if you have an Intel CPU) and install.

Now you should have everything required installed. Additionally, you may want to install an advanced text editor like Visual Studio Code.

Step 2 : Deploy the *ARR suite

All services we'll deploy will follow the same structure git/serviceFolder/docker-compose.yaml, here is an example
folder view

Here we'll cover the Docker Container part which is the main topic of this tutorial, it should be straightforward but you may still encounter some issues and then, searching Google will help.

  1. Let's start with a handy tool that will make you life easier : Watchtower. Long story short, it will update your applications and cleanup unused Docker images automatically.
    In order to create this service, create a docker compose file in you project folder (in my case git/watchtower/docker-compose.yaml).
    Here's the compose file :
---
services:
  watchtower:
    container_name: watchtower
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_REMOVE_VOLUMES=true
    restart: unless-stopped

Source : Official doc

After you can go on you terminal and go to the folder then run this command docker compose up -d
watchtower

Now you service must be running, let's see in Docker desktop if it's the case watchtower

Those two last step (CLI & check in Docker desktop will be the same for all other deployments)

  1. Prowlarr is the indexers manager, this is where you select the torrents' trackers you want to search for content, from there it will distribute to all other apps needing those trackers.
    Here is the yaml file :
---
services:
  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./prowlarr/data:/config
    ports:
      - 9696:9696
    restart: unless-stopped 

Source : Official doc (select your service to see the documentation)

Now you can direct your prompt to this prowlarr folder (cd ../prowlarr) and run the docker compose command like for watchtower

  1. Radarr is the movies manager
---
services:
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./data:/config
      - "C:/Users/YOURUSER/arr/movies:/movies" #optional
      - "C:/Users/YOURUSER/arr/downloads:/downloads" #optional
    ports:
      - 7878:7878
    restart: unless-stopped

Source : Official doc (select your service to see the documentation)

Please note the YOURUSER marking where you're supposed to change it to your actual user. Don't copy paste blindly please, try not to be dumb.

Same last two steps, change directory (cd) then docker compose command and see in Docker desktop if the app is alive.

  1. Sonarr is the TV shows manager
---
services:
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./data:/config
      - "C:/Users/YOURUSER/arr/series:/tv" #optional
      - "C:/Users/YOURUSER/arr/downloads:/downloads" #optional
    ports:
      - 8989:8989
    restart: unless-stopped

Source : Official doc (select your service to see the documentation)

Same last two steps, change directory (cd) then docker compose command and see in Docker desktop if the app is alive.

  1. Jellyfin is the streaming application
---
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - JELLYFIN_PublishedServerUrl=http://0.0.0.0 #optional
    volumes:
      - ./library:/config
      - "C:/Users/YOURUSER/arr/series:/data/tvshows"
      - "C:/Users/YOURUSER/arr/movies:/data/movies"
    ports:
      - 8096:8096
      - 8920:8920 #optional
      - 7359:7359/udp #optional
      - 1900:1900/udp #optional
    restart: unless-stopped

Source : Official doc (select your service to see the documentation)

Here replace the 0.0.0.0 by your own IP address obviously.

Same last two steps, change directory (cd) then docker compose command and see in Docker desktop if the app is alive.

  1. Jellyseerr is the searching and requesting application, coming on top. Only for TV shows and movies.
---
services:
  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    environment:
      - LOG_LEVEL=debug
      - TZ=Europe/Paris
      - PORT=5055 #optional
    ports:
      - 5055:5055
    volumes:
      - ./config:/app/config
    restart: unless-stopped

Source : Official doc

Same last two steps, change directory (cd) then docker compose command and see in Docker desktop if the app is alive.

  1. Transmission is the torrent downloader client
---
services:
  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - TRANSMISSION_WEB_HOME= #optional
      - USER= #optional
      - PASS= #optional
      - WHITELIST= #optional
      - PEERPORT= #optional
      - HOST_WHITELIST= #optional
    volumes:
      - ./transmission/data:/config
      - "C:/Users/YOURUSER/arr/downloads:/downloads"
      - "C:/Users/YOURUSER/arr/downloads/watch:/watch"
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped

Source : Official doc (select your service to see the documentation)

Same last two steps, change directory (cd) then docker compose command and see in Docker desktop if the app is alive.

  1. Flaresolverr is a little tool to access Cloudflare protected trackers
---
services:
  flaresolverr:
    # DockerHub mirror flaresolverr/flaresolverr:latest
    image: ghcr.io/flaresolverr/flaresolverr:latest
    container_name: flaresolverr
    environment:
      - LOG_LEVEL=${LOG_LEVEL:-info}
      - LOG_HTML=${LOG_HTML:-false}
      - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
      - TZ=Europe/Paris
    ports:
      - "${PORT:-8191}:8191"
    restart: unless-stopped 

Source : Official doc

Same last two steps, change directory (cd) then docker compose command and see in Docker desktop if the app is alive.

Step 3 : Configure the *ARR suite

Now you should have something like that :
docker desktop

Now, let's navigate to each apps and setup everything to work together.

  1. Prowlarr