Downloads & folder layout (Holly /mnt/user/downloads)¶
How the download clients and the arr stack share the downloads share on Holly, and the
intended folder structure* so the share stays legible if browsed manually.
The flow¶
flowchart LR
P[Prowlarr<br/>indexers] --> R[Radarr / Sonarr]
R -->|torrents| Q[qBittorrent]
R -->|usenet| N[NZBGet]
Q --> C[/downloads/complete/...]
N --> C
C -->|import: move/hardlink| M[/mnt/user/Media]
R -.->|manages import| C
A grab goes to qBittorrent (torrent) or NZBGet (usenet); on completion it lands under
downloads/complete/<category>/; Radarr/Sonarr import it into /mnt/user/Media (move
or hardlink) for indexing. The copy left in downloads/ is staging — safe to remove once
imported and (for torrents) no longer seeding.
Intended structure¶
/mnt/user/downloads/
├── incomplete/ # in-progress (qBittorrent temp + NZBGet InterDir) - never import from here
├── complete/ # finished, awaiting/after *arr import
│ ├── movies/ # Radarr category
│ ├── tv/ # Sonarr category
│ └── music/ # (if used)
└── watch/ # .nzb / .torrent drop dir
Who owns which path¶
| App | Setting | Value |
|---|---|---|
| qBittorrent | Default Save Path | /downloads/complete (container path) |
| qBittorrent | Incomplete dir | /downloads/incomplete |
| qBittorrent | Category radarr / sonarr |
save-path /downloads/complete/movies / /tv |
| NZBGet | MainDir |
/downloads |
| NZBGet | InterDir |
/downloads/incomplete |
| NZBGet | Category Movies / TV |
DestDir /downloads/complete/movies / /tv |
| Radarr/Sonarr | Download client + "Remove Completed" | on (imports then lets the client clean up post-seed) |
Container /downloads == host /mnt/user/downloads (the linuxserver bind mount). The
qbittorrent/nzbget MCP servers apply this map so a host path can be looked up directly.
Cleanup of the current mess¶
The share currently has loose top-level release folders (e.g. Interstellar 2014 2160p…)
outside the category tree — old/manual grabs or items still seeding. Do not bulk-delete.
Per item, cross-reference with the MCPs before touching:
qbittorrent: find_torrent_by_path "<name>"→SEEDING - do not deletevsCOMPLETE_STOPPED.nzbget: find_download "<name>"→ whether NZBGet still tracks it.- Confirm the title exists under
/mnt/user/Media(imported) before removing the staging copy.
Only items that are imported into Media and not seeding are safe to remove; the rest either finish seeding first or get relocated into the category tree.
Live snapshot (2026-07-06, via the MCPs)¶
- qBittorrent: 56 torrents, all 56 actively seeding (47
tv-sonarr, 9radarr); seed ratios median 2.60, max 83.93. All 56 sit at the top level of/downloads(tracker-namedwww.UIndex.org - …folders / loose release dirs) — none use acomplete/<category>/save-path. That is the whole "mess": not junk, but unorganised seeding data. - NZBGet: queue 0, history 0 — the usenet side is clean; it contributes nothing.
- Nothing is safe to delete right now (everything is seeding). Reclaim path:
- Set a qBittorrent seeding limit (e.g. ratio 2.0 or 14 days → stop) so torrents auto-complete; enable Radarr/Sonarr "Remove Completed" so they clean up post-seed.
- Configure category save-paths (
tv-sonarr → /downloads/complete/tv,radarr → /downloads/complete/movies) so future grabs self-organise. Existing seeding torrents are left in place (moving them breaks seeding); they migrate naturally as they finish and are re-grabbed. - Flag: a torrent named
Scream 7 (2026) [1080p] [WEBRip] [5.1].exeis seeding — a video file with an.exeextension is a classic fake/malware pattern; recommend removing it (with data) viadelete_torrent.