updated documentation and whisparr

This commit is contained in:
2026-11-02 22:23:37 +00:00
parent 3cb052b486
commit c47615a751
11 changed files with 147 additions and 22 deletions
+12
View File
@@ -12,6 +12,18 @@ Bazarr is a subtitle management companion for Sonarr and Radarr. It automaticall
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
Open http://localhost:6767 in your browser and complete the initial setup: Open http://localhost:6767 in your browser and complete the initial setup:
1. **Configure subtitle languages** — select your preferred languages (e.g., English, French) 1. **Configure subtitle languages** — select your preferred languages (e.g., English, French)
+12 -5
View File
@@ -12,6 +12,18 @@ Jellyfin is a free, open-source media server. It organizes your movies, shows, m
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
Open http://localhost:8096 in your browser and complete the setup wizard: Open http://localhost:8096 in your browser and complete the setup wizard:
1. **Create your admin account** 1. **Create your admin account**
@@ -82,11 +94,6 @@ docker run -d \
## Additional Notes / Gotchas ## Additional Notes / Gotchas
- **Create the library folders first.** If `/data/media/movies` etc. don't exist, Docker creates them owned by root and Sonarr/Radarr (PUID 1000) can't write to them:
```bash
mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
chown -R 1000:1000 /data/media
```
- **Only port 8096 is published.** HTTPS (8920) is handled by Nginx Proxy Manager. Local network auto-discovery (UDP 1900/7359) won't work through the bridge network, so add the server to clients by URL. - **Only port 8096 is published.** HTTPS (8920) is handled by Nginx Proxy Manager. Local network auto-discovery (UDP 1900/7359) won't work through the bridge network, so add the server to clients by URL.
- **Photos** are left out on purpose — use the Immich stack for photo libraries. - **Photos** are left out on purpose — use the Immich stack for photo libraries.
- **Hardware transcoding** needs the GPU passed into the container (e.g. `devices: [/dev/dri:/dev/dri]` for Intel/AMD). It's not included by default. - **Hardware transcoding** needs the GPU passed into the container (e.g. `devices: [/dev/dri:/dev/dri]` for Intel/AMD). It's not included by default.
+12
View File
@@ -12,6 +12,18 @@ Lidarr is a music collection manager for Usenet and BitTorrent users. It automat
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
Open http://localhost:8686 in your browser and complete the initial setup wizard: Open http://localhost:8686 in your browser and complete the initial setup wizard:
1. **Choose your UI language** 1. **Choose your UI language**
+12
View File
@@ -17,6 +17,18 @@ BitTorrent client with a full-featured web UI.
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
1. Start the container: `docker compose up -d` 1. Start the container: `docker compose up -d`
2. Open http://localhost:8080 in your browser 2. Open http://localhost:8080 in your browser
3. Follow the initial setup wizard to configure the application 3. Follow the initial setup wizard to configure the application
+50 -8
View File
@@ -12,17 +12,59 @@ Radarr is an automated movie collection manager for Usenet and BitTorrent users.
## Getting Started ## Getting Started
Open http://localhost:7878 in your browser and complete the initial setup wizard: ### Prepare the shared media folder (once per host)
1. **Choose your UI language** All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
2. **Add a download client** — select qBittorrent, enter its host/port/credentials
3. **Add an indexer** — or connect to Prowlarr for automatic indexer sync
Once the wizard finishes, you'll see an empty library. To populate it: ```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
- Go to **Settings → Media Management** and add a **Root Folder** (e.g., `/media/movies`) — this is where your organized movie library will live Check with `ls -ln /data/media` — the owner should be `1000 1000`.
- Click **Add Movie** and search by title — Radarr fetches metadata, posters, and available releases
- Optionally connect a **List** (Trakt, IMDb, etc.) to auto-import movies from your watchlists Open http://localhost:7878 in your browser. Do these in order: the qBittorrent download client and Prowlarr need to be connected before you add movies.
1. **Create the admin account.** On first boot Radarr shows an *Authentication Required* dialog. Set **Authentication Method** to `Forms (Login Page)`, choose a username and password, click **Save**, and sign in.
2. **Copy Radarr's API key.** Go to **Settings → General → Security** and copy the **API Key**. Prowlarr needs it in step 4.
3. **Add the root folder.** Go to **Settings → Media Management → Add Root Folder** and choose `/media/movies`. Under **Importing**, turn on **Use Hardlinks instead of Copy** (click **Show Advanced** at the top if you don't see it).
4. **Connect Prowlarr.** This step is done in **Prowlarr** (http://localhost:9696), not Radarr. Go to **Settings → Apps → `+` → Radarr** and fill in:
| Field | Value |
|---|---|
| Name | `Radarr` |
| Sync Level | `Full Sync` |
| Prowlarr Server | `http://prowlarr:9696` |
| Radarr Server | `http://radarr:7878` |
| API Key | the key from step 2 |
| Sync Categories | leave the defaults (Movies, `2000`-range) |
Click **Test**. A green check means both directions work. Click **Save**.
Then in Prowlarr, go to **Settings → Apps** and click **Sync App Indexers**. Back in Radarr, **Settings → Indexers** should now list every Prowlarr indexer, each named `<indexer> (Prowlarr)`. Don't add or edit indexers in Radarr. Prowlarr owns them and overwrites changes on the next sync.
5. **Add qBittorrent as the download client.** In Radarr, go to **Settings → Download Clients → `+` → qBittorrent**:
| Field | Value |
|---|---|
| Name | `qBittorrent` |
| Host | `qbittorrent` |
| Port | `8080` |
| Username | `admin` |
| Password | `QBT_PASS` from the qBittorrent stack |
| Category | `prowlarr` |
Click **Test**, then **Save**. The category makes qBittorrent save Radarr's downloads to `/media/downloads/prowlarr`, which Radarr can see at the same path.
6. **Add a movie.** Click **Add New**, search for a title, pick the root folder `/media/movies` and a quality profile, tick **Start search for missing movie**, then **Add Movie**. Check progress under **Activity → Queue**.
Optionally connect a **List** (Trakt, IMDb, etc.) under **Settings → Lists** to auto-add movies from your watchlists.
#### If the Prowlarr test fails
- **"Unable to connect to Radarr"**: Prowlarr and Radarr must both be on the `proxy` network. Use container names, never `localhost`. Inside a container, `localhost` is the container itself.
- **"Unauthorized" or 401**: the API key is wrong. Copy it again from Radarr's **Settings → General**.
- **Test passes but no indexers show up in Radarr**: click **Sync App Indexers** in Prowlarr, and check that the indexers in Prowlarr support movie categories (`2000`-range).
- **Searches find nothing**: check **System → Status** in both apps for indexer health warnings. A Cloudflare-protected indexer needs the `flaresolverr` tag in Prowlarr (see the Prowlarr README).
### Download flow ### Download flow
+12
View File
@@ -12,6 +12,18 @@ Readarr is an automated eBook and audiobook collection manager for Usenet and Bi
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
Open http://localhost:8787 in your browser and complete the initial setup wizard: Open http://localhost:8787 in your browser and complete the initial setup wizard:
1. **Choose your UI language** 1. **Choose your UI language**
+12
View File
@@ -12,6 +12,18 @@ Sonarr is an automated TV series collection manager for Usenet and BitTorrent us
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
Open http://localhost:8989 in your browser and complete the initial setup wizard: Open http://localhost:8989 in your browser and complete the initial setup wizard:
1. **Choose your UI language** 1. **Choose your UI language**
+3
View File
@@ -33,6 +33,7 @@ This Docker Compose configuration sets up the Stash application using Docker con
/metadata – host path /data/stash/metadata /metadata – host path /data/stash/metadata
/root/.stash – host path /data/stash/root /root/.stash – host path /data/stash/root
/data – host path /data/stash /data – host path /data/stash
/adult – host path /data/media/adult (Whisparr's root folder)
## Network Notes ## Network Notes
@@ -57,6 +58,8 @@ See compose.yaml for the full set of environment variables.
Point STASH_CONTENT_PATH at your library; first-run wizard configures the library paths. Point STASH_CONTENT_PATH at your library; first-run wizard configures the library paths.
If you use Whisparr, also add `/adult` as a library path. It's the same folder Whisparr imports into (`/data/media/adult` on the host), so turn on a scheduled scan to pick up new files.
## Dockhand Stack, Deploy from Git ## Dockhand Stack, Deploy from Git
Cookbooks Repository Cookbooks Repository
+22 -9
View File
@@ -12,6 +12,18 @@ Whisparr is an automated adult content collection manager for Usenet and BitTorr
## Getting Started ## Getting Started
### Prepare the shared media folder (once per host)
All media apps run as user `1000` and share `/data/media`. If Docker creates the folder itself it's owned by root, and the apps fail with *"Folder '/media/' is not writable by user 'hotio'"*. Create it with the right owner before first start:
```bash
sudo mkdir -p /data/media/{downloads/prowlarr,movies,shows,music,books,adult}
sudo chown -R 1000:1000 /data/media
sudo chmod -R u+rwX,g+rwX /data/media
```
Check with `ls -ln /data/media` — the owner should be `1000 1000`.
Open http://localhost:6969 in your browser and complete the initial setup wizard: Open http://localhost:6969 in your browser and complete the initial setup wizard:
1. **Choose your UI language** 1. **Choose your UI language**
@@ -20,7 +32,7 @@ Open http://localhost:6969 in your browser and complete the initial setup wizard
Once the wizard finishes, you'll see an empty library. To populate it: Once the wizard finishes, you'll see an empty library. To populate it:
- Go to **Settings → Media Management** and add a **Root Folder** (e.g., `/media/adult`) — this is where your organized library will live - Go to **Settings → Media Management** and add a **Root Folder** `/media/adult` — Stash sees this same folder at `/adult`
- Click **Add Movie** and search by title — Whisparr fetches metadata and available releases - Click **Add Movie** and search by title — Whisparr fetches metadata and available releases
- Optionally connect a **List** to auto-import from your watchlists - Optionally connect a **List** to auto-import from your watchlists
@@ -36,7 +48,7 @@ qBittorrent downloads to `/media/downloads/prowlarr` → Whisparr picks it up, r
| `WHISPARR_RESTART` | Restart policy (default: `unless-stopped`) | | `WHISPARR_RESTART` | Restart policy (default: `unless-stopped`) |
| `WHISPARR_PORT` | Published port for the web UI (default: `6969`) | | `WHISPARR_PORT` | Published port for the web UI (default: `6969`) |
| `VOL_PATH` | Base path for persistent data volumes (default: `/data`) | | `VOL_PATH` | Base path for persistent data volumes (default: `/data`) |
| `WHISPARR_MEDIA` | Shared media root on the host (default: `/data/media`), mounted at `/media`. Must be the same folder qBittorrent, Sonarr, Radarr and Jellyfin use | | `WHISPARR_MEDIA` | Shared media root on the host (default: `/data/media`), mounted at `/media`. Downloads land in `/media/downloads/prowlarr`, library in `/media/adult` |
| `TZ` | Container timezone (default: `America/Vancouver`) | | `TZ` | Container timezone (default: `America/Vancouver`) |
## Volume Notes ## Volume Notes
@@ -44,7 +56,7 @@ qBittorrent downloads to `/media/downloads/prowlarr` → Whisparr picks it up, r
| Volume | Purpose | | Volume | Purpose |
|---|---| |---|---|
| `${VOL_PATH:-/data}/whisparr/config` | Application configuration and database | | `${VOL_PATH:-/data}/whisparr/config` | Application configuration and database |
| `${WHISPARR_MEDIA:-/data/media}` → `/media` | Shared media root: downloads in `/media/downloads`, library in `/media/adult` | | `${WHISPARR_MEDIA:-/data/media}` → `/media` | Shared media root: downloads in `/media/downloads/prowlarr`, library in `/media/adult` |
## Network Notes ## Network Notes
@@ -73,15 +85,16 @@ docker run -d \
## Additional Notes / Gotchas ## Additional Notes / Gotchas
- **One shared media folder.** qBittorrent, Sonarr, Radarr, Whisparr and Jellyfin all use `/data/media` on the host, mounted at `/media`, so a download has the same path in every container: no Remote Path Mapping needed, and imports can use hardlinks. Enable **Settings → Media Management → Use Hardlinks instead of Copy**. - **Works with Stash, not Jellyfin.** Whisparr's library is `/data/media/adult` on the host. The Stash stack mounts that same folder at `/adult` (`STASH_ADULT_PATH`), so in Stash add **`/adult`** as a library path (Settings → Library). Jellyfin doesn't mount it.
- **Layout:** `/data/media/downloads/prowlarr` (qBittorrent category `prowlarr`), `/data/media/adult` (Whisparr root, not mounted by Jellyfin by default). - **One shared media folder.** qBittorrent and Whisparr both mount `/data/media` at `/media`, so download paths match (no Remote Path Mapping) and imports can use hardlinks. Enable **Settings → Media Management → Use Hardlinks instead of Copy**.
- **Rescan after import.** Turn on a scheduled library scan in Stash (or scan manually) so new imports show up.
- In the qBittorrent download client settings, set **Category** to `prowlarr`. - In the qBittorrent download client settings, set **Category** to `prowlarr`.
## Dockhand Stack, Deploy from Git ## Dockhand Stack, Deploy from Git
- **Cookbooks Repository** - **Cookbooks Repository**
- **stackname:** whisparr_dev - **stackname:** whisparr
- **Compose file path:** whisparr_dev/compose.yaml - **Compose file path:** whisparr/compose.yaml
- **Additional env file (optional):** whisparr_dev/sample.env - **Additional env file (optional):** whisparr/sample.env
Load `whisparr_dev/sample.env` into the Environment variables in Dockhand, then create the Stack. Load `whisparr/sample.env` into the Environment variables in Dockhand, then create the Stack.