Papra
Minimalistic self-hosted document archiving platform
Papra is a minimalistic, open-source document management and archiving platform for keeping your important files organized. It supports tagging, full-text search, and OCR for scanned documents.
Key features
- Document archiving
- Tagging and organization
- Full-text search
- OCR support
Pros & cons
Strengths
- Clean modern UI
- Easy deployment
Trade-offs
- Newer project
- Smaller feature set
Papra replaces
Last reviewed Sep 13, 2026 · 877 words
Most people who install Paperless-ngx use about a fifth of it. Papra is built for that fifth: drop a PDF in, it gets text-extracted and searchable, you tag it, you find it again in 2029. It is a single TypeScript container with an SQLite file behind it, needs 512 MB of RAM, has no Redis, no Postgres and no worker queue, and takes 5 minutes to run. The trade is that it also has no custom fields, no workflows, no correspondents and none of the automation that Paperless users grow into. If your archive is a few thousand household documents and the question is "can I find the boiler warranty", Papra answers it with far less to maintain.
Setup is one container
services:
papra:
image: ghcr.io/papra-hq/papra:latest
ports:
- "1221:1221"
volumes:
- ./papra-data:/app/app-data
restart: unless-stopped
That is the entire stack. The web UI is on port 1221, the SQLite database and uploaded files both live under /app/app-data, and backup is one directory. Set APP_BASE_URL to your public address before putting it behind a reverse proxy so links in emails resolve correctly, and register the first account; you will want to disable open registration after that unless you are running it for a group. Papra is AGPL-3.0, first released in 2024, and sits at 5,276 GitHub stars, which for a project that young says something about how many people wanted a smaller Paperless.
The organisational model is documents, tags, and rules
There are no folders. Every document belongs to an organisation (a workspace, effectively; a household is one, a small business is another), carries any number of tags, and is found through full-text search over its extracted content. Tagging rules are the piece that makes this usable at volume: a rule matches on document name or content ("contains Octopus Energy") and applies a tag automatically on upload. Ten rules cover most of a household's recurring paperwork. Intake emails go a step further: Papra gives you an address per organisation, and anything forwarded there is ingested as a document, which is how I get PDF invoices in without touching the UI.
OCR is present, and lighter than you might be used to
PDFs with a text layer are indexed as-is. Images and scanned PDFs are run through OCR on upload, and the result is good enough for search but not for reproducing a document's layout, and it is noticeably weaker on poor scans than the Tesseract-plus-ocrmypdf pipeline behind Paperless-ngx. It also does not write the recognised text back into the PDF as a hidden layer, so a scanned file you download from Papra is the same scan you uploaded. If you feed it from a sheet-feed scanner at 300 dpi this is a non-issue; if you are photographing receipts with a phone, expect to fix a tag by hand now and then.
Where it loses to Paperless-ngx
| Papra | Paperless-ngx | |
|---|---|---|
| Containers | 1 | 3 to 4 (app, Redis, database, optional Tika and Gotenberg) |
| RAM | 512 MB | 1 GB or more in practice |
| Custom fields, document types, correspondents | No | Yes |
| Automatic classification that learns | No | Yes |
| Consumption folder for scanners | No, upload or email | Yes |
| Office document conversion | No | Yes with Tika and Gotenberg |
| Mobile app ecosystem | None | Several third-party |
The two on that list that matter most are the consumption folder and the learning classifier. A scanner that dumps into a watched directory is the workflow that makes a paperless office run itself, and Papra does not have it yet; you email or upload. And Paperless's machine-learned matching, which after 200 documents starts guessing correspondents and types correctly, is the feature that turns a 10,000-document archive from a chore into a habit. Under a few thousand documents you will not miss either. The full setup for the bigger tool is in the Paperless-ngx guide, and Docspell is the third option if you want Paperless-level features on a JVM.
Who actually runs it
The user I see choosing Papra is someone who tried Paperless-ngx, got the compose file working, and then never set up the workflows because they only wanted search over 800 PDFs. It is also a good fit for a small club or a freelancer who wants a shared archive with two or three logins and a "forward invoices here" address. It is the wrong fit for anyone with a document-feed scanner, anyone who wants their archive to classify itself, and anyone whose archive is the legal record for a business.
What I'd do
If you have under 5,000 documents and no scanner-to-folder habit, run Papra, write eight tagging rules on day one, set up the intake email, and back up papra-data with the rest of your volumes. Revisit in a year: if you are hand-tagging more than you would like, that is the sign to move to Paperless-ngx, and since Papra stores your originals unmodified the migration is a bulk upload. The document management category has the rest of the field if neither fits.
Similar e-books & media library apps
Free Programming Books
E-books & Media LibraryCurated catalog of free programming ebooks and resources
Replaces Paid technical book subscriptions
KOReader
E-books & Media LibraryDocument and ebook reader for e-ink and mobile devices
Replaces Kindle, Pocketbook reader
Koodo Reader
E-books & Media LibraryCross-platform ebook reader with annotations and sync
Replaces Calibre, Apple Books
Calibre
E-books & Media LibraryPowerful ebook library manager with a built-in server
Replaces Kindle, Apple Books
Readest
E-books & Media LibraryCross-platform ebook reader with sync server
Replaces Kindle, Apple Books
Ebook2audiobook
E-books & Media LibraryConvert ebooks into narrated audiobooks locally
Replaces Audible, Speechify