Going paperless isn’t just an environmental choice — it’s about taking control of your documents, making them searchable, and never losing an important piece of paper again. Paperless-ngx is the most powerful open-source document management system available in 2026, offering OCR, automated tagging, full-text search, and a modern web interface that makes organizing thousands of documents effortless.
In this comprehensive guide, you’ll learn how to self-host Paperless-ngx on Docker, configure automated workflows, set up scanners, implement best practices for tagging and organization, and create a bulletproof document archive that works exactly the way you want it to.
What is Paperless-ngx?
Paperless-ngx is a community-driven fork of the original Paperless project, offering significant improvements and active development. It’s designed to transform your physical documents into a searchable digital archive.
Core capabilities:
- OCR (Optical Character Recognition) — Automatically extracts text from scanned documents using Tesseract
- Full-text search — Find any document instantly, even if you only remember a few words
- Smart tagging — Automatic classification using machine learning and custom rules
- Email import — Forward documents directly to your archive
- Mobile apps — iOS and Android apps for scanning and uploading on the go
- Automated workflows — Process documents based on content, sender, or type
- Multi-user support — Share documents with family or team members
- API access — Integrate with other tools and automation systems
Unlike cloud-based alternatives like Evernote or Google Drive, Paperless-ngx gives you complete ownership of your data, runs on your own hardware, and doesn’t charge monthly fees based on document count.
Why Choose Paperless-ngx in 2026?
Active development: The project receives regular updates, security patches, and new features. The community is vibrant and helpful.
Superior OCR: Paperless-ngx supports multiple OCR engines and languages, with accuracy that rivals commercial solutions.
Privacy-first: Your documents never leave your server. Medical records, financial statements, legal documents — all stay under your control.
Cost-effective: After initial setup, there are no subscription fees. Archive millions of pages without worrying about storage limits or per-page pricing.
Powerful automation: Create rules that automatically tag, categorize, and route documents based on content analysis.
Prerequisites
Before starting, ensure you have:
- A Linux server running Ubuntu 22.04/24.04, Debian 11/12, or similar (2+ CPU cores, 4GB+ RAM recommended)
- Docker and Docker Compose installed (follow our Docker installation guide if needed)
- 100GB+ storage for document archive (requirements grow with your collection)
- Basic command-line knowledge
- (Optional) A document scanner — we recommend the Brother ADS-2700W or Fujitsu ScanSnap iX1600
Step 1: Create the Directory Structure
Set up organized directories for Paperless-ngx:
| |
Directory purposes:
- data/ — SQLite database and application files
- media/ — Processed documents and thumbnails
- export/ — Backup exports
- consume/ — Drop new documents here for automatic import
Step 2: Create the Docker Compose Configuration
Create docker-compose.yml:
| |
Step 3: Configure Environment Variables
Create .env file for secrets:
| |
Create .env:
| |
Security note: Use a strong password. This account has access to all your documents.
Step 4: Launch Paperless-ngx
Start the containers:
| |
Check logs to ensure everything started correctly:
| |
Wait for the message: Starting Paperless-ngx web server...
Access the web interface at http://your-server-ip:8000 and log in with the credentials from your .env file.
Step 5: Initial Configuration
Language and OCR Settings
Navigate to Settings → General and configure:
- Date format: Choose your preferred format (YYYY-MM-DD recommended for sorting)
- OCR languages: Install additional language packs if needed
- Filename format: Set how archived documents should be named
Document Types
Create document types for organization:
- Finance — Bank statements, invoices, receipts
- Medical — Insurance documents, prescriptions, lab results
- Legal — Contracts, agreements, certifications
- Personal — ID cards, passports, certificates
- Home — Manuals, warranties, utility bills
Go to Settings → Document Types and create these categories.
Tags
Set up a logical tagging system:
Status tags:
#action-required#pending#archived#reference
Source tags:
#scan#email#download
Category tags:
#tax-2026#insurance#warranty#medical
Go to Settings → Tags to create your tag structure.
Correspondents
Add frequent senders/recipients:
- Your bank
- Insurance companies
- Utility providers
- Government agencies
- Employers
This enables powerful filtering and automatic classification.
Step 6: Set Up Automated Workflows
Paperless-ngx can automatically process documents based on content.
Example: Auto-tag Bank Statements
Go to Settings → Workflows:
- Name: Bank Statement Auto-Tag
- Trigger: Content contains “Account Statement” OR filename contains “statement”
- Actions:
- Set document type: Finance
- Add tag: #banking
- Set correspondent: Your Bank Name
- Archive automatically
Example: Invoice Processing
- Name: Invoice Processing
- Trigger: Content contains “Invoice Number” OR “Total Due”
- Actions:
- Set document type: Finance
- Add tag: #invoice
- Add tag: #action-required
- Extract due date (if available)
Example: Medical Records
- Name: Medical Document Classification
- Trigger: Correspondent is “Health Insurance” OR content contains “patient”
- Actions:
- Set document type: Medical
- Add tag: #medical
- Add tag: #reference
Step 7: Configure Email Import
Enable email-to-Paperless functionality:
Edit your docker-compose.yml and add email settings:
| |
For Gmail:
- Enable 2FA on your Google account
- Generate an app-specific password
- Create a label called “Paperless”
- Forward or filter emails to this label
Paperless will check every 10 minutes and import attachments from that folder.
Step 8: Scanner Integration
Network Scanners (Recommended)
Modern scanners like the Brother ADS-2700W or Fujitsu ScanSnap can save directly to network folders.
Configure your scanner to save to ~/paperless-ngx/consume/ via SMB/NFS:
- Set up an SMB share pointing to the consume directory
- Configure scanner to save to that network location
- Paperless automatically picks up new files within seconds
Mobile Scanning
Use the official Paperless-ngx mobile app:
- iOS: Paperless Mobile
- Android: Available on F-Droid or Google Play
Scan documents with your phone camera, and they upload directly to your server.
Manual Upload
Simply drop PDF or image files into the consume/ directory, and Paperless processes them automatically.
Step 9: Backup Strategy
Protect your document archive:
Automated Exports
Paperless can export your entire archive regularly:
| |
This creates a complete backup including documents, database, and metadata.
Scheduled Backups
Add to your crontab:
| |
This runs weekly at 2 AM, exports everything, and syncs to your backup location.
Database Backups
For SQLite database:
| |
Step 10: Security Hardening
Enable HTTPS
Use a reverse proxy like Traefik or Caddy to add HTTPS.
Example Traefik labels:
| |
Enable Two-Factor Authentication
Paperless supports TOTP 2FA:
- Go to Settings → Security
- Enable two-factor authentication
- Scan QR code with your authenticator app
Restrict Access
Use environment variables to restrict access:
| |
Consider placing Paperless behind a VPN like Tailscale for additional security.
Advanced Tips and Best Practices
1. Consistent Naming Conventions
Set a filename template in Settings → General:
{created_year}/{correspondent}/{created_year}-{created_month}-{created_day} {title}
This creates organized folders by year and correspondent.
2. Use Custom Fields
Create custom fields for tracking:
- Due Date — For bills and action items
- Policy Number — For insurance documents
- Account Number — For financial statements
- Expiry Date — For warranties and subscriptions
3. Bulk Import Historical Documents
Got boxes of old documents? Scan them in batches:
- Use a document feeder scanner
- Drop all scans into
consume/ - Let Paperless process overnight
- Review and tag in batches using the web interface
4. Leverage Full-Text Search
Paperless indexes every word. Search examples:
invoice AND 2026— All 2026 invoicescorrespondent:bank AND tag:statement— All bank statementscontent:warranty expires— Documents mentioning warranty expiration
5. Create Smart Saved Searches
Save frequent queries:
- Unpaid Invoices:
tag:invoice AND tag:action-required - Tax Documents 2026:
tag:tax-2026 OR (created:[2026-01-01 TO 2026-12-31] AND (correspondent:employer OR tag:donation)) - Expiring Documents: Filter by custom “expiry date” field
Troubleshooting Common Issues
OCR Not Working
Check Tesseract installation:
| |
Install additional languages:
| |
High Memory Usage
Limit OCR resource consumption:
| |
Slow Processing
Enable Tika and Gotenberg (already in our compose file) for faster text extraction:
| |
Duplicate Documents
Enable automatic duplicate detection:
| |
Maintenance and Updates
Update Paperless-ngx
| |
Check the release notes before major updates.
Optimize Database
Periodically optimize the SQLite database:
| |
Conclusion
Paperless-ngx transforms document chaos into organized, searchable digital archives. With OCR, automated tagging, email import, and powerful search capabilities, you’ll never lose a document again.
The investment in setting up Paperless-ngx pays dividends immediately — no more digging through filing cabinets, no more “where did I put that receipt?”, and complete control over your sensitive documents without relying on cloud services.
Start with a single category (like receipts or bank statements), build your workflows gradually, and before long you’ll have years of documents perfectly organized and instantly accessible.
Next steps:
- Set up automated backups with Proxmox Backup Server
- Secure access with Traefik and Let’s Encrypt
- Monitor with Uptime Kuma
Have questions about Paperless-ngx? Join our community discussions or explore our other self-hosting guides.