2 Commits

Author SHA1 Message Date
npatenaude 0edafb6a51 Added env examples and scripts 2026-04-04 17:48:57 +00:00
npatenaude 9a9f269699 Added Qbittorrent and Gluetun 2026-03-30 00:55:51 +00:00
7 changed files with 215 additions and 101 deletions
+3
View File
@@ -7,6 +7,9 @@ Config/Prowlarr/*
Config/Radarr/*
Config/Sonarr/*
config/
*.log
*.pid
*.sock
+94
View File
@@ -0,0 +1,94 @@
When Setting up dependancies:
no localhost -- use radarr:XXXX ect
For download client -- Host: host.docker.internal
save this as docker-compose.yml
In the directory
run: docker compose up -d
check: docker ps
stop: docker compose down
version: "3.9"
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
volumes:
- "C:/Media Server Testing/Config/jellyfin:/config"
- "C:/Media Server Testing/Media/Movies:/data/movies"
- "C:/Media Server Testing/Media/TV Shows:/data/tvshows"
ports:
- 8096:8096
restart: unless-stopped
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
environment:
- LOG_LEVEL=debug
- TZ=America/Detroit
ports:
- 5055:5055
volumes:
- "C:/Media Server Testing/Config/jellyseer:/app/config"
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
volumes:
- "C:/Media Server Testing/Config/sonarr:/config"
- "M:/Media Server Testing/Media/TV Shows:/data/tvshows"
- "M:/Media Server Testing/Media/Downloads:/downloads"
ports:
- 8989:8989
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
volumes:
- "C:/Media Server Testing/Config/Radarr:/config"
- "M:/Media Server Testing/Media/Movies:/data/movies"
- "M:/Media Server Testing/Media/Downloads:/downloads"
ports:
- 7878:7878
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
volumes:
- "C:/Media Server Testing/Config/prowlarr:/config"
ports:
- 9696:9696
restart: unless-stopped
flaresolverr:
# DockerHub mirror flaresolverr/flaresolverr:latest
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=info
- TZ=America/Detroit
ports:
- 8191:8191
restart: unless-stopped
+7 -25
View File
@@ -9,41 +9,27 @@
### Information:
This is hopefully a comprehensive stack for the automated Jellyfin server.
It contains all of the needed containers for the server hosting, download managers, indexers, and vpns
### Instructions:
- copy the `docker-compose.yml` and `example.env` to your chosen directory (preferably `~/docker/media_server`)
- rename `example.env` to `.env`, fill out the needed fields for the media mapping and vpn settings
- run `docker compose up -d`
This folder contains the compose and config files for all media server utilities
### Services:
- **Bazarr** --> Subtitle manager
- **Flaresolverr** --> cloudflare proxy for indexers
- **Gluetun** --> VPN Container
- **Jellyfin** --> Main media server manager and UI
- **Jellyseer** --> Media search and resquest UI
- **Prowlarr** --> Inderxer manager
- **qBittorrent** --> Torrent client
- **Radarr** --> Movies download automator and manager
- **Sonarr** --> TV shows download automator and manager
### Contents:
**`Media Server/`**
├── **`Config/`**
│   ├── **`Bazarr/`**
│   ├── **`Flaresolverr/`**
│   ├── **`Gluetun/`**
│   ├── **`Jellyfin/`**
│   ├── **`Jellyseer/`**
│   ├── **`Prowlarr/`**
│   ├── **`qBittorrent/`**
│   ├── **`Radarr/`**
│   └── **`Sonarr/`**
├── **`docker-compose.yml/`**
@@ -55,11 +41,9 @@ It contains all of the needed containers for the server hosting, download manage
- **`Config/`**: Mian configuration folder
- **`Bazarr/`**: Config data
- **`Flaresolverr/`**: config data
- **`Gluetun/`**: Config data
- **`Jellyfin/`**: Config data
- **`Jellyseer/`**: Config data
- **`Prowlarr/`**: Config data
- **`qBittorent/`**: Config data
- **`Radarr/`**: Config data
- **`Sonarr/`**: Config data
- **`docker-compose.yml/`**: Docker Compose file
@@ -68,11 +52,9 @@ It contains all of the needed containers for the server hosting, download manage
### Current Ports
- `6767` --> Bazarr
- `8198` --> Flaresolverr
- `8096` --> Jellyfin
- `5055` --> Jellyseer
- `9696` --> Prowlarr
- `8080` --> qBittorrent
- `7878` --> Radarr
- `8989` --> Sonarr
- find later
+57 -54
View File
@@ -7,12 +7,21 @@ services:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
volumes:
- ${JELLYFIN_CONFIG}:/config
- ${MOVIES}:/data/movies
- ${TV_SHOWS}:/data/tvshows
- "./config/jellyfin:/config"
- "/home/npate/storage/media/movies:/data/movies"
- "/home/npate/storage/media/tvshows:/data/tvshows"
ports:
- 8096:8096
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
jellyseerr:
@@ -24,7 +33,7 @@ services:
ports:
- 5055:5055
volumes:
- ${JELLYSEER_CONFIG}:/app/config
- "./config/jellyseerr:/app/config"
restart: unless-stopped
sonarr:
@@ -35,9 +44,9 @@ services:
- PGID=1000
- TZ=America/Detroit
volumes:
- ${SONARR_CONFIG}:/config
- ${TV_SHOWS}:/data/tvshows
- ${DOWNLOADS}:/downloads
- "./config/sonarr:/config"
- "/home/npate/storage/media/tvshows:/data/tvshows"
- "/home/npate/storage/media/downloads:/downloads"
ports:
- 8989:8989
restart: unless-stopped
@@ -50,9 +59,9 @@ services:
- PGID=1000
- TZ=America/Detroit
volumes:
- ${RADARR_CONFIG}:/config
- ${MOVIES}:/data/movies
- ${DOWNLOADS}:/downloads
- "./config/radarr:/config"
- "/home/npate/storage/media/movies:/data/movies"
- "/home/npate/storage/media/downloads:/downloads"
ports:
- 7878:7878
restart: unless-stopped
@@ -65,11 +74,45 @@ services:
- PGID=1000
- TZ=America/Detroit
volumes:
- ${PROWLARR_CONFIG}:/config
- "./config/prowlarr:/config"
ports:
- 9696:9696
restart: unless-stopped
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=openvpn
- OPENVPN_USER=${NORDVPN_USER}
- OPENVPN_PASSWORD=${NORDVPN_PASSWORD}
- SERVER_COUNTRIES=${NORDVPN_SERVER_COUNTRIES:-United States}
- TZ=America/Detroit
volumes:
- "./config/gluetun:/gluetun"
ports:
- 8080:8080
restart: unless-stopped
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
network_mode: "service:gluetun"
depends_on:
- gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
- WEBUI_PORT=8080
volumes:
- "./config/qbittorrent:/config"
- "/home/npate/storage/media/downloads:/downloads"
restart: unless-stopped
flaresolverr:
# DockerHub mirror flaresolverr/flaresolverr:latest
image: ghcr.io/flaresolverr/flaresolverr:latest
@@ -89,49 +132,9 @@ services:
- PGID=1000
- TZ=Etc/UTC
volumes:
- ${BAZARR_CONFIG}:/config
- ${MOVIES}:/data/movies
- ${TV_SHOWS}:/data/tvshows
- "./config/bazarr:/config"
- "/home/npate/storage/media/movies:/data/movies"
- "/home/npate/storage/media/tvshows:/data/tvshows"
ports:
- 6767:6767
restart: unless-stopped
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER}
# OpenVPN:
- VPN_TYPE=openvpn
- OPENVPN_USER=${OPENVPN_USER}
- OPENVPN_PASSWORD=${OPENVPN_PASSWORD}
# Wireguard:
# - VPN_TYPE=wireguard
# - WIREGUARD_PRIVATE_KEY=${WIREGAURD_PRIVATE_KEY}
# - WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES}
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
# Gluetun wiki has other env var for specific vpns
- TZ=America/Detroit
volumes:
- ${GLUETUN_CONFIG}:/gluetun
ports:
- 8080:8080
restart: unless-stopped
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
network_mode: "service:gluetun"
depends_on:
- gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=America/Detroit
- WEBUI_PORT=8080
volumes:
- ${QBITTORRENT_CONFIG}:/config
- ${DOWNLOADS}:/downloads
restart: unless-stopped
+9
View File
@@ -0,0 +1,9 @@
# NordVPN credentials for Gluetun
# Get these from: https://my.nordaccount.com/dashboard/nordvpn/ -> Manual Setup
# These are *service* credentials, not your regular NordVPN login
NORDVPN_USER=
NORDVPN_PASSWORD=
# Optional: Comma-separated list of countries (e.g. "United States", "Canada", "Netherlands")
# Leave unset to use "United States"
# NORDVPN_SERVER_COUNTRIES=United States
-22
View File
@@ -1,22 +0,0 @@
# Config Paths
JELLYFIN_CONFIG=./jellyfin
JELLYSEER_CONFIG=./jellyseer
SONARR_CONFIG=./sonarr
RADARR_CONFIG=./radarr
PROWLARR_CONFIG=./prowlarr
BAZARR_CONFIG=./bazarr
GLUETUN_CONFIG=./gluetun
QBITTORRENT_CONFIG=./qbittorrent
# Media Storage Paths
DOWNLOADS=
MOVIES=
TV_SHOWS=
# VPN Setup (OpenVPN or wireguard)
VPN_SERVICE_PROVIDER=
OPENVPN_USER=
OPENVPN_PASSWORD=
# WIREGUARD_PRIVATE_KEY=
# WIREGUARD_ADDRESSES=
SERVER_COUNTRIES=
+45
View File
@@ -0,0 +1,45 @@
#!/usr/bin/env bash
# Install proprietary NVIDIA driver + NVIDIA Container Toolkit on Ubuntu (for Docker GPU).
# Run on the server: bash scripts/install-nvidia-stack.sh
# Reboot after completion, then: nvidia-smi
set -euo pipefail
echo "==> Updating apt"
sudo apt-get update
echo "==> Installing ubuntu-drivers-common"
sudo apt-get install -y ubuntu-drivers-common
echo "==> Detected devices / recommendations:"
ubuntu-drivers devices || true
echo "==> Installing recommended proprietary NVIDIA driver"
sudo ubuntu-drivers autoinstall
echo "==> Adding NVIDIA Container Toolkit repository"
sudo apt-get install -y curl gnupg2
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
echo "==> Installing nvidia-container-toolkit"
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
echo "==> Configuring Docker to use NVIDIA runtime"
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
echo ""
echo "Done. Reboot the server so the kernel loads the NVIDIA driver:"
echo " sudo reboot"
echo ""
echo "After reboot, verify:"
echo " nvidia-smi"
echo " docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu22.04 nvidia-smi"
echo ""
echo "Then recreate Jellyfin:"
echo " cd $(dirname "$(dirname "$(readlink -f "$0")")") && docker compose up -d jellyfin"