Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 957209f7e6 | |||
| 775b11f56a | |||
| 9496b921ea | |||
| 02a6cd3c0c | |||
| e49ad52372 | |||
| e0d5d07869 | |||
| c3d5498d7a | |||
| 8e424c0096 | |||
| f767404e01 | |||
| 77bdab7138 | |||
| d166d962ae | |||
| 50d9483356 |
@@ -7,9 +7,6 @@ Config/Prowlarr/*
|
||||
Config/Radarr/*
|
||||
Config/Sonarr/*
|
||||
|
||||
config/
|
||||
|
||||
|
||||
*.log
|
||||
*.pid
|
||||
*.sock
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
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
|
||||
@@ -9,27 +9,41 @@
|
||||
### Information:
|
||||
|
||||
|
||||
This folder contains the compose and config files for all media server utilities
|
||||
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`
|
||||
|
||||
|
||||
### 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/`**
|
||||
@@ -41,9 +55,11 @@ This folder contains the compose and config files for all media server utilities
|
||||
- **`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
|
||||
@@ -52,9 +68,11 @@ This folder contains the compose and config files for all media server utilities
|
||||
|
||||
### Current Ports
|
||||
|
||||
- find later
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- `6767` --> Bazarr
|
||||
- `8198` --> Flaresolverr
|
||||
- `8096` --> Jellyfin
|
||||
- `5055` --> Jellyseer
|
||||
- `9696` --> Prowlarr
|
||||
- `8080` --> qBittorrent
|
||||
- `7878` --> Radarr
|
||||
- `8989` --> Sonarr
|
||||
+54
-57
@@ -7,21 +7,12 @@ services:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=America/Detroit
|
||||
- NVIDIA_VISIBLE_DEVICES=all
|
||||
- NVIDIA_DRIVER_CAPABILITIES=all
|
||||
volumes:
|
||||
- "./config/jellyfin:/config"
|
||||
- "/home/npate/storage/media/movies:/data/movies"
|
||||
- "/home/npate/storage/media/tvshows:/data/tvshows"
|
||||
- ${JELLYFIN_CONFIG}:/config
|
||||
- ${MOVIES}:/data/movies
|
||||
- ${TV_SHOWS}:/data/tvshows
|
||||
ports:
|
||||
- 8096:8096
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
restart: unless-stopped
|
||||
|
||||
jellyseerr:
|
||||
@@ -33,7 +24,7 @@ services:
|
||||
ports:
|
||||
- 5055:5055
|
||||
volumes:
|
||||
- "./config/jellyseerr:/app/config"
|
||||
- ${JELLYSEER_CONFIG}:/app/config
|
||||
restart: unless-stopped
|
||||
|
||||
sonarr:
|
||||
@@ -44,9 +35,9 @@ services:
|
||||
- PGID=1000
|
||||
- TZ=America/Detroit
|
||||
volumes:
|
||||
- "./config/sonarr:/config"
|
||||
- "/home/npate/storage/media/tvshows:/data/tvshows"
|
||||
- "/home/npate/storage/media/downloads:/downloads"
|
||||
- ${SONARR_CONFIG}:/config
|
||||
- ${TV_SHOWS}:/data/tvshows
|
||||
- ${DOWNLOADS}:/downloads
|
||||
ports:
|
||||
- 8989:8989
|
||||
restart: unless-stopped
|
||||
@@ -59,9 +50,9 @@ services:
|
||||
- PGID=1000
|
||||
- TZ=America/Detroit
|
||||
volumes:
|
||||
- "./config/radarr:/config"
|
||||
- "/home/npate/storage/media/movies:/data/movies"
|
||||
- "/home/npate/storage/media/downloads:/downloads"
|
||||
- ${RADARR_CONFIG}:/config
|
||||
- ${MOVIES}:/data/movies
|
||||
- ${DOWNLOADS}:/downloads
|
||||
ports:
|
||||
- 7878:7878
|
||||
restart: unless-stopped
|
||||
@@ -74,45 +65,11 @@ services:
|
||||
- PGID=1000
|
||||
- TZ=America/Detroit
|
||||
volumes:
|
||||
- "./config/prowlarr:/config"
|
||||
- ${PROWLARR_CONFIG}:/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
|
||||
@@ -132,9 +89,49 @@ services:
|
||||
- PGID=1000
|
||||
- TZ=Etc/UTC
|
||||
volumes:
|
||||
- "./config/bazarr:/config"
|
||||
- "/home/npate/storage/media/movies:/data/movies"
|
||||
- "/home/npate/storage/media/tvshows:/data/tvshows"
|
||||
- ${BAZARR_CONFIG}:/config
|
||||
- ${MOVIES}:/data/movies
|
||||
- ${TV_SHOWS}:/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
|
||||
@@ -1,9 +0,0 @@
|
||||
# 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
@@ -0,0 +1,22 @@
|
||||
# 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=
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user