Set Up Your Document Archive
Set Up Your Document Archive
The last app in your core stack is one that quietly becomes indispensable within weeks of setting it up.
Paperless-NGX is a document management system. You feed it documents — scanned paper, PDFs from email, statements downloaded from your bank — and it processes them automatically using OCR (optical character recognition) to make every word in every document searchable.
Once it’s running, finding a document means typing a word. Tax return from three years ago? Type “mortgage interest.” Insurance policy for your car? Type your VIN. The warranty for your dishwasher? Type the model number.
No more filing cabinet archaeology.
How Paperless-NGX Works
Paperless-NGX has an “inbox” — a folder you drop documents into. Whenever a document lands in the inbox, Paperless processes it automatically:
- Runs OCR to extract all text from the document
- Attempts to identify the document type based on content
- Assigns a date (from the document content or filename)
- Moves it to the archive with a consistent filename
- Makes it instantly searchable
You can also create rules that automatically tag documents, assign them to correspondents, or put them in specific categories — so your utility bills automatically get tagged “utility” and filed under your power company.
Install Paperless-NGX
cd ~/docker/paperless
nano docker-compose.yml
services:
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
volumes:
- paperless_data:/usr/src/paperless/data
- paperless_media:/usr/src/paperless/media
- /data/paperless/consume:/usr/src/paperless/consume
- /data/paperless/export:/usr/src/paperless/export
environment:
- PAPERLESS_REDIS=redis://paperless-redis:6379
- PAPERLESS_DBHOST=paperless-db
- PAPERLESS_DBPASS=change_this_password # ← change this
- PAPERLESS_SECRET_KEY=change_this_secret # ← change this (random string)
- PAPERLESS_URL=http://docs.home
- PAPERLESS_TIME_ZONE=America/Phoenix # ← change to your timezone
- PAPERLESS_OCR_LANGUAGE=eng
depends_on:
- paperless-db
- paperless-redis
networks:
- proxy
- internal
restart: unless-stopped
paperless-db:
image: postgres:15
container_name: paperless-db
volumes:
- paperless_db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=paperless
- POSTGRES_USER=paperless
- POSTGRES_PASSWORD=change_this_password # ← match above
networks:
- internal
restart: unless-stopped
paperless-redis:
image: redis:7
container_name: paperless-redis
networks:
- internal
restart: unless-stopped
volumes:
paperless_data:
paperless_media:
paperless_db:
networks:
proxy:
external: true
internal:
driver: bridge
Create the consume and export directories:
sudo mkdir -p /data/paperless/{consume,export}
sudo chown -R 1000:1000 /data/paperless
Start Paperless:
docker compose up -d
Create the admin user:
docker exec -it paperless python3 manage.py createsuperuser
Follow the prompts to set a username, email, and password.
Open your browser and go to http://docs.home.
First Look at the Interface
Log in with the admin credentials you just created. The interface has three main sections:
Dashboard — Overview of your document archive with recent additions and statistics.
Documents — Your full document library, filterable by tags, correspondents, type, and date.
Inbox — Documents that have been processed but not yet reviewed and confirmed.
Import Existing Documents
If you have PDFs already organized on your computer — tax returns, insurance policies, bank statements — copy them into the consume folder:
cp ~/staging/documents/*.pdf /data/paperless/consume/
Paperless watches this folder automatically. Within a minute, it will pick up every file, process it through OCR, and add it to your archive. Check the Dashboard to watch documents appear.
For larger imports, you can drop hundreds of files at once — Paperless processes them in a queue.
Set Up a Scanning Workflow
For ongoing use, you need an easy way to get paper documents into Paperless. A few options:
Phone scanning — Scan documents with your phone camera using a scanning app (Adobe Scan, Microsoft Lens, or Apple’s built-in document scanner in the Notes app). Save as PDF, then upload to Paperless via the web interface.
Network scanner — If you have a scanner that can send to a network folder, point it at your consume directory.
Email to Paperless — Paperless can be configured to watch a mailbox and process attachments automatically. Useful for digital statements and receipts.
For most households, phone scanning works perfectly for the occasional paper document. The web interface has a direct upload button — tap it, select the scanned PDF, and Paperless does the rest.
Tags and Correspondents
Paperless becomes dramatically more useful once you set up tags and correspondents.
Correspondents are the senders of documents — your bank, your insurance company, your employer, the IRS. Create correspondents for each organization you receive documents from.
Tags are categories — “tax”, “medical”, “insurance”, “utility”, “warranty”. One document can have multiple tags.
Document types — Invoice, Statement, Letter, Report, Contract.
You can assign these manually when reviewing inbox documents, or set up automatic rules. For example: any document from “Chase Bank” automatically gets the correspondent “Chase” and the tag “banking.”
Once your library grows, these labels make it trivial to find exactly what you need.
Your Filing Cabinet, Digitized
After running Paperless-NGX for a few weeks, you’ll find yourself scanning every document that comes through your door. The friction of paper filing disappears — drop it in the consume folder, it’s searchable forever.
A well-maintained Paperless archive eventually becomes one of the most practically useful things on your home server.
Next: Secure Everything →
Cactus Commons Media