paperless-ngx-dedupe
Docker app from Skylinar's Repository
Overview
Duplicate finder for Paperless-ngx. Syncs your documents via the Paperless API, finds exact and near-duplicates (MinHash/LSH with Jaccard + fuzzy scoring and a discriminative penalty against template look-alikes such as monthly invoices) and lets you review each group side by side before anything is removed. Deleted documents go to the Paperless trash.
SECURITY: the app has NO built-in authentication. Anyone who can reach the port can review and delete documents with the permissions of the configured Paperless user. Do not expose it to the internet - put it behind a reverse proxy with access control or keep it LAN-only.
Before Installing:
- Create an API token in Paperless-ngx (user menu - My Profile - API Auth Token). The user needs delete permissions on the documents you want to clean up.
- Set Paperless URL to the address the container can reach, e.g. http://192.168.1.10:8000 (no trailing path).
- If you access the UI through a reverse proxy (HTTPS domain), set Origin to that exact URL (e.g. https://dedupe.example.com), otherwise saving and actions fail with a CSRF / cross-site POST error. Leave it empty for direct access via http://YOUR-Unraid-IP:3000.
- After the first start open the Web UI, run a sync and then the analysis. Thresholds can be tuned under Settings.
Readme
View on GitHubUnraid Templates
- Apache-Tika-Server
- Bgutil-Provider
- Home-Hub
- Nginx-Proxy-Manager-MCP
- paperless-ngx-dedupe
- Pi-Dash
- PostgreSQL18
- Sure-Web
- Sure-Worker
- Twitch-Channel-Points-Miner-v2
Apache-Tika-Server

Apache Tika is a project of the Apache Software Foundation that detects and extracts metadata and text from over a thousand different file types.
Application Name: apache-tika-server
Application Site: https://tika.apache.org/
Registry: https://hub.docker.com/r/apache/tika
Github: https://github.com/apache/tika
Bgutil-Provider

BgUtils POT Provider is a proof-of-origin (POT) token provider HTTP server for yt-dlp. It generates tokens that help yt-dlp downloads from YouTube appear more legitimate, which may help avoid "Sign in to confirm you're not a bot" errors and HTTP 403 responses. Commonly used together with Tube Archivist, which has a built-in integration.
Additional Requirements
Never expose this service to the internet. The token server is unauthenticated by design — it must stay on the local network only. Do not publish the port beyond your LAN and do not create a reverse proxy entry for it.
First installation
- Set the "PO Token Provider URL" in your yt-dlp frontend to
http://YOUR-UNRAID-IP:4416(in Tube Archivist: Settings → Application). - Match versions: pin the container to the same version as the provider plugin that yt-dlp (or Tube Archivist) ships with. Tube Archivist currently pins plugin 1.3.2 — the template default follows that.
Application Name: Bgutil-Provider
Application Site: https://github.com/Brainicism/bgutil-ytdlp-pot-provider
Registry: https://hub.docker.com/r/brainicism/bgutil-ytdlp-pot-provider
Github: https://github.com/Brainicism/bgutil-ytdlp-pot-provider
Home-Hub

Ever wanted a simple, private spot on your home network for your family's daily stuff? That's HomeHub. It's a lightweight, self-hosted web app that turns any computer (even a Raspberry Pi!) into a central hub for shared notes, shopping lists, chores, a media downloader, and even a family expense tracker.
It's designed to be easy to use for everyone in the family, with a clean interface that works great on any device.
Application Name: Home-Hub
Application Site: https://github.com/surajverma/homehub
Registry: https://github.com/surajverma/homehub/pkgs/container/homehub
Github: https://github.com/surajverma/homehub
First installation
Before first startup:
- create the appdata folder:
mkdir /mnt/user/appdata/homehub
- grab the example configuration yml:
curl https://raw.githubusercontent.com/surajverma/homehub/main/config-example.yml -o /mnt/user/appdata/homehub/config.yml
- adjust the config as needed
Nginx-Proxy-Manager-MCP

MCP server for Nginx Proxy Manager - manage your reverse proxy through AI assistants.
This container exposes an MCP (Model Context Protocol) endpoint that AI assistants can use to manage your Nginx Proxy Manager instance: list proxy hosts, create/update/delete hosts, manage SSL certificates, check system health and more.
It has no web interface - connect to it from an MCP client (e.g. Claude Desktop, Cursor, or any MCP-compatible agent) using the HTTP transport:
http://YOUR-UNRAID-IP:8000/mcp
Application Name: Nginx-Proxy-Manager-MCP
Application Site: https://github.com/b3nw/nginx-proxy-manager-mcp
Registry: https://github.com/b3nw/nginx-proxy-manager-mcp/pkgs/container/nginx-proxy-manager-mcp
Github: https://github.com/b3nw/nginx-proxy-manager-mcp
First installation
Before first startup:
- Make sure you have Nginx Proxy Manager running and note its API URL (
http://NPM-IP:81/api) - Create an NPM user or use an existing admin account (email + password)
- Optional: enable the destructive tools (create/update/delete) by setting
NPM_MCP_ENABLE_DESTRUCTIVE_TOOLS=true - Optional: secure the endpoint with a bearer token — generate one with
openssl rand -hex 32and set it asNPM_MCP_AUTH_TOKEN
For log access (get_proxy_host_logs tool), mount your NPM data directory read-only and set NPM_LOG_DIR accordingly - see the project documentation for details.
PostgreSQL18

PostgreSQL 18 is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
Application Name: postgresql18
Application Site: https://www.postgresql.org/
Registry: https://registry.hub.docker.com/_/postgres/
Github: https://github.com/docker-library/postgres
paperless-ngx-dedupe

Duplicate finder for Paperless-ngx. Syncs your documents via the Paperless API, finds exact and near-duplicates (MinHash/LSH with Jaccard + fuzzy scoring and a discriminative penalty against template look-alikes such as monthly invoices) and lets you review each group side by side before anything is removed. Deleted documents go to the Paperless trash.
Security: the app has no built-in authentication. Anyone who can reach the port can review and delete documents with the permissions of the configured Paperless user. Keep it LAN-only or put it behind a reverse proxy with access control.
Application Name: paperless-ngx-dedupe
Application Site: https://github.com/rknightion/paperless-ngx-dedupe
Registry: https://github.com/rknightion/paperless-ngx-dedupe/pkgs/container/paperless-ngx-dedupe
Github: https://github.com/rknightion/paperless-ngx-dedupe
First installation
Before first startup:
- Create an API token in Paperless-ngx (My Profile → API Auth Token). The user needs delete permissions on the documents you want to clean up.
- Set Paperless URL to the address the container can reach, e.g.
http://192.168.1.10:8000. - Using a reverse proxy (HTTPS domain)? Set Origin to that exact URL, e.g.
https://dedupe.example.com- otherwise actions fail with a CSRF / cross-site POST error. Leave it empty for direct access viahttp://YOUR-UNRAID-IP:3000. - Start the container, open the Web UI, run a sync and then the analysis. Similarity thresholds can be tuned under Settings.
Optional (advanced view): username/password instead of a token, OpenAI-based AI processing (AI_ENABLED + AI_OPENAI_API_KEY), Prometheus metrics at /api/v1/metrics.
Icon: project favicon from the upstream repository (GPL-3.0).
Pi-Dash

Pi-Dash is a simple, lightweight dashboard for monitoring multiple Pi-hole instances. It provides a clean, at-a-glance, responsive view of your Pi-hole statistics.
Application Name: Pi-Dash
Application Site: https://github.com/surajverma/pi-dash
Registry: https://github.com/surajverma/pi-dash/pkgs/container/pi-dash
Github: https://github.com/surajverma/pi-dash
First installation
Before first startup:
- create the appdata folder:
mkdir /mnt/user/appdata/pi-dash
- grab the example configuration json:
curl https://raw.githubusercontent.com/surajverma/pi-dash/refs/heads/main/config-example.json -o /mnt/user/appdata/pi-dash/config.json
- adjust the config as needed
Sure-Web

Sure is a community-driven fork of the former Maybe Finance application, continuing its mission to help users manage personal finances by tracking expenses, budgeting, and supporting wealth management. Note: "Maybe" is a trademark of Maybe Finance, Inc..
This is the 1 of 2 containers required to run Sure finance; please review the additional requirements.
Application Name: Sure-Web
Application Site: https://github.com/we-promise/sure
Registry: https://github.com/we-promise/sure/pkgs/container/sure
Github: https://github.com/we-promise/sure
Additional Requirements
This is container 1 of 2 needed to run Sure finance, runs alongside Sure-Worker. Requires a Postgres database and Redis.
Check the Sure documentation for more information: https://github.com/we-promise/sure/blob/main/docs/hosting/docker.md
First installation
To ensure correct user permissions for the app-storage folder, run chown -R 1000:1000 /mnt/user/appdata/sure/app-storage after the initial startup.
Sure-Worker

Sure is a community-driven fork of the former Maybe Finance application, continuing its mission to help users manage personal finances by tracking expenses, budgeting, and supporting wealth management. Note: "Maybe" is a trademark of Maybe Finance, Inc..
This is the 2 of 2 container required to run Sure finance; please review the additional requirements.
Application Name: Sure-Worker
Application Site: https://github.com/we-promise/sure
Registry: https://github.com/we-promise/sure/pkgs/container/sure
Github: https://github.com/we-promise/sure
Twitch-Channel-Points-Miner-v2
Coming soon...
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/rknightion/paperless-ngx-dedupe:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3000]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--restart unless-stopped
Template configuration
Web UI and API port
- Target
- 3000
- Default
- 3000
- Value
- 3000
SQLite database of the app (sync cache, duplicate groups, settings)
- Target
- /app/data
- Default
- /mnt/user/appdata/paperless-ngx-dedupe/data
- Value
- /mnt/user/appdata/paperless-ngx-dedupe/data
Base URL of your Paperless-ngx instance as seen from the container, e.g. http://192.168.1.10:8000
- Target
- PAPERLESS_URL
- Default
- http://PAPERLESS-IP:8000
- Value
- http://PAPERLESS-IP:8000
API token of a Paperless user (Paperless: My Profile - API Auth Token). Preferred over username/password. The user needs delete permissions on the documents you want to clean up.
- Target
- PAPERLESS_API_TOKEN
Public URL when accessed through a reverse proxy, e.g. https://dedupe.example.com (SvelteKit CSRF check). Leave empty for direct access via IP:port.
- Target
- ORIGIN
Alternative to the API token: Paperless username (requires Paperless Password). Ignored when an API token is set.
- Target
- PAPERLESS_USERNAME
Alternative to the API token: Paperless password (requires Paperless Username).
- Target
- PAPERLESS_PASSWORD
Log verbosity
- Target
- LOG_LEVEL
- Default
- info|debug|warn|error
- Value
- info
Optional AI-based document classification / metadata extraction via OpenAI. Requires an OpenAI API key. Documents are sent to OpenAI when enabled.
- Target
- AI_ENABLED
- Default
- false|true
- Value
- false
Required only when AI Enabled is true.
- Target
- AI_OPENAI_API_KEY
Empty = same-origin only (recommended), * = all origins, or a specific origin URL
- Target
- CORS_ALLOW_ORIGIN
Expose app metrics in Prometheus format at /api/v1/metrics
- Target
- OTEL_PROMETHEUS_ENABLED
- Default
- false|true
- Value
- false
User ID the app runs as (Unraid default: 99 = nobody)
- Default
- 99
- Value
- 99
Group ID the app runs as (Unraid default: 100 = users)
- Default
- 100
- Value
- 100