What is Unpackerr?Unpackerr runs as a daemon on your download host or seedbox. It checks for completed downloads and extracts them so Lidarr, Radarr, Readarr, and Sonarr may import them. If your problem is RAR files getting stuck in your activity queue, then this is your solution.
Not a Starr app user, and just need to extract files? It does that too. Unpackerr can run standalone and extract files found in a "watch" folder — point it at any download folder and it will happily extract everything that lands there.
Unpackerr extracts rar, tar, tgz, gz, zip, 7z, bz2, tbz2, and iso, recursively, including archives nested inside archives. Multi-file and password-protected RAR and 7-Zip archives are supported.
Unpackerr has no web interface. It runs silently in the background, so the only way to confirm it's working is by reading its logs. That's by design — once it's set up, you shouldn't have to look at it.
TrueNAS
Docker ComposeThere is an official Unpackerr app in the TrueNAS Community catalog, so no Dockge or compose file is required.
unpackerr.| Field | What to enter |
|---|---|
| Type | Sonarr, Radarr, Lidarr, Readarr, or Whisparr |
| URL | Your TrueNAS LAN IP + the app's port (see warning below) |
| API Key | From the app: Settings → General → Security → API Key |
| Path | The container path Unpackerr should check — must match your Storage mount (ex. /media/downloads) |
| Protocols | Torrent, Usenet, or both — match your download clients |
| Timeout | 10 seconds (default) |
| Delete Delay | 300 seconds / 5 min (default) |
| Delete Original | Leave unchecked if you seed |
| Syncthing | Leave off unless the path is Syncthing-managed |
The URL must use your host IP, not a container name. Inside a compose file
http://sonarr:8989works because the apps share a Docker network. TrueNAS catalog apps do not share a network by default — they publish ports on the host — so use your TrueNAS box's LAN IP and the app's port, e.g.http://192.168.1.50:8989(Radarr7878, Lidarr8686, Readarr8787, Whisparr6969).
The wizard often pre-fills two Path boxes and two Protocol boxes. You only need one of each — remove the extras with the ✕. Add a second only if you genuinely have a second value (e.g. a
Usenetprotocol alongsideTorrent).
568:568 (the host apps user). Make sure 568 has read/write on your downloads dataset./mnt/tank/media) and set the Mount Path to the container side (ex. /media).5656 for the Unpackerr Grafana dashboard.This is the step everyone gets wrong. The Mount Path in Storage (plus its subfolder) must equal the Path you typed in Settings — and both must point to the same place your Sonarr and qBittorrent already use. If you mount
/mnt/tank/media → /media, then the Path is/media/downloads. If these don't line up, Unpackerr starts perfectly and silently finds nothing to extract.
Prefer to run it as code in Dockge? Use the official golift/unpackerr image. Edit the URL, API Key, and PATHS_0 for each app you use, and delete the blocks for apps you don't run.
services:
unpackerr:
image: golift/unpackerr
container_name: unpackerr
volumes:
# You need at least this one volume mapped so Unpackerr can find your files to extract.
# Make sure this matches your Starr apps; the folder mount (/downloads or /media) should be identical.
- /mnt/tank/media:/media
restart: unless-stopped
user: 568:568
environment:
- TZ=America/New_York
# General config
- UN_DEBUG=false
- UN_INTERVAL=2m
- UN_START_DELAY=1m
- UN_RETRY_DELAY=5m
- UN_MAX_RETRIES=3
- UN_PARALLEL=1
- UN_FILE_MODE=0644
- UN_DIR_MODE=0755
# Sonarr Config
- UN_SONARR_0_URL=http://sonarr:8989
- UN_SONARR_0_API_KEY=YOUR_SONARR_API_KEY
- UN_SONARR_0_PATHS_0=/media/downloads
- UN_SONARR_0_PROTOCOLS=torrent
- UN_SONARR_0_TIMEOUT=10s
- UN_SONARR_0_DELETE_ORIG=false
- UN_SONARR_0_DELETE_DELAY=5m
# Radarr Config
- UN_RADARR_0_URL=http://radarr:7878
- UN_RADARR_0_API_KEY=YOUR_RADARR_API_KEY
- UN_RADARR_0_PATHS_0=/media/downloads
- UN_RADARR_0_PROTOCOLS=torrent
- UN_RADARR_0_TIMEOUT=10s
- UN_RADARR_0_DELETE_ORIG=false
- UN_RADARR_0_DELETE_DELAY=5m
# Lidarr Config
- UN_LIDARR_0_URL=http://lidarr:8686
- UN_LIDARR_0_API_KEY=YOUR_LIDARR_API_KEY
- UN_LIDARR_0_PATHS_0=/media/downloads
- UN_LIDARR_0_PROTOCOLS=torrent
- UN_LIDARR_0_TIMEOUT=10s
- UN_LIDARR_0_DELETE_ORIG=false
- UN_LIDARR_0_DELETE_DELAY=5m
# Readarr Config
- UN_READARR_0_URL=http://readarr:8787
- UN_READARR_0_API_KEY=YOUR_READARR_API_KEY
- UN_READARR_0_PATHS_0=/media/downloads
- UN_READARR_0_PROTOCOLS=torrent
- UN_READARR_0_TIMEOUT=10s
- UN_READARR_0_DELETE_ORIG=false
- UN_READARR_0_DELETE_DELAY=5m
# Web Server / Metrics (optional — for Grafana)
- UN_WEBSERVER_METRICS=false
- UN_WEBSERVER_LISTEN_ADDR=0.0.0.0:5656
Unlike the TrueNAS app, the compose method can use container names like
http://sonarr:8989for the URL — as long as Unpackerr and your Starr apps share the same Docker network.
568:568 for apps.For a full reference of every configuration option with examples, see the Unpackerr documentation.
A few options worth knowing about, set as environment variables (Docker) or wizard fields (TrueNAS):
| Option | Default | What it does |
|---|---|---|
UN_INTERVAL |
2m |
How often Unpackerr polls your Starr apps |
..._DELETE_DELAY |
5m |
How long after import before extracted files are removed |
UN_PARALLEL |
1 |
How many extractions run at once (raise on powerful hardware) |
UN_MAX_RETRIES |
3 |
Retry attempts before giving up on an archive |
UN_FOLDER_0_PATH |
(empty) | Watch-folder path for non-Starr extraction |
UN_WEBSERVER_METRICS |
false |
Exposes a Prometheus metrics endpoint on :5656 |
Password-protected archives: Unpackerr can crack password-protected RAR/7-Zip if given a password list, but a wrong password forces it to read the entire archive before failing. A long password list will dramatically slow extractions and hammer your disk — use sparingly.
3 · Video