From 8452a10b0ff2a1dc6f63b58f6f6febba687936d6 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Thu, 10 Sep 2026 23:52:14 -0700 Subject: [PATCH 1/8] Show how to move Unpackerr from [[whisparr]] to [[radarr]]. Whisparr uses the Radarr API, so the docs should tell people to configure it as a named Radarr instance. Co-authored-by: Cursor --- docs/install/configuration.md | 6 ++++++ docs/introduction.md | 6 +++--- docs/unpackerr/faq.md | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/install/configuration.md b/docs/install/configuration.md index c68d509..f564e21 100644 --- a/docs/install/configuration.md +++ b/docs/install/configuration.md @@ -79,6 +79,12 @@ UN_FOLDER_1_PATH=/data/downloads/games/ Anything that [has a header](https://github.com/Unpackerr/unpackerr/blob/main/examples/unpackerr.conf.example#L99) with double brackets `[[..]]` can be repeated as many times as you'd like. +### Whisparr + +Whisparr uses the Radarr API. Rename `[[whisparr]]` to `[[radarr]]` (and `UN_WHISPARR_*` +to `UN_RADARR_*`). Set `name = "Whisparr"` if logs and hooks should keep that label. +Existing `[[whisparr]]` blocks still load as Radarr for now. + {/* The Global content is generated from here: https://github.com/Unpackerr/unpackerr/tree/main/init/config */} diff --git a/docs/introduction.md b/docs/introduction.md index 2a70e1f..2dd3c1d 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -6,7 +6,7 @@ description: Introduction and explanation of Unpackerr. Unpackerr is an application that runs on Windows, macOS, Linux, FreeBSD and in Docker. You can use it to watch a download folder and extract new items. -The more common use is to watch Starr apps (Radarr, Sonarr, Readarr, Lidarr, Whisparr) +The more common use is to watch Starr apps (Radarr, Sonarr, Readarr, Lidarr) and extract items they download. It can do both, at the same time even. ## Features @@ -26,7 +26,7 @@ and extract items they download. It can do both, at the same time even. ## Description This application runs as a daemon on your download host. It checks for completed -downloads and extracts them so Lidarr, Radarr, Readarr, Sonarr, and Whisparr may +downloads and extracts them so Lidarr, Radarr, Readarr, and Sonarr may import them. There are a handful of options out there for extracting and deleting files after your client downloads them. I just didn't care for any of them, so I wrote my own. I wanted a small single-binary with reasonable logging that can extract @@ -67,7 +67,7 @@ of these types: ## Starr Logic -The application polls Radarr, Readarr, Sonarr, Lidarr, and Whisparr at the `interval` +The application polls Radarr, Readarr, Sonarr, and Lidarr at the `interval` configured. The queued items are inspected for completeness. When Unpackerr finds an item in a Starr app, the download location is checked for an diff --git a/docs/unpackerr/faq.md b/docs/unpackerr/faq.md index 443c752..9b197cb 100644 --- a/docs/unpackerr/faq.md +++ b/docs/unpackerr/faq.md @@ -19,10 +19,10 @@ Great question! It has two answers. ## 2. What is a Starr app? -Lidarr, Radarr, Readarr, Sonarr, Whisparr +Lidarr, Radarr, Readarr, Sonarr Unpackerr integrates with those apps. Prowlarr is also a Starr app, but Unpackerr does -not talk to it. +not talk to it. Whisparr uses the Radarr API; configure it as a Radarr instance. ## 3. Why does Unpackerr show things not in my Starr app? From f4033d1f5c058acbc48857f221846453e44547e4 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 13 Sep 2026 00:49:27 -0700 Subject: [PATCH 2/8] Document named instance keys and Whisparr as [radarr.whisparr]. Co-authored-by: Cursor --- docs/install/configuration.md | 47 +++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/docs/install/configuration.md b/docs/install/configuration.md index f564e21..d3ad42b 100644 --- a/docs/install/configuration.md +++ b/docs/install/configuration.md @@ -19,8 +19,8 @@ and [example config](https://github.com/Unpackerr/unpackerr/blob/main/examples/u - Setting a log file is strongly recommended. This makes it much easier to troubleshoot problems. - To use a config file in Docker, mount `/config` to the container and Unpackerr will write a config file. - Update the new file at `/config/unpackerr.conf` and restart the container. -- When using a config file you must uncomment at minimum the `[[header]]` - ex. `[[radarr]]`, `url` and `api_key`. +- When using a config file you must uncomment at minimum the `[header.key]` + ex. `[radarr.0]`, `url` and `api_key`. - Uncomment means remove the hash `#` at the beginning of the line. - The config file format is [TOML](https://toml.io). - Indentation is not important like YAML files, but it's used for ease of readability. @@ -35,31 +35,32 @@ Simply fill in a web form, and click a button to get a working config file. ### Two+ Instances -When adding a second (or third+) instance to the __config file__, you just -add another `[[header]]` ex. `[[sonarr]]` and the -`url`/`api_key`/etc under it. When adding a second instance to the __environment -variables__, you must increment the `0` to a `1`. And to a `2` if you have 3 -instances. There is no limit to the number of supported instances. This notation -works for all Starr apps, folders, command hooks, and webhooks. +When adding a second (or third+) instance to the __config file__, use another +named table ex. `[sonarr.0]`, `[sonarr.uhd]` and the +`url`/`api_key`/etc under it. Environment variables use that same key: +`UN_SONARR_0_URL` or `UN_SONARR_uhd_URL`. Array rows from older configs load as +keys `0`, `1`, …. There is no limit to the number of supported instances. This +notation works for all Starr apps, folders, command hooks, and webhooks.
Config examples with multiple instances. - Config File example with two Radarrs and two Folders. -```yaml -[[radarr]] +```toml +[radarr.0] url = "http://radarr" api_key = "32characters" -[[radarr]] +[radarr.uhd] + name = "4K" url = "http://radarr4k" api_key = "32morecharacters" -[[folder]] +[folder.0] path = "/data/downloads/software/" -[[folder]] +[folder.games] path = "/data/downloads/games/" ``` @@ -68,22 +69,24 @@ works for all Starr apps, folders, command hooks, and webhooks. ```shell UN_RADARR_0_URL=http://radarr UN_RADARR_0_API_KEY=32characters -UN_RADARR_1_URL=http://radarr4k -UN_RADARR_1_API_KEY=32morecharacters +UN_RADARR_uhd_URL=http://radarr4k +UN_RADARR_uhd_API_KEY=32morecharacters UN_FOLDER_0_PATH=/data/downloads/software/ -UN_FOLDER_1_PATH=/data/downloads/games/ +UN_FOLDER_games_PATH=/data/downloads/games/ ```
Anything that [has a header](https://github.com/Unpackerr/unpackerr/blob/main/examples/unpackerr.conf.example#L99) -with double brackets `[[..]]` can be repeated as many times as you'd like. +like `[sonarr.0]` or `[folder.software]` can be repeated with a unique key. ### Whisparr -Whisparr uses the Radarr API. Rename `[[whisparr]]` to `[[radarr]]` (and `UN_WHISPARR_*` -to `UN_RADARR_*`). Set `name = "Whisparr"` if logs and hooks should keep that label. -Existing `[[whisparr]]` blocks still load as Radarr for now. +Whisparr uses the Radarr API. Configure it as `[radarr.whisparr]` (env `UN_RADARR_whisparr_*`). Set `name = "Whisparr"` if logs and hooks should keep that label. Existing `[[whisparr]]` blocks still load as Radarr; a UI Save rewrites them to `[radarr.0]`. Changed in v1.0.0 (September 2026). + +### Named instances + +Starr apps, folders, webhooks, and command hooks are identified by a short key, not by list position. In the config file use `[sonarr.uhd]`, `[folder.software]`, `[webhook.discord]`; in env use `UN_SONARR_uhd_URL`, `UN_FOLDER_software_PATH`, `UN_WEBHOOK_discord_URL`. The optional `name` on Starr and hooks is only a label (`name = "Starrs & Stripes"`). Existing `[[sonarr]]` / `[[folder]]` / `[[webhook]]` tables still load as keys `0`, `1`, …. Open that section in the web UI and click Save: Unpackerr rewrites the file to named tables automatically. Changed in v1.0.0 (September 2026). {/* The Global content is generated from here: https://github.com/Unpackerr/unpackerr/tree/main/init/config */} @@ -103,8 +106,8 @@ by setting the value to `filepath:/path/to/file.txt`. In other words, if you wan your Radarr API key to be read from a separate file, instead of storing it directly in the config file or environment variables you can do this: -```json -[[radarr]] +```toml +[radarr.0] url = "https://some.url/radarr" api_key = "filepath:/etc/secrets/radarr.txt" ``` From 95039f92039dc1b5264950294cf6a5f32426948c Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 13 Sep 2026 00:54:46 -0700 Subject: [PATCH 3/8] Drop the UI Save rewrite claim and use [radarr.radarr] in the first example. Co-authored-by: Cursor --- docs/install/configuration.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/install/configuration.md b/docs/install/configuration.md index d3ad42b..3942139 100644 --- a/docs/install/configuration.md +++ b/docs/install/configuration.md @@ -48,7 +48,7 @@ notation works for all Starr apps, folders, command hooks, and webhooks. - Config File example with two Radarrs and two Folders. ```toml -[radarr.0] +[radarr.radarr] url = "http://radarr" api_key = "32characters" @@ -67,8 +67,8 @@ notation works for all Starr apps, folders, command hooks, and webhooks. - Environment Variable example with two Radarrs and two Folders setting the same values as above. ```shell -UN_RADARR_0_URL=http://radarr -UN_RADARR_0_API_KEY=32characters +UN_RADARR_radarr_URL=http://radarr +UN_RADARR_radarr_API_KEY=32characters UN_RADARR_uhd_URL=http://radarr4k UN_RADARR_uhd_API_KEY=32morecharacters UN_FOLDER_0_PATH=/data/downloads/software/ @@ -82,7 +82,7 @@ like `[sonarr.0]` or `[folder.software]` can be repeated with a unique key. ### Whisparr -Whisparr uses the Radarr API. Configure it as `[radarr.whisparr]` (env `UN_RADARR_whisparr_*`). Set `name = "Whisparr"` if logs and hooks should keep that label. Existing `[[whisparr]]` blocks still load as Radarr; a UI Save rewrites them to `[radarr.0]`. Changed in v1.0.0 (September 2026). +Whisparr uses the Radarr API. Configure it as `[radarr.whisparr]` (env `UN_RADARR_whisparr_*`). Set `name = "Whisparr"` if logs and hooks should keep that label. Existing `[[whisparr]]` blocks still load as Radarr. Changed in v1.0.0 (September 2026). ### Named instances From 4e3cccfd35e68e60a9dd1bb1513cb0580a5987f8 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 13 Sep 2026 00:57:05 -0700 Subject: [PATCH 4/8] Use [radarr.radarr] in the config-file header example. Co-authored-by: Cursor --- docs/install/configuration.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/install/configuration.md b/docs/install/configuration.md index 3942139..b1d2543 100644 --- a/docs/install/configuration.md +++ b/docs/install/configuration.md @@ -20,7 +20,7 @@ and [example config](https://github.com/Unpackerr/unpackerr/blob/main/examples/u - To use a config file in Docker, mount `/config` to the container and Unpackerr will write a config file. - Update the new file at `/config/unpackerr.conf` and restart the container. - When using a config file you must uncomment at minimum the `[header.key]` - ex. `[radarr.0]`, `url` and `api_key`. + ex. `[radarr.radarr]`, `url` and `api_key`. - Uncomment means remove the hash `#` at the beginning of the line. - The config file format is [TOML](https://toml.io). - Indentation is not important like YAML files, but it's used for ease of readability. @@ -48,7 +48,7 @@ notation works for all Starr apps, folders, command hooks, and webhooks. - Config File example with two Radarrs and two Folders. ```toml -[radarr.radarr] +[radarr.0] url = "http://radarr" api_key = "32characters" @@ -67,8 +67,8 @@ notation works for all Starr apps, folders, command hooks, and webhooks. - Environment Variable example with two Radarrs and two Folders setting the same values as above. ```shell -UN_RADARR_radarr_URL=http://radarr -UN_RADARR_radarr_API_KEY=32characters +UN_RADARR_0_URL=http://radarr +UN_RADARR_0_API_KEY=32characters UN_RADARR_uhd_URL=http://radarr4k UN_RADARR_uhd_API_KEY=32morecharacters UN_FOLDER_0_PATH=/data/downloads/software/ From 516b9b12587ce04a2ba61d39be16fb968f74dbe6 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Wed, 16 Sep 2026 18:20:40 -0700 Subject: [PATCH 5/8] add v1 advice --- docs/install/choosemethod.md | 3 + docs/install/configuration.md | 24 +++-- docs/install/unraid.md | 77 ++++++++------ docs/install/upgrading.md | 182 ++++++++++++++++++++++++++++++++++ docs/introduction.md | 4 +- sidebars.js | 1 + 6 files changed, 253 insertions(+), 38 deletions(-) create mode 100644 docs/install/upgrading.md diff --git a/docs/install/choosemethod.md b/docs/install/choosemethod.md index 8aba882..3737633 100644 --- a/docs/install/choosemethod.md +++ b/docs/install/choosemethod.md @@ -4,6 +4,9 @@ title: Choose Install Method description: Choose an Unpackerr install method. --- +Coming from 0.16 or earlier? Read [Upgrading to v1](/docs/install/upgrading) before you +pull a new image or package. + We recommend installing Unpackerr the same way you installed your Starr or download apps. If your existing infrastructure exists in Docker, then Unpackerr should probably live in Docker too. diff --git a/docs/install/configuration.md b/docs/install/configuration.md index b1d2543..9b6f3c1 100644 --- a/docs/install/configuration.md +++ b/docs/install/configuration.md @@ -26,12 +26,15 @@ and [example config](https://github.com/Unpackerr/unpackerr/blob/main/examples/u - Indentation is not important like YAML files, but it's used for ease of readability. - You may use `"` or `'` or `'''` or `"""` to wrap strings. Recommend `'` for paths. -### Generator +### Web UI -[Notifiarr](https://notifiarr.com) hosts a configuration file maker. -Simply fill in a web form, and click a button to get a working config file. +- Added in v1.0.0 (September 2026). -- **Access the generator here: https://notifiarr.com/unpackerr** +Unpackerr has a built in Web UI where you can configure all the settings using a validated form. +The Web UI also makes it easy to see what Unpackerr is doing live and to view the extraction history. +This page exists from a time when configuration required editing a file. Now it's for power users. + +**Use the web interface. Don't edit the config file.** ### Two+ Instances @@ -82,11 +85,20 @@ like `[sonarr.0]` or `[folder.software]` can be repeated with a unique key. ### Whisparr -Whisparr uses the Radarr API. Configure it as `[radarr.whisparr]` (env `UN_RADARR_whisparr_*`). Set `name = "Whisparr"` if logs and hooks should keep that label. Existing `[[whisparr]]` blocks still load as Radarr. Changed in v1.0.0 (September 2026). +- Changed in v1.0.0 (September 2026). + +Whisparr uses the Radarr API. Configure it as `[radarr.whisparr]` (env `UN_RADARR_whisparr_*`). +Set `name = "Whisparr"` if logs and hooks should keep that label. ### Named instances -Starr apps, folders, webhooks, and command hooks are identified by a short key, not by list position. In the config file use `[sonarr.uhd]`, `[folder.software]`, `[webhook.discord]`; in env use `UN_SONARR_uhd_URL`, `UN_FOLDER_software_PATH`, `UN_WEBHOOK_discord_URL`. The optional `name` on Starr and hooks is only a label (`name = "Starrs & Stripes"`). Existing `[[sonarr]]` / `[[folder]]` / `[[webhook]]` tables still load as keys `0`, `1`, …. Open that section in the web UI and click Save: Unpackerr rewrites the file to named tables automatically. Changed in v1.0.0 (September 2026). +- Added in v1.0.0 (September 2026). + +Starr apps, folders, webhooks, and command hooks are identified by a short key, not by list position. +In the config file use `[sonarr.uhd]`, `[folder.software]`, `[webhook.discord]`; in env use `UN_SONARR_uhd_URL`, +`UN_FOLDER_software_PATH`, `UN_WEBHOOK_discord_URL`. The optional `name` on Starr and hooks is only a label +(`name = "Starrs & Stripes"`). Existing `[[sonarr]]` / `[[folder]]` / `[[webhook]]` tables still load as keys +`0`, `1`, …. Open that section in the web UI and click Save: Unpackerr rewrites the file to named tables automatically. {/* The Global content is generated from here: https://github.com/Unpackerr/unpackerr/tree/main/init/config */} diff --git a/docs/install/unraid.md b/docs/install/unraid.md index 73eea4f..59b2e49 100644 --- a/docs/install/unraid.md +++ b/docs/install/unraid.md @@ -6,31 +6,39 @@ description: Install Unpackerr on your unRAID server! # unRAID Install -Unpackerr is available in the -[Community Applications](https://github.com/selfhosters/unRAID-CA-templates/blob/main/templates/unpackerr.xml) -on unRAID. Install it from the `Apps` page; see screenshot that follows. +Unpackerr is available in +[Community Applications](https://github.com/selfhosters/unRAID-CA-templates/blob/master/templates/unpackerr.xml) +on unRAID. Install it from the **Apps** page. -![Community Applications Unpackerr install](/img/screenshots/unraid/install1.png "install") +The golift template mounts **appdata** at `/config`, publishes port **5656** for +the web UI, and runs as `--user 99:100`. Configure Sonarr, Radarr, Lidarr, and +the rest in the browser after install. Do not put Starr URLs and API keys back +into environment variables unless you want those fields locked in the UI. -On the install screen, fill in the `URL` and `API_KEY` for one or more of the Starr apps. +Upgrading an existing 0.x container? See [Upgrading to v1](/docs/install/upgrading#unraid). -:::note[Multiple Instances] -If you have, for instance, two Radarrs, you can simply add two new variables: -`UN_RADARR_1_URL` and `UN_RADARR_1_API_KEY`. If you have 3, then increase -the `1` to a `2` and so on. This works for all Starr apps, folders, webhooks and command -hooks. There is no limit to how many you may configure. -::: +![Community Applications Unpackerr install](/img/screenshots/unraid/install1.png "install") -It's also recommended that you set a log file. -Put it in your downloads location; an example follows. +On the install screen, set **Downloads Location** so it matches your Starr apps +(next section). Leave **appdata** at `/mnt/user/appdata/unpackerr/` unless you +prefer another folder. Apply, then open the WebUI. -![Bind volume for Unpackerr log file](/img/screenshots/unraid/bindvolume.png "bind volume") +First login is user `admin`. The password is printed once in the container log +(`Generated temporary UI password`). Change it in Settings. + +:::note[Multiple instances] +Add extra Starr apps, folders, and hooks in the web UI. Each row has a short +key (for example `uhd`). You can still use env vars such as +`UN_RADARR_uhd_URL` if you insist; see +[configuration](/docs/install/configuration#two-instances). +::: :::tip[Download Location] -The most common misconfiguration on unRAID, by far, and it's not even a close second, is -having the correct path mounted for your download location. As you see in the screenshot above, -it's set to `host:/mnt/user/downloads` and `container:/downloads`. This is almost certainly -not what you want. **Do this:** +The most common misconfiguration on unRAID, by far, and it's not even a close +second, is having the correct path mounted for your download location. As you +see in the screenshot below, a host path of `/mnt/user/downloads` with a +container path of `/downloads` is almost certainly not what you want. +**Do this:** 1. Go into Unraid. 1. Click on Docker. @@ -43,31 +51,38 @@ not what you want. **Do this:** ![Starr app volume mounts](/img/screenshots/unraid/starrmounts.png "starr mounts") -If the highlighted portions above are not identical to the one below, then things are bound to work poorly. -In other words, if Unpackerr has `/downloads <-> /mnt/user/downloads` and Sonarr has -`/data <-> /mnt/user/downloads`, Unpackerr will not be able to find your files. In this hypothetical, you -must edit the Unpackerr `/downloads` mount, and change the _Container Path_ to `/data` so it matches Sonarr. +If the highlighted portions above are not identical to the one below, then +things are bound to work poorly. In other words, if Unpackerr has +`/downloads <-> /mnt/user/downloads` and Sonarr has +`/data <-> /mnt/user/downloads`, Unpackerr will not be able to find your files. +In this hypothetical, you must edit the Unpackerr `/downloads` mount, and +change the _Container Path_ to `/data` so it matches Sonarr. ![Unpackerr volume mount](/img/screenshots/unraid/unpackerrmount.png "unpackerr mount") ::: ## Permissions -Set the UID and GID by adding `--user uid:gid` to the `Extra Parameters` -section of the unraid template after enabling the `Advanced` view. -![Enable Docker advanced view](/img/screenshots/unraid/advancedview.png "advanced view") -You must make these match your Starr app so hard links work correctly. -**Other containers, use env variables such as `PUID` and `PGID`, but the -Go Lift unpackerr container does not use these.** -e.g. If Sonarr has `PUID` of `99` and `PGID` of `100`, then you must -add **`--user 99:100`** to `Extra Parameters` as shown below. +The template Extra Parameters already include `--user 99:100` (unRAID +`nobody:users`), which matches typical linuxserver Starr containers. Change it +if your Sonarr/Radarr uid:gid is different. **Other containers use `PUID` and +`PGID`; the golift image does not.** ![Unpackerr Extra Parameters UID and GID](/img/screenshots/unraid/extraparameters.png "extra parameters") +The appdata folder and the config file inside it must be writable by that +same user, or the UI cannot Save. If needed: + +```bash +chown -R 99:100 /mnt/user/appdata/unpackerr +``` + ## Video Guide This guide is provided by a community member, [@Celsian](https://www.youtube.com/@Celsian), -consider giving him a sub and a like. +consider giving him a sub and a like. It was recorded against the old env-var +template; ignore the Sonarr/Radarr variable fields and use the web UI instead. +The download-path matching still applies.