# Privateer ## Services ### **Traefik** ([traefik][12]) - Routes all traffic through port 443 (https) to minimize open ports - Auto-renews https certificates before they expire (require a cloudflare DNS provider) ### **Dyndns** ([cloudflare-dynamic-dns][2]): - Updates cloudflare DNS records with the host's public IP address ### **vpn** ([gluetun][3]) - Protects sensitive connection with a VPN ### **torrent** ([qbittorrent][4]) - Downloads and seeds requested content ### **proxy** ([flaresolverr][5]) - Bypasses cloudflare captchas when reaching torrent sites ### **resolver** ([prowlarr][6]) - Automatically configures torrent sites for requesters (sonarr + radarr) ### **movies** ([radarr][7]) - Automatic fetching of requested movies ### **tv** ([sonarr][8]) - Automatic fetching of requested TV Shows ### **oversee** ([overseerr][9]) - Manage multiple users and limit how many requests they can make - Also: necessary for discord integration ### **bot** ([doplarr][10]) - Discord bot that allows users to request media ### **jellyfin** ([jellyfin][11])[^1] - Streams media to users ## What you need to make this work: 1. A domain name 2. A cloudflare account (free but the domain DNS must be managed by cloudflare) 3. An active PIA VPN subscription [^2] 4. A machine with docker and docker-compose installed (and sufficient resources to store and serve media) 5. A discord server in which you are an admin (optional but lets you request media and get status update in discord) ## How to set it up: 1. Clone this repository 2. copy the `template.env` file to `.env` and fill in the necessary values 3. Run `docker-compose up -d` to start the services ## Tips & Tricks: [lazydocker][13]: Is a great tool to monitor the status of your docker containers. If anything goes wrong. Looking at a containers logs is a great way to figure out what went wrong. The `template.env` file contains a `MISC_DIR` variable. This is for you to stream any media that isn't a movie or TV show (ex: family videos). Once the services are online, you will need to configure each service through their web UI. It's simpler to do so on your LAN network calling the ports: