The filing cabinet you can actually search
Most people have a drawer, a folder, or an entire cabinet full of paper documents they can never find when they need them. Warranty cards, insurance documents, receipts, bank statements, instruction manuals – all of it sitting there, unsearchable, occasionally lost.
Paperless-ngx is an open source document management system that solves this completely. Scan or photograph a document, upload it, and the software runs OCR on it – extracting all the text. After that, every word in every document you’ve ever uploaded is searchable. That insurance certificate from four years ago? Search for the provider’s name and it appears instantly.
What you’ll need
- A Raspberry Pi 4 with at least 4GB RAM (OCR is the demanding bit)
- Some storage for your document archive
- Docker and Docker Compose
- A scanner, or a phone with a good camera app (Google PhotoScan, Microsoft Lens, or similar)
Installation
Paperless-ngx publishes an official Docker Compose configuration. Grab it:
curl -O https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml
curl -O https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.env
Edit the .env file to set a timezone, a secret key, and an admin username and password. Then bring it up:
docker compose -f docker-compose.postgres.yml up -d
Browse to http://<your-pi-ip>:8000 and log in with your admin credentials. The interface is clean and immediately usable.
The consumption folder
Paperless-ngx has a “consume” folder – anything placed in it gets automatically ingested. This is how you’ll feed it documents. You can point a Samba share at this folder (see last week’s post) so that from any device on your network, saving a PDF to the shared folder automatically kicks off the ingestion process.
What happens when you upload
When a document lands in the consume folder, Paperless-ngx:
- Runs OCR on it using Tesseract, extracting all the text
- Attempts to determine the document date from the content
- Applies any matching rules you’ve set up to auto-tag or auto-assign it
- Makes the full text searchable in the archive
Tags, correspondents, and document types
Paperless-ngx’s organisation model is simple but flexible. You define:
- Correspondents – who sent the document (HMRC, Barclays, your letting agent)
- Document types – what kind of document it is (invoice, statement, contract, warranty)
- Tags – freeform labels (home, car, tax, urgent)
You can assign these manually, or set up matching rules that automatically categorise documents based on words found in the text. Once you’ve got a few rules set up, newly ingested documents arrive already tagged and sorted.
Getting documents in
If you have a flatbed scanner, most will scan directly to a folder as a PDF. If you’re using your phone, apps like Microsoft Lens (iOS/Android) or Apple’s native document scanner produce clean, properly aligned PDFs. For bulk scanning of old paperwork, scan to the consume folder and let Paperless get on with the OCR while you carry on – it queues the work and processes things progressively.
Performance on a Pi
OCR is the most CPU-intensive part. On a Pi 4, ingesting a single-page document takes 10–20 seconds. For bulk imports it’ll work through a queue over time rather than instantly, but for ongoing use – a few documents a week – it’s more than fast enough.
This is part seven of our “Things to do with your old Raspberry Pi” series. Next week: hosting a website or blog directly from your Pi using Docker and Cloudflare Tunnels.

Leave a Reply
You must be logged in to post a comment.