Dedupearr: the truth about your storage

Your download folder is supposed to share its files with your library. Dedupearr tells you whether it does.

Every night it walks every video file and says what the file is: the real copy, a hardlink that costs nothing, a second copy that wastes space, a download nothing matches, or an old recycle-bin entry. With the evidence, in one plain sentence. The companion to Auditarr.

What it tells you

One of these per file, with the inodes, link counts, sizes and checksums behind it one click away.

Real copythe library file and the download are one file with two names (a hardlink); seeding costs nothing
Stored twicethe library file and the download are two separate files with identical content
Stored twice, header differsthe same, except the first megabyte: a language tag or title was edited on one copy
Download without a matchnothing in the library matches this download; phase 2 asks the torrent client
Looks alikesame size as a library file but different content; not a duplicate
Old recycle-bin filein a recycle bin longer than your rule

How it works

Phase 1 is read-only: it looks and tells. Phase 2 asks the torrent client and the arrs; phase 3 adds the fixes behind a dry run and a 14-day undo.

Every night Dedupearr reads the disk, groups names that share one file, compares the rest by checksum and gives each file one verdict with its evidence

What it looks like

Files tabSpace tabAbout tabPhone layout

Run it

One container, one read-only mount that holds both the library and the download folder.

docker run -d --name dedupearr --restart unless-stopped -p 3092:3092 \
  -e TZ=America/Winnipeg -v /path/to/appdata/dedupearr:/config -v /path/to/media:/data:ro \
  ghcr.io/chrizantoz/dedupearr:latest
UnraidAdd Container → paste the template URL from the install guide.
Docker composeA ready file is in docs/docker-compose.yml.
Safe by constructionRead-only mount, no code path that changes a file, verdicts only with evidence. Security · How it is tested.