Repository navigation
TrueNAS
The stack runs on TrueNAS SCALE 24.10 (Electric Eel) and later, which run apps on Docker. Earlier releases ran apps on Kubernetes and are not supported.
There are two ways to run it:
-
From the TrueNAS shell (recommended). It's the same as any Linux host, with
sudoin front.init.sh, the VPN overlays, profiles and wranglarr's updates all work as documented. The containers don't appear on the Apps screen. - From the Apps screen ("Install via YAML"). Optional, after the shell route. The stack then shows up as one app that you can start and stop there. See the Apps screen.
This page follows TrueNAS's documented behaviour, but it has not yet been run on a TrueNAS machine. If something differs on yours, please report it.
In Datasets, on a data pool (tank below), create two datasets:
| Dataset | Holds | Preset |
|---|---|---|
tank/apps/arrs |
the stack: this repository, .env, appdata/ (app configs, Postgres, backups) |
Generic |
tank/data |
downloads and media: torrents/, usenet/, media/movies, media/tv, media/music
|
Generic, or SMB if you share the media over SMB |
Two rules:
-
Make
torrents,usenetandmediaplain folders insidetank/data, not child datasets. Each ZFS dataset is its own filesystem, and a hardlink can't cross from one to another. With child datasets every import becomes a full copy and seeding torrents take up twice the space. The setup wizard flags this. -
Don't use the SMB preset for
tank/apps/arrs. It blockschmod, and Postgres won't initialise its data folder without it.
Who owns them. The containers run as PUID:PGID. Either:
- use TrueNAS's built-in apps user,
568:568. Give both datasets to it: Datasets → the dataset → Permissions → Edit, set the owner user and group toapps, tick Apply recursively. Or - use your own TrueNAS user's uid and gid, or a dedicated one (Security). Credentials → Users shows them.
Your stack folder is then /mnt/tank/apps/arrs and DATA_ROOT is /mnt/tank/data.
Don't put either one in your home directory or anywhere outside /mnt/<pool>. That's TrueNAS's boot pool, and upgrades replace it. The wizard flags that too.
Open System → Shell, or SSH in as your admin user. Each docker command
needs sudo.
cd /mnt/tank/apps
sudo git clone https://github.com/Wranglarrr/Wranglarr arrs
cd arrsIf git isn't there, run it from a container:
sudo docker run --rm -v /mnt/tank/apps:/git alpine/git clone https://github.com/Wranglarrr/Wranglarr arrssudo docker run --rm -it -p 8788:8788 \
-v /mnt/tank/apps/arrs:/stack \
-v /mnt/tank/data:/data \
ghcr.io/wranglarrr/wranglarr:latest wranglarr-setupThat pulls the published image. To run one you built yourself, see The wranglarr image.
It prints a link ending in ?t= and a code. Open it with your TrueNAS
address in place of localhost: http://<truenas-ip>:8788/?t=<code>. The Quickstart
walks through each step. On TrueNAS:
-
System: PUID and PGID start as
568when the wizard sees a ZFS dataset on/data. Change them if you used your own user in step 1. -
Storage:
APPDATAstays./appdata.DATA_ROOTis/mnt/tank/data. The check shows the dataset name, and warns about child datasets, the boot pool, or a datasetPUID:PGIDcan't write. - Network: pick ports that nothing else uses. TrueNAS's own UI takes 80 and 443, and your other apps have theirs (Apps → each app → Ports).
Stop the wizard with Ctrl-C once it has written the files.
sudo ./scripts/init.shIt does the same as on any other host (see Setup). Running as
root, it also gives the download folders it creates (torrents/radarr,
usenet/complete/sonarr, …) to PUID:PGID, so the apps can write them.
Later commands are the usual ones with sudo:
sudo docker compose ps
sudo docker compose logs qbittorrent | grep -i password
sudo docker compose up -d wranglarrEverything from step 4 of the Quickstart on is the same. Open wranglarr at http://<truenas-ip>:8787.
The containers have restart: unless-stopped, so they start again when
TrueNAS starts its Docker service. That only happens once an apps pool is
set (Apps → Configuration → Choose Pool), even if you run no TrueNAS
apps.
Some 25.10 builds have been reported not to start Docker at boot. If the stack is down after a reboot, check Apps. Unsetting and setting the pool again, or a second reboot, has fixed it for others (forum thread).
-
Backups go to
appdata/backupson thetank/apps/arrsdataset. A periodic snapshot task on that dataset, plus a replication task to another pool or machine, gives you an off-box copy. Each version folder runs without wranglarr (Backups and Restore). -
Downloads and media on
tank/dataaren't part of wranglarr's backups. Snapshot or replicate that dataset as you would any media share. -
Image updates: use wranglarr's Updates page. Only the containers listed in
wranglarr.tomlare touched, never TrueNAS's own apps. If you run the stack from the Apps screen, don't also update it there. See Container Updates.
TrueNAS's Apps → Discover Apps → ⋮ → Install via YAML takes one compose
file. That screen doesn't read .env and runs no init.sh. So set the stack
up from the shell first (steps 1–4), then hand TrueNAS the finished
configuration:
cd /mnt/tank/apps/arrs
sudo docker compose down
sudo docker compose config > truenas-app.yamlconfig reads COMPOSE_FILE from .env, so a VPN layout is included.
The result is the stack as it runs now:
- only the services enabled in
COMPOSE_PROFILES; - every value from
.envfilled in; - absolute paths;
- wranglarr's image as
WRANGLARR_IMAGEnames it. The Apps screen can pull the published image; one you built (wranglarr:local) must stay on this machine.
Paste it into Install via YAML, give the app a name (arrs) and save.
-
truenas-app.yamlcontains your Postgres password and API keys, and so does the YAML TrueNAS stores. Delete the file once the app is saved. - After changing
.env(a new service, a password), run the three commands again and paste the result into the app's Edit. - Don't start the stack from the shell as well. Use the app's Stop and Start.
- TrueNAS names the compose project
ix-arrs. Containers keep the names fromcompose.yaml(radarr,wranglarr, …), which is what wranglarr looks for.
- Installing custom apps (TrueNAS docs)
- Install via YAML screen (TrueNAS 25.10 docs)
- Docker Compose: install via YAML (forum)
- ACL permissions with Docker Compose (forum)
This wiki is built from wiki/ in the repo, and edits made here are replaced on the next build: change the page there instead. Also at https://wranglarrr.github.io/Wranglarr/.
Start here
- Overview
- Quickstart
- Setup
- Bringing in existing apps
- TrueNAS SCALE
- Environment variables
- Login
- App logins and AuthTunnel
- Security
Using wranglarr
- Dashboard, links and logins
- Notifications
- Live status
- Connections: media servers, Seerr
- Backups and restore
- Container updates
- Release notes
- Roadmap
- App connections
- Indexers
- Community configs
- Shared settings
Services
Networking
Reference