mrkeyoor.com_
Wed 16 Sept 05:30 UTC
Self-Hostedevaluationupdated 25 Aug 2026

paperless-ngx review

Paperless-ngx turns scans, PDFs, office files, and email attachments into a searchable document archive on your own server. It adds OCR, tags, correspondents, workflows, permissions, and retention-friendly PDF/A copies, solving the problem of finding one invoice or letter in years of files.

+234stars / 7d
Verdict

Our Paperless-ngx install took 83 seconds and the 6-second build passed, but tests refused to start without a unique secret key, which is a sensible failure for software holding private records. Use it if searchable local documents are worth running a real service with backups, OCR dependencies, and access controls. Skip it if you need application-level file encryption or a maintenance-free document cloud.

We ran it

Lab card: what happened when we ran paperless-ngxScreenshot of paperless-ngx (docs.paperless-ngx.com)
Install✓ · 83s216 packages · 1456 MB
Build✓ · 6s
Tests✗ · 9sran, no count parsed
Known vulns0(pip-audit)
Repo1492 files~195,077 lines of source · 114.5 MB · 14 CI workflows · Dockerfile

Answers from our run

Does paperless-ngx build from source?

Dependencies installed in 83 seconds (216 packages), and the build succeeded in 6 seconds. We cloned commit 2609327 into a clean Debian container with 3 CPUs and no project-specific setup.

Do paperless-ngx's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does paperless-ngx have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use paperless-ngx?

Anyone who needs encrypted document storage inside the application: the project warns that files are stored in clear text and should never sit on an untrusted host.

What are the alternatives to paperless-ngx?

Docspell, Papermerge, Mayan EDMS. Our Paperless-ngx install took 83 seconds and the 6-second build passed, but tests refused to start without a unique secret key, which is a sensible failure for software holding private records.

Setup3/5Compose is guided; secure storage and OCR still need operator work
Docs5/5Detailed setup, configuration, migration, and usage guides
Community5/5Current pushes, frequent releases, Matrix, and active pull requests
Maturity5/5Long-lived successor with migrations and serious archive controls

Discussed on

  1. hnPaperless-ngx – Open source document management system627 points
  2. hnPaperless-Ngx v2.0.0182 points
  3. hnPaperless-NGX169 points
  4. hnPaperless-ngx: scan, index and archive all your physical documents46 points
  5. hnShow HN: I built a receipt processor for Paperless-ngx6 points

Who it’s for

Households that want searchable tax records, invoices, warranties, and letters without handing the archive to a document cloud.
Small offices prepared to maintain Docker, backups, user permissions, and an OCR pipeline.
Scanner-heavy workflows that benefit from watched folders, email rules, automatic matching, and full-text search.
Existing Paperless or Paperless-ng users who want the actively maintained successor.

Who it’s NOT for

Anyone who needs encrypted document storage inside the application: the project warns that files are stored in clear text and should never sit on an untrusted host.
Operators unwilling to own backups and recovery: the README explicitly recommends a local server with backups because the archive may contain tax, insurance, and identity records.
Windows users seeking a bare-metal install: the setup guide says bare metal is Linux-only, though Docker remains an option.
People expecting every office file to work from the base stack: Office documents and email attachment conversion need the optional Apache Tika service.
Teams placing the consume directory on NFS without tuning: the docs say shares without inotify need polling enabled or new files will not be picked up.

Setup reality

Our sandbox install succeeded in 83 seconds, placing 216 packages and 1,456 MB on disk. The build finished in 6 seconds, but the test command stopped after 9 seconds with exit 4 because PAPERLESS_SECRET_KEY was unset or still change-me. The audit found 0 known vulnerabilities.

The README points most users to Docker Compose. A working deployment still needs persistent data and media volumes, a Redis-compatible broker, a database choice, an admin account, a unique secret key, and a backup plan. PostgreSQL is recommended for new installations; Tika is optional for Office files and email attachments.

Bare metal is much more involved than the quick-start script: Linux, Python, OCRmyPDF dependencies, Tesseract language packs, ImageMagick, Ghostscript, and database libraries all enter the picture. Rootless containers cannot add OCR languages through PAPERLESS_OCR_LANGUAGES, and NFS consume folders need polling.

OCR turns a folder of scans into an archive

Paperless-ngx supports OCR in more than 100 languages through Tesseract, then stores searchable text with the source document. It can ingest PDFs, images, plain text, and common office formats, though Office conversion requires the optional Tika service. Each record can carry tags, a correspondent, a document type, custom fields, and a configurable storage path. That model works better for household paperwork than manually nesting files by year and guessing later where an insurance letter went.

