|
| 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). |
0 commit comments