diff options
Diffstat (limited to 'jellyfin/README.md')
| -rw-r--r-- | jellyfin/README.md | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/jellyfin/README.md b/jellyfin/README.md new file mode 100644 index 0000000..7f64c6d --- /dev/null +++ b/jellyfin/README.md @@ -0,0 +1,59 @@ +# Jellyfin + *arr Stack + +Media server stack consisting of: +- **Jellyfin** — Media server (movies, TV, music, books) +- **Sonarr** — TV show management +- **Radarr** — Movie management +- **Prowlarr** — Indexer management +- **FlareSolverr** — Cloudflare bypass for indexers +- **Unpackerr** — Auto-extract downloaded archives +- **Recyclarr** — Automatic TRaSH-Guide sync for Sonarr/Radarr quality profiles + +## Setup + +### 1. Create the media user + +Run the setup script to create a dedicated `media` user (UID 1001) and set correct permissions: +``` +bash setup-media-user.sh +``` + +This script: +- Creates a `media` user/group with UID/GID 1001 +- Fixes ownership on config directories +- Sets group permissions on `/srv/` media directories + +### 2. Configure environment + +Copy `.env.example` to `.env` and set your API keys: +``` +cp .env.example .env +``` + +Get your API keys from Sonarr (Settings > General) and Radarr (Settings > General). + +### 3. Start + +``` +docker compose up -d +``` + +## Access + +| Service | URL | +|-------------|--------------------------| +| Jellyfin | `http://<host>:5000` | +| Sonarr | `http://<host>:8989` | +| Radarr | `http://<host>:7878` | +| Prowlarr | `http://<host>:9696` | +| FlareSolverr | `http://<host>:8191` | + +## What to Configure + +- **User/group IDs** — All services run as UID 1001/GID 1001. Change `user:`, `PUID`, and `PGID` throughout if your media user differs. +- **Time zone** — Replace `TZ=America/Los_Angeles` throughout with your timezone. +- **Media volumes** — All services mount `/srv:/data`. Your media root should be `/srv/` with subdirectories like `vids/`, `mus/`, etc. Adjust the host path if your storage layout differs. +- **Fonts** — Jellyfin mounts `/usr/local/share/fonts/` for custom fonts. Remove if not needed. +- **Hardware transcoding** — Jellyfin has `/dev/dri` passed through for VAAPI. Remove or adjust for your GPU setup. +- **API keys** — Set `SONARR_API_KEY` and `RADARR_API_KEY` in `.env` for Unpackerr. You also need to configure these keys inside Unpackerr's web UI on first run. +- **Recyclarr** — Configure `recyclarr-config/recyclarr.yml` to sync TRaSH-Guide profiles. Runs daily at 4 AM. |