The archive keeps the unaltered original and can create a PDF/A copy for long-term storage. Search includes relevance ranking, matched-text previews, filters, and similar-document discovery. Paperless-ngx also watches a consume directory, accepts browser uploads, and can process attachments from multiple email accounts using rules. The useful part is the full path from arrival to retrieval: a scanner can drop a file into one directory, OCR can make it searchable, and rules can file it without a weekly sorting session.

Version 3.0.5 is active, but upgrades deserve care

GitHub recorded the latest push on 2026-08-25, and release v3.0.5 arrived on 2026-08-01. The repository showed 10 open issues and pull requests combined when we fetched it, with current work covering document-version filtering, query performance, translations, and trusted-proxy documentation. That is healthy maintenance for software entrusted with records. It also means the code is moving, so operators should read release notes and test restores before treating an update like a routine container refresh.

One open bug reports saved views changing behavior after an upgrade from v2.20.15 to v3.0.5 because of older Whoosh-style searches. The v3.0.5 notes list fixes for abbreviated relative dates and multiple document, search, mail, and database cases. Neither point makes the release unsafe, but together they make a practical case for pinning versions. A document archive is the wrong place to discover that a saved query or database change behaves differently only after the old container is gone.

What happened when we ran it

Our sandbox installed Paperless-ngx in 83 seconds. That brought in 216 packages and occupied 1,456 MB on disk; the build then succeeded in 6 seconds. The repository clone contained 1,492 files, about 195,077 lines of source, and 14 CI workflow files. A dependency audit reported 0 known vulnerabilities. Those measurements describe commit 2609327 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM, not a tuned production host.

Tests did not run successfully. After 9 seconds, pytest exited with code 4 while Django loaded the settings module. The final log says PAPERLESS_SECRET_KEY was missing or still set to the default change-me, and it requires a unique secret for secure operation. That is the only cause shown in the log, so we would not call it a test regression. It does show that a source checkout needs security configuration before its suite reaches assertions.

Docker is the easy route; bare metal is a service stack

The installation guide recommends Docker for most users and offers an interactive Compose script. Even there, you choose persistent paths, check host UID and GID access, configure an admin account, and decide between SQLite, PostgreSQL, or MariaDB. PostgreSQL is recommended for new installations. Scheduled jobs and classifier training also require a Redis-compatible broker, with Valkey used by the bundled Compose files. A serious deployment needs backups for the database, original files, generated media, and configuration rather than one copied container volume.

Bare metal supports Python 3.11 through 3.14 on Linux. The documented package list includes Tesseract, Ghostscript, qpdf, ImageMagick, libmagic, database development libraries, fonts, and OCRmyPDF dependencies. Extra OCR languages add their own Tesseract packs. Network storage adds another wrinkle: a consume directory on NFS may lack inotify, so Paperless-ngx will ignore new arrivals unless polling is enabled. These are well documented constraints, but they explain why the short Docker pitch should not be read as a no-operations promise.

Clear-text files set the security boundary

The README gives an unusually direct warning: scanned documents are stored in clear text, without application-level encryption, and Paperless-ngx should never run on an untrusted host. That matters because the obvious payload is unusually sensitive: tax forms, identity documents, bank statements, medical letters, and contracts. Put the service behind controlled network access, use separate daily accounts instead of living as the superuser, restrict storage permissions, and make encrypted backups part of the host design.

Optional AI features need another privacy decision. Suggestions, document chat, and similarity search are disabled by default. Enabling a remote OpenAI-compatible backend sends document content and metadata outside the server and may incur charges; the docs suggest local Ollama or a self-hosted endpoint when that transfer is unacceptable. Paperless-ngx remains a strong local archive without those features. Its best quality is not novelty, but the careful connection between ingestion, OCR, filing, permissions, search, and recovery work that document owners otherwise assemble themselves.

Alternatives

ProjectWhat it isPick it when
DocspellA self-hosted document organizer centered on ingestion, text extraction, and assisted classification.pick this instead when you prefer its JVM stack and want a separate take on mail and scanner ingestion.
PapermergeAn OCR document management system with folders and a REST API.pick this instead when a familiar folder tree matters more than Paperless-ngx's tag-first workflow.
Mayan EDMSA document management system aimed at structured organizational records and workflows.pick this instead when your priority is formal document lifecycle control rather than a household-friendly archive.

Sources

  1. Paperless-ngx README
  2. Paperless-ngx features
  3. Paperless-ngx setup guide
  4. Paperless-ngx configuration
  5. Paperless-ngx v3.0.5
  6. Saved views upgrade issue

More self-hosted reviews

newsnow · forem · octo-server · runtime · openfang · SparkyFitness · the whole board →