Self-Hosted Document Management
Paperless-ngx, Mayan EDMS, Teedy, Papermerge — replace your filing cabinet with an OCR'd, searchable archive.
A real DMS does three things: ingests paper or PDF, OCRs it, and lets you find anything in 10 seconds. Self-Hosted Personal Apps mentions Paperless-ngx briefly; this page is the focused comparison. For broader self-hosted office editing see Self-Hosted Files & Cloud, and for OCR libraries themselves see OCR & Vision.
Personal / homelab DMS
- ★ Paperless-ngx — the default in 2026. Watches a "consume" folder, OCRs via Tesseract, auto-tags by correspondent / type / date, full-text search, mobile apps via the API. Active community; LinuxServer.io image.
- Paperless-ngx mobile — official Android app; iOS via third-party clients (Paperless Share / Swift-Paperless).
- Papermerge — Python / Django; folder-tree UI; multi-user; OCR; tags. Lighter feature set than Paperless-ngx but cleaner UI for some.
Team / business DMS
- ★ Mayan EDMS — heavyweight, enterprise-flavor; workflows, ACLs, document signing, versioning, indexing, smart tags. The pick when "Paperless-ngx is too personal."
- Teedy (formerly Sismics Docs) — Java; multi-user; tags + ACLs; OCR; REST API. Quieter community but stable.
- OpenKM Community — old-school Java DMS; CMIS; workflow engine. Heavy.
- LogicalDOC Community — Java; bigger feature set; community + paid editions.
OCR-only / DMS adjacent
- ★ OCRmyPDF — adds an OCR text layer to existing PDFs. Pair with any of the above, or use standalone in a
cronscript. - Tesseract — the underlying OCR engine; what Paperless-ngx and OCRmyPDF use.
- docTR, PaddleOCR, Surya — modern ML OCR, see OCR & Vision.
- Stirling-PDF — web UI for splitting / merging / rotating / compressing / OCR'ing PDFs. Doesn't archive; it's a Swiss Army knife front-end.
Scanner ingestion
- ★ Paperless-ngx "consume" directory — drop a PDF or image, it ingests automatically. Most network scanners (Brother, Epson, Canon, Fujitsu ScanSnap) can scan-to-FTP / SMB / email straight into the consume folder.
- paperless-pingen / paperless-mail — fetch documents from email inboxes (e.g., utility bill PDFs).
- Frappe / ERPNext + Paperless-ngx — link DMS to your ERP for invoice attachments.
Tagging / classification
- Paperless-ngx automatic matching — train per-correspondent / per-type / per-tag classifiers from your own examples.
- paperless-ai — community LLM-tagger that posts suggestions back into Paperless.
- paperless-gpt — alternative LLM tagger.
Patterns to adopt
- ★ Single consume folder, one inbox per source. Email-to-PDF, scanner-to-SMB, Paperless-ngx-app upload, all dump into one watched dir.
- Date-based archiving + tags — don't build a deep folder tree; let search do the work.
- Backups are non-negotiable. Your DMS is your filing cabinet. DB + the document blob store.
- OCR everything. Even photos of receipts. Searching by vendor name later is the entire value.
- Don't expose the admin UI publicly — Tailscale or Cloudflare Access in front. Documents include sensitive data.
- Retention policy — auto-delete tagged "transient" documents after N days; keep "permanent" forever.
Pick this if…
- Default personal DMS: Paperless-ngx.
- Need workflows / ACLs / signing: Mayan EDMS.
- Java shop / smaller community: Teedy or LogicalDOC.
- Tree-based UI preference: Papermerge.
- Just need to OCR existing PDFs: OCRmyPDF (no archive layer).
- Need a PDF Swiss Army knife alongside: Stirling-PDF.