My garage currently houses a filing cabinet with a drawer full of a huge, unsorted stack of documents. It’s the classic “I’ll deal with this later” pile that has finally reached its limit. My goal is to stop adding to that stack and transition to a fully digital, accessible system. I want my records to be searchable and organized, not buried under a layer of dust.
I chose Paperless-ngx for this. It’s a self-hosted tool that uses OCR (Optical Character Recognition) to make every scanned document searchable. Here is how I configured the system to bridge the gap between my Fedora Server and my Pop!_OS desktop.
1. The Foundation: Podman and ZFS
On my Fedora server, I use Podman to keep my apps organized. Instead of a messy manual install, Paperless runs in “containers”—basically self-contained bubbles. My setup uses three main ingredients:
- The Web Server: The interface where I actually view and search my files.
- The Database (PostgreSQL): The “brain” that remembers all my tags, dates, and metadata.
- The Broker (Redis): The “manager” that handles background tasks like OCR scanning.
These three live together in a Pod. This keeps them isolated from the rest of my server but allows them to communicate perfectly. For storage, I pointed the system to a specific folder within my ZFS pool. Using ZFS ensures that my digital archive is sitting on high-reliability drives, protected from hardware failure.
2. Solving the Migration “Glitches”
Moving an app like this usually comes with a few hurdles, mostly involving permissions. If the container doesn’t have the right “clearance” to write to the ZFS folders, it can’t process new files. After migrating my data, I had to ensure the folder permissions were set correctly so the app could actually “see” the files.
I also ran into an issue where my document thumbnails were missing. To fix this, I had to “reach inside” the running container and run a maintenance command: podman exec -it paperless-web document_thumbnails. This forced the system to re-scan my PDFs and recreate the previews, making the dashboard functional and visual again.
3. Desktop Integration: The “Send to Paperless” Shortcut
To make sure I actually use this system instead of letting papers pile up, the “on-ramp” needs to be effortless. I created a custom script for the Files manager (Nautilus) on my Pop!_OS desktop.
By adding a small script to ~/.local/share/nautilus/scripts, I now have a right-click menu option. I can take any PDF, whether it’s a digital receipt or a fresh scan, right-click it, and select Scripts > Send to Paperless.
The Password-less Handshake: To make this work seamlessly, I set up SSH keys between my desktop and the server using ssh-copy-id. This allows my desktop to “drop off” files on the server instantly without me having to type a password every single time.
4. Categorizing the Chaos
Once a file hits the server, I use Paperless’s tagging system to mimic (and improve upon) a physical filing cabinet. I’ve built out four main categories, each with its own set of detailed subtags:
- Finance: For bank and investment statements, receipts and tax records.
- Health: To keep track of medical records and an related insurance documents.
- Home: For warranties, repairs, and insurance.
- Personal: For notes, letters, journals, memories, etc.

I’ve configured Workflows so that every new document is automatically tagged Inbox. This gives me a “landing zone” where I can quickly apply these more detailed sub-tags before the file is tucked away.
Once a file hits the server, Paperless takes over. Workflows automatically does two things:
- The Inbox: Every new document is automatically tagged
Inboxso I know it needs a quick review. - Storage Paths: I set up rules to rename and move files into a clean hierarchy on the disk:
{{ correspondent }}/{{ created_year }}/{{ title }}.pdf. This keeps the server’s hard drive as organized as the web interface.
The Road Ahead: Tackling the Garage
The “plumbing” is finally done. The system is live, and every new document I receive now has a digital home. The next phase of the project is the big one: taking that full drawer of unsorted papers in the garage, scanning them in bulk, and letting the OCR finally make sense of years of records.
It’s a big DIY mountain to climb, but having a streamlined, one-click workflow makes the task feel like a manageable project rather than a chore.

