A duplex document scanner (~$200 used) feeding Paperless-ngx turns every piece of paper you own into full-text-searchable PDFs — "that furnace invoice from 2023" goes from twenty minutes of filing-cabinet archaeology to a two-second search. Setup is an afternoon; the machine-learning classifier starts auto-filing documents after you've corrected its first fifty or so. The part that determines whether you're still using it in two years isn't the software — it's keeping the tagging taxonomy small enough to apply without thinking.

How the pipeline works

Paperless-ngx watches a consume directory. Anything that lands there gets OCR'd (Tesseract via OCRmyPDF), matched against your correspondents, document types, and tags by a classifier that retrains nightly on your corrections, and stored twice: the original file, untouched, plus an archived PDF/A version with the text layer embedded. Both copies matter — the original is legally and bit-for-bit authentic, the archive is the searchable working copy. Storage math: a typical scanned page runs 1–2MB, so 5,000 documents land around 8–12GB with both copies. Trivial by media-library standards; back it up like it's precious, because it is.

# the environment lines that matter in compose
environment:
  PAPERLESS_OCR_LANGUAGE: eng+deu     # every language your paper arrives in
  PAPERLESS_OCR_MODE: skip            # don't re-OCR born-digital PDFs
  PAPERLESS_CONSUMER_RECURSIVE: "true"
  PAPERLESS_FILENAME_FORMAT: "{{created_year}}/{{correspondent}}/{{title}}"

OCR_MODE: skip is the setting most people miss: PDFs that already contain text (bank statements, e-invoices) pass through untouched instead of being rasterised and re-OCR'd into worse versions of themselves.

The scanner workflow: make ingestion friction-free

The system lives or dies on whether paper enters it the same day it arrives. The gold standard is a scanner with an automatic document feeder that scans straight to a network share — a Brother ADS-1700W or similar scans duplex at 25 pages a minute directly to an SMB/FTP target with no computer involved. Point that target at the consume folder and the workflow becomes: mail arrives, stack goes in the feeder, one button, done. Phones cover the remainder: the Paperless Mobile app shares photographed receipts straight into the consume pipeline. A flatbed-only scanner technically works and practically guarantees abandonment — the feeder is what makes the habit cheaper than the filing cabinet. Email is the third ingestion path: Paperless-ngx can poll a mailbox and consume attachments, which quietly captures the invoices that never existed on paper at all.

A taxonomy that survives contact with year two

Over-tagging is the failure mode. Full-text search already handles "find the furnace invoice" — metadata only needs to answer the questions search can't. The structure that holds up:

DimensionKeep it toExamples
CorrespondentOne per real-world entityAllianz, City of Springfield, Dr. Chen
Document type~10 totalinvoice, contract, statement, medical, tax, receipt
Tags10–15, statuses and years-long themes2026, tax-relevant, warranty, action-needed
Storage path2–3 broad bucketsfinance/, medical/, house/

Resist per-topic tags (car, insurance, car-insurance) — that's what correspondent plus type plus search already encodes. The one workflow tag worth having is action-needed, reviewed weekly, which turns Paperless into the inbox for life admin. For the physical originals you must keep (deeds, certificates, anything notarised), use ASNs — archive serial numbers. Paperless assigns the number, you write it on the document, and everything goes into one box in numeric order. No physical filing system, ever again: the digital record says "ASN 0142", and box position 142 is where the paper lives.

Trust the OCR, verify the classifier

Tesseract's accuracy on clean 300dpi scans is high enough that manual review of every document is wasted effort — spot-check the first batch, then trust it. The auto-classifier is different: it needs training data, so your first two weeks are correcting its guesses. Expect it to be usefully right about correspondents and types after ~50 corrected documents and impressively right after 200. It never assigns anything on its own beyond what matching rules and its learned model justify, so the worst case is an untagged document that full-text search still finds. The Paperless-ngx docs cover per-field matching algorithms if you want deterministic rules ("anything from this email address is type: invoice") instead of learned ones.

Backups: export, don't just snapshot

Volume snapshots of the database and media directory restore Paperless, but they don't protect against the subtler risk — needing your documents in ten years without Paperless. The built-in exporter solves both:

docker compose exec webserver document_exporter ../export \
  --use-filename-format --delete

That writes every original, every archived PDF, and a manifest.json of all metadata into a directory tree organised by your filename format — readable by a human with a file browser, no Paperless required. Run it weekly via cron and feed the export directory into your 3-2-1 backup rotation. This is the correct object to back up: it's the only artifact that carries originals, archives, and metadata in one portable, future-proof shape. More document tooling lives in the document management category.

What I'd do

Used ADF scanner off eBay, scan-to-SMB into the consume folder, the four environment settings above, and a strict taxonomy budget: ten types, fifteen tags, correspondents as they appear. Shred everything after scanning except the legally sacred, which gets an ASN and a single box in the closet. Weekly document_exporter into the backup rotation, and the action-needed tag reviewed every Sunday. Total setup: one afternoon. Amortised return: every tax season, insurance claim, and warranty dispute for the rest of your life starts with a search box instead of a drawer.