All apps · 0 apps
Deduplarr
Docker app from thedinz' Repository
Overview
Readme
View on GitHubDeduplarr
Deduplarr is a Docker Compose-first Plex duplicate cleanup companion with an interface shaped for the *arr ecosystem. It connects to Plex with a server URL and token, finds duplicate movie and episode versions, shows file paths and stream details, scores each version, and lets you make the keep/delete decision at a glance.
Plex Access Model
The first version is intentionally API-only. Plex already knows each library item, media version, media part, file path, video stream, audio stream, subtitle stream, and duplicate grouping, so Deduplarr does not need direct filesystem mounts for scanning or scoring.
Deletion is different: Deduplarr asks Plex to delete the selected media part. That requires Plex itself to have media deletion enabled and write access to the media path. If Plex cannot delete the file, a later filesystem-delete fallback can be added, but that would require a path mapping layer between Plex paths and Deduplarr container paths.
Docker Compose
Plex connection details are entered in the app Settings page, not in Compose environment variables.
services:
deduplarr:
image: ghcr.io/thedinz/deduplarr:dev
container_name: deduplarr
ports:
- "7889:7889"
environment:
PORT: "7889"
CONFIG_DIR: /config
volumes:
- ./config:/config
restart: unless-stopped
docker compose up -d
Open http://localhost:7889, sign in with admin/admin, then add your Plex URL and token in Settings.
Authentication
Deduplarr starts with built-in auth enabled and the default login admin/admin. Change the username and password from Settings after first sign-in.
Settings also supports switching to external reverse-proxy auth. In that mode Deduplarr trusts a configured user header from your proxy. Default accepted headers are:
x-forwarded-userx-auth-request-userx-authentik-usernameremote-user
Run Deduplarr behind HTTPS at your reverse proxy. The app sets trust proxy so forwarded protocol headers work correctly for cookies.
Environment
| Variable | Default | Description |
|---|---|---|
PORT |
7889 |
HTTP port inside the container |
CONFIG_DIR |
/config in Docker |
Stores local app config |
SESSION_SECRET |
generated | Optional stable session signing secret |
Development
pnpm install
pnpm dev
The local app listens on http://localhost:7889.
Release Images
The repository workflow publishes Docker images to:
ghcr.io/thedinz/deduplarr:devfrom thedevbranchghcr.io/thedinz/deduplarr:latestfrom themainbranchghcr.io/thedinz/deduplarr:vX.Y.Zfrom version tags
GitHub Releases are created from v* tags.
Install Deduplarr on Unraid in a few clicks.
Find Deduplarr in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/thedinz/deduplarr:latestRuntime arguments
- Web UI
http://[IP]:[PORT:7889]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--restart unless-stopped
Template configuration
Container 7889 - Host port for the Deduplarr web UI
- Target
- 7889
- Default
- 7889
- Value
- 7889
Stores Deduplarr settings, saved Plex connection details, auth configuration, and keep preferences
- Target
- /config
- Default
- /mnt/user/appdata/deduplarr
- Value
- /mnt/user/appdata/deduplarr
Optional long random value used to sign Deduplarr login sessions. Leave blank to generate one at startup; set it to keep sessions valid across container recreation.
- Target
- SESSION_SECRET
Container timezone
- Target
- TZ
- Default
- America/New_York