Skip to content

Commit 516b9b1

Browse files
committed
add v1 advice
1 parent 4e3cccf commit 516b9b1

6 files changed

Lines changed: 253 additions & 38 deletions

File tree

‎docs/install/choosemethod.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ title: Choose Install Method
44
description: Choose an Unpackerr install method.
55
---
66

7+
Coming from 0.16 or earlier? Read [Upgrading to v1](/docs/install/upgrading) before you
8+
pull a new image or package.
9+
710
We recommend installing Unpackerr the same way you installed your
811
Starr or download apps. If your existing infrastructure exists in Docker,
912
then Unpackerr should probably live in Docker too.

‎docs/install/configuration.md‎

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@ and [example config](https://github.com/Unpackerr/unpackerr/blob/main/examples/u
2626
- Indentation is not important like YAML files, but it's used for ease of readability.
2727
- You may use `"` or `'` or `'''` or `"""` to wrap strings. Recommend `'` for paths.
2828

29-
### Generator
29+
### Web UI
3030

31-
[Notifiarr](https://notifiarr.com) hosts a configuration file maker.
32-
Simply fill in a web form, and click a button to get a working config file.
31+
- Added in v1.0.0 (September 2026).
3332

34-
- **Access the generator here: https://notifiarr.com/unpackerr**
33+
Unpackerr has a built in Web UI where you can configure all the settings using a validated form.
34+
The Web UI also makes it easy to see what Unpackerr is doing live and to view the extraction history.
35+
This page exists from a time when configuration required editing a file. Now it's for power users.
36+
37+
**Use the web interface. Don't edit the config file.**
3538

3639
### Two+ Instances
3740

@@ -82,11 +85,20 @@ like `[sonarr.0]` or `[folder.software]` can be repeated with a unique key.
8285

8386
### Whisparr
8487

85-
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).
88+
- Changed in v1.0.0 (September 2026).
89+
90+
Whisparr uses the Radarr API. Configure it as `[radarr.whisparr]` (env `UN_RADARR_whisparr_*`).
91+
Set `name = "Whisparr"` if logs and hooks should keep that label.
8692

8793
### Named instances
8894

89-
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).
95+
- Added in v1.0.0 (September 2026).
96+
97+
Starr apps, folders, webhooks, and command hooks are identified by a short key, not by list position.
98+
In the config file use `[sonarr.uhd]`, `[folder.software]`, `[webhook.discord]`; in env use `UN_SONARR_uhd_URL`,
99+
`UN_FOLDER_software_PATH`, `UN_WEBHOOK_discord_URL`. The optional `name` on Starr and hooks is only a label
100+
(`name = "Starrs & Stripes"`). Existing `[[sonarr]]` / `[[folder]]` / `[[webhook]]` tables still load as keys
101+
`0`, `1`, …. Open that section in the web UI and click Save: Unpackerr rewrites the file to named tables automatically.
90102

91103
{/* The Global content is generated from here: https://github.com/Unpackerr/unpackerr/tree/main/init/config */}
92104
<Global />

‎docs/install/unraid.md‎

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,39 @@ description: Install Unpackerr on your unRAID server!
66

77
# unRAID Install
88

9-
Unpackerr is available in the
10-
[Community Applications](https://github.com/selfhosters/unRAID-CA-templates/blob/main/templates/unpackerr.xml)
11-
on unRAID. Install it from the `Apps` page; see screenshot that follows.
9+
Unpackerr is available in
10+
[Community Applications](https://github.com/selfhosters/unRAID-CA-templates/blob/master/templates/unpackerr.xml)
11+
on unRAID. Install it from the **Apps** page.
1212

13-
![Community Applications Unpackerr install](/img/screenshots/unraid/install1.png "install")
13+
The golift template mounts **appdata** at `/config`, publishes port **5656** for
14+
the web UI, and runs as `--user 99:100`. Configure Sonarr, Radarr, Lidarr, and
15+
the rest in the browser after install. Do not put Starr URLs and API keys back
16+
into environment variables unless you want those fields locked in the UI.
1417

15-
On the install screen, fill in the `URL` and `API_KEY` for one or more of the Starr apps.
18+
Upgrading an existing 0.x container? See [Upgrading to v1](/docs/install/upgrading#unraid).
1619

17-
:::note[Multiple Instances]
18-
If you have, for instance, two Radarrs, you can simply add two new variables:
19-
`UN_RADARR_1_URL` and `UN_RADARR_1_API_KEY`. If you have 3, then increase
20-
the `1` to a `2` and so on. This works for all Starr apps, folders, webhooks and command
21-
hooks. There is no limit to how many you may configure.
22-
:::
20+
![Community Applications Unpackerr install](/img/screenshots/unraid/install1.png "install")
2321

24-
It's also recommended that you set a log file.
25-
Put it in your downloads location; an example follows.
22+
On the install screen, set **Downloads Location** so it matches your Starr apps
23+
(next section). Leave **appdata** at `/mnt/user/appdata/unpackerr/` unless you
24+
prefer another folder. Apply, then open the WebUI.
2625

27-
![Bind volume for Unpackerr log file](/img/screenshots/unraid/bindvolume.png "bind volume")
26+
First login is user `admin`. The password is printed once in the container log
27+
(`Generated temporary UI password`). Change it in Settings.
28+
29+
:::note[Multiple instances]
30+
Add extra Starr apps, folders, and hooks in the web UI. Each row has a short
31+
key (for example `uhd`). You can still use env vars such as
32+
`UN_RADARR_uhd_URL` if you insist; see
33+
[configuration](/docs/install/configuration#two-instances).
34+
:::
2835

2936
:::tip[Download Location]
30-
The most common misconfiguration on unRAID, by far, and it's not even a close second, is
31-
having the correct path mounted for your download location. As you see in the screenshot above,
32-
it's set to `host:/mnt/user/downloads` and `container:/downloads`. This is almost certainly
33-
not what you want. **Do this:**
37+
The most common misconfiguration on unRAID, by far, and it's not even a close
38+
second, is having the correct path mounted for your download location. As you
39+
see in the screenshot below, a host path of `/mnt/user/downloads` with a
40+
container path of `/downloads` is almost certainly not what you want.
41+
**Do this:**
3442

3543
1. Go into Unraid.
3644
1. Click on Docker.
@@ -43,31 +51,38 @@ not what you want. **Do this:**
4351

4452
![Starr app volume mounts](/img/screenshots/unraid/starrmounts.png "starr mounts")
4553

46-
If the highlighted portions above are not identical to the one below, then things are bound to work poorly.
47-
In other words, if Unpackerr has `/downloads <-> /mnt/user/downloads` and Sonarr has
48-
`/data <-> /mnt/user/downloads`, Unpackerr will not be able to find your files. In this hypothetical, you
49-
must edit the Unpackerr `/downloads` mount, and change the _Container Path_ to `/data` so it matches Sonarr.
54+
If the highlighted portions above are not identical to the one below, then
55+
things are bound to work poorly. In other words, if Unpackerr has
56+
`/downloads <-> /mnt/user/downloads` and Sonarr has
57+
`/data <-> /mnt/user/downloads`, Unpackerr will not be able to find your files.
58+
In this hypothetical, you must edit the Unpackerr `/downloads` mount, and
59+
change the _Container Path_ to `/data` so it matches Sonarr.
5060

5161
![Unpackerr volume mount](/img/screenshots/unraid/unpackerrmount.png "unpackerr mount")
5262
:::
5363

5464
## Permissions
5565

56-
Set the UID and GID by adding `--user uid:gid` to the `Extra Parameters`
57-
section of the unraid template after enabling the `Advanced` view.
58-
![Enable Docker advanced view](/img/screenshots/unraid/advancedview.png "advanced view")
59-
You must make these match your Starr app so hard links work correctly.
60-
**Other containers, use env variables such as `PUID` and `PGID`, but the
61-
Go Lift unpackerr container does not use these.**
62-
e.g. If Sonarr has `PUID` of `99` and `PGID` of `100`, then you must
63-
add **`--user 99:100`** to `Extra Parameters` as shown below.
66+
The template Extra Parameters already include `--user 99:100` (unRAID
67+
`nobody:users`), which matches typical linuxserver Starr containers. Change it
68+
if your Sonarr/Radarr uid:gid is different. **Other containers use `PUID` and
69+
`PGID`; the golift image does not.**
6470

6571
![Unpackerr Extra Parameters UID and GID](/img/screenshots/unraid/extraparameters.png "extra parameters")
6672

73+
The appdata folder and the config file inside it must be writable by that
74+
same user, or the UI cannot Save. If needed:
75+
76+
```bash
77+
chown -R 99:100 /mnt/user/appdata/unpackerr
78+
```
79+
6780
## Video Guide
6881

6982
This guide is provided by a community member, [@Celsian](https://www.youtube.com/@Celsian),
70-
consider giving him a sub and a like.
83+
consider giving him a sub and a like. It was recorded against the old env-var
84+
template; ignore the Sonarr/Radarr variable fields and use the web UI instead.
85+
The download-path matching still applies.
7186

7287
<iframe height="500" width="100%" src="https://www.youtube.com/embed/FfJqgm69ydA"
7388
frameborder="0" allowfullscreen title="UnRAID Video Guide"

‎docs/install/upgrading.md‎

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
---
2+
id: upgrading
3+
title: Upgrading to v1
4+
description: What changed in Unpackerr v1 and how to upgrade an existing install.
5+
---
6+
7+
Unpackerr v1 (the next release after 0.16) adds a built-in web UI and an HTTP API.
8+
Starr apps, folders, and hooks can be edited in the browser. Environment variables
9+
still work, but values owned by env are locked in the UI, so most people should
10+
move those settings into the config file.
11+
12+
If you are on 0.16.x or earlier today, read this page before you pull `latest`.
13+
14+
## What changed
15+
16+
- A web UI on port **5656** (queue, history, logs, settings, API docs).
17+
- The HTTP server starts whenever `listen_addr` is set. The default is
18+
`0.0.0.0:5656`. Set `listen_addr = ""` to turn the server off.
19+
- First start with an empty `ui_password` prints a temporary `admin` password
20+
in the log. Change it in the UI. It is not shown again. `unpackerr --reset`
21+
writes a new one and exits.
22+
- Saving settings from the UI rewrites the config file. The process user must
23+
be able to write that file.
24+
- Starr apps, folders, webhooks, and command hooks use named keys
25+
(`[sonarr.uhd]`, env `UN_SONARR_uhd_URL`). Old `[[sonarr]]` / `[[folder]]`
26+
tables still load as `0`, `1`, ….
27+
- **Whisparr** is no longer its own app. Treat it as Radarr. See
28+
[Whisparr](#whisparr).
29+
- Prometheus scrapes at `/metrics` must send an API key with
30+
`system:metrics:read` (`Authorization: Bearer` or `X-Api-Key`).
31+
- Docker: mount `/config` if you want the UI to persist settings. Unpackerr
32+
writes `/config/unpackerr.conf` when that directory exists.
33+
34+
The extractor, Starr polling, and folder watch behave as they did. This release
35+
is mostly about operating the app from a browser instead of a pile of `UN_*`
36+
variables.
37+
38+
## Config file permissions
39+
40+
The UI Save button rewrites the active config file. If that file (or its
41+
directory) is not writable, saves return an error and the change does not stick.
42+
43+
### Linux packages
44+
45+
The service user is `unpackerr`. Packages install `/etc/unpackerr/unpackerr.conf`
46+
mode `0644` and the post-install script chowns leftover `root:root` files.
47+
48+
If you created or edited the file as root, or Save fails:
49+
50+
```bash
51+
sudo chown unpackerr:unpackerr /etc/unpackerr /etc/unpackerr/unpackerr.conf
52+
sudo chmod 0755 /etc/unpackerr
53+
sudo chmod 0644 /etc/unpackerr/unpackerr.conf
54+
sudo systemctl restart unpackerr
55+
```
56+
57+
If you overrode `User=` / `Group=` in a systemd drop-in, chown the file to
58+
**that** user instead.
59+
60+
Logs: `journalctl -u unpackerr -e` (temporary UI password is in here on first
61+
start). Open `http://<host>:5656/`.
62+
63+
### Docker and Compose
64+
65+
Mount an appdata directory on `/config`, and run as the same uid:gid that owns
66+
that directory and your downloads.
67+
68+
```yaml
69+
ports:
70+
- "5656:5656"
71+
volumes:
72+
- /mnt/appdata/unpackerr:/config
73+
- /mnt/storage/downloads:/downloads
74+
user: "99:100"
75+
```
76+
77+
If `/config/unpackerr.conf` was created as root and you later set `user:`,
78+
chown the host folder:
79+
80+
```bash
81+
sudo chown -R 99:100 /mnt/appdata/unpackerr
82+
```
83+
84+
Use the uid:gid from `user:` (unRAID nobody is `99:100`). Hotio images use
85+
`PUID`/`PGID` instead of `user:`; chown to those ids.
86+
87+
Drop `UN_SONARR_*`, `UN_RADARR_*`, and the other Starr/hook env vars after the
88+
settings live in the file. While they remain set, the UI shows those fields as
89+
coming from the environment and will not Save over them.
90+
91+
### Windows and macOS
92+
93+
Tray and menu-bar installs already write under your user
94+
(`~/.unpackerr` or the folder you chose). No extra chmod is usually needed.
95+
Open the UI on `http://127.0.0.1:5656/` after upgrade. The first password is in
96+
**Logs**.
97+
98+
### Seedbox / no-root binary
99+
100+
Keep the config next to the binary (`~/unpackerr/unpackerr.conf`) owned by
101+
your shell user (`chmod 0600` is fine). Listen on a port your account may bind;
102+
the default `0.0.0.0:5656` is fine on a seedbox if the provider allows it.
103+
104+
## unRAID
105+
106+
The [Community Applications](https://github.com/selfhosters/unRAID-CA-templates)
107+
template used to be env-var only: Sonarr/Radarr/Lidarr URLs, API keys, timers,
108+
and a log path, with no `/config` and no port. v1 wants an appdata folder, port
109+
**5656**, and almost none of those variables.
110+
111+
:::tip[Easiest path]
112+
Remove the Unpackerr container (keep the downloads mount path in mind) and
113+
install it again from Apps. The updated template adds `/config`, publishes
114+
5656, and sets `--user 99:100`. Then configure Starr apps in the web UI.
115+
:::
116+
117+
### Keep the existing container
118+
119+
If you would rather edit the current docker:
120+
121+
1. Enable **Advanced View**.
122+
1. Add a path: container `/config`, host `/mnt/user/appdata/unpackerr/`
123+
(rw).
124+
1. Add a port: container `5656`, host `5656`.
125+
1. Copy any Starr URLs and API keys you still need (screenshot or notepad).
126+
Removing the env vars before they exist in a config file **drops** those
127+
apps until you add them in the UI.
128+
1. Remove the old variables: `UN_DEBUG`, `UN_LOG_FILE`,
129+
`UN_SONARR_*`, `UN_RADARR_*`, `UN_LIDARR_*`, `UN_TIMEOUT`, `UN_PARALLEL`,
130+
`UN_INTERVAL`, `UN_DELETE_DELAY`, `UN_START_DELAY`, `UN_RETRY_DELAY`, and
131+
any extra `UN_*` you added. Leave the **Downloads Location** path mount.
132+
1. Extra Parameters should include `--user 99:100` (or the same uid:gid as
133+
Sonarr/Radarr). The golift image does **not** use `PUID`/`PGID`.
134+
1. Apply. First start writes `/config/unpackerr.conf`. Open the WebUI, log in
135+
as `admin` with the password from the container log, add your Starr apps,
136+
Save.
137+
138+
If Save fails, the appdata folder is probably still `root`. From a terminal:
139+
140+
```bash
141+
chown -R 99:100 /mnt/user/appdata/unpackerr
142+
```
143+
144+
Match `99:100` to Extra Parameters.
145+
146+
The download mount must still be identical to Sonarr/Radarr/Lidarr. That has
147+
not changed; see [unRAID](/docs/install/unraid).
148+
149+
## Whisparr
150+
151+
Whisparr speaks the Radarr API. In v1 it is a Radarr instance.
152+
153+
In the config file, rename the table and optionally keep the label:
154+
155+
```toml
156+
# before
157+
[[whisparr]]
158+
url = "http://whisparr:6969"
159+
api_key = "32characters"
160+
161+
# after
162+
[radarr.whisparr]
163+
name = "Whisparr"
164+
url = "http://whisparr:6969"
165+
api_key = "32characters"
166+
```
167+
168+
Environment variables: `UN_WHISPARR_*` becomes `UN_RADARR_whisparr_*`
169+
(for example `UN_RADARR_whisparr_URL`). Prefer putting this in the file and
170+
dropping the env vars.
171+
172+
## After upgrade
173+
174+
1. Confirm the UI loads and you can Save a harmless setting (or a Starr
175+
instance).
176+
2. Watch one completed download extract the way it did on 0.16.
177+
3. If you scrape Prometheus, add an API key with `system:metrics:read`.
178+
4. Optional: open the Starr (or folder/hook) page and Save once so named
179+
tables replace leftover `[[sonarr]]` arrays.
180+
181+
Need a hand? [Go Lift Discord](https://golift.io/discord) or
182+
[GitHub issues](https://github.com/Unpackerr/unpackerr/issues/new).

‎docs/introduction.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ and extract items they download. It can do both, at the same time even.
1212
## Features
1313

1414
- Simple to use.
15+
- Built-in web UI (queue, history, logs, settings) on port 5656.
1516
- Rich logs.
1617
- Extracts entire folders.
1718
- Extracts your subs files too.
@@ -27,7 +28,8 @@ and extract items they download. It can do both, at the same time even.
2728

2829
This application runs as a daemon on your download host. It checks for completed
2930
downloads and extracts them so Lidarr, Radarr, Readarr, and Sonarr may
30-
import them. There are a handful of options out there for extracting and deleting
31+
import them. v1 adds a web UI; existing `0.x` installs should read
32+
[Upgrading to v1](/docs/install/upgrading). There are a handful of options out there for extracting and deleting
3133
files after your client downloads them. I just didn't care for any of them, so I
3234
wrote my own. I wanted a small single-binary with reasonable logging that can extract
3335
downloaded archives and clean up the mess after they've been imported.

‎sidebars.js‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
const sidebars = {
33
someSidebar: [
44
'introduction',
5+
'install/upgrading',
56
{
67
Installation: [
78
'install/choosemethod',

0 commit comments

Comments
 (0)