The shoebox full of receipts. The folders you haven't opened in years. That important document you searched for last week.
Paper chaos costs time and nerves. Cloud services like Evernote (from €11/month) or Google Drive are okay, but: Who has access to your contracts and bank statements?
The math: A VPS (Virtual Private Server - your own server in the cloud) with 4 GB RAM costs from €5/month. On it runs Paperless-ngx with OCR, automatic categorization and full-text search - and you keep full control over sensitive documents.
Prerequisites
You need:
- A VPS with 2-4 GB RAM (4 GB recommended for smooth OCR). Find suitable servers from €5/month →
- Ubuntu 22.04 or 24.04
- Docker & Docker Compose
- Optional: Domain for HTTPS
- Optional: Document scanner or smartphone
VPS recommendations: Hetzner offers fast SSDs for smooth thumbnail loading, Netcup the best price-performance ratio for larger document archives.
Not sure whether to install Paperless on your NAS or a VPS? Our NAS vs VPS comparison helps with the decision.
Looking for a server for Paperless?
For OCR and indexing you need at least 4 GB RAM. Find suitable servers here.
Show servers with 4+ GB RAMStep 1: Install Paperless-ngx
We use Docker Compose for a clean installation:
mkdir -p ~/paperless && cd ~/paperless
Download docker-compose.yml:
curl -O https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml
mv docker-compose.postgres.yml docker-compose.yml
Create docker-compose.env:
curl -O https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.env
Adjust important settings:
# Edit docker-compose.env:
nano docker-compose.env
# Set:
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_OCR_LANGUAGE=eng+deu
PAPERLESS_SECRET_KEY=$(openssl rand -hex 32)
Step 2: Start and Create Admin
Start containers:
docker compose up -d
Create admin user:
docker compose exec webserver python manage.py createsuperuser
You'll be asked for username, email and password. This user is your admin account.
Step 3: First Login
Open http://YOUR-IP:8000 in your browser:
- Log in with your admin account
- Explore the dashboard
- Check under 'Settings' → 'OCR Settings' if 'eng' is active
Tip: The web UI is responsive - works on smartphones too.
Step 4: Understand the Consume Folder
The consume folder is the heart of Paperless:
All files you drop into this folder are automatically processed: OCR → Indexing → Auto-tagging. Afterwards they're moved to the archive.
# Consume folder path (default)
~/paperless/consume/
# Or in the container: /usr/src/paperless/consume/
Test: Add a document manually:
cp test-invoice.pdf ~/paperless/consume/
# Wait 30-60 seconds, then check in web UI
Step 5: Set Up Scanner
Several options to get documents into the consume folder:
Option A: Smartphone App
Easiest method for occasional scans:
- Install SwiftScan, Adobe Scan or Office Lens
- Photograph document (auto-crop)
- Export as PDF
- Upload to server via SFTP/SMB
Option B: Network Scanner
For regular bulk scans:
- Configure scanner with FTP/SMB upload
- Target: ~/paperless/consume/
- Automatic upload after each scan
Option C: Email Import
For digital invoices (Amazon, etc.) - see next section.
Step 6: Set Up Email Import (Optional)
Automatically forward invoice emails to Paperless:
Add to docker-compose.env:
PAPERLESS_EMAIL_TASK_CRON=*/5 * * * *
# Configure IMAP server:
PAPERLESS_EMAIL_HOST=imap.gmail.com
PAPERLESS_EMAIL_PORT=993
[email protected]
PAPERLESS_EMAIL_HOST_PASSWORD=app-password-here
Restart containers:
docker compose down && docker compose up -d
Paperless checks the mailbox every 5 minutes and imports attachments from new emails.
Warning: Use a dedicated email account for Paperless, not your main address!
Step 7: Train Auto-Tagging
After the first 10-20 documents, the magic begins:
1. Create Correspondents
Under 'Manage' → 'Correspondents' add frequent senders (Amazon, utility company, insurance, etc.)
2. Define Document Types
Under 'Document Types': Invoice, Contract, Bank Statement, Tax, etc.
3. Create Tags
For categories: 'Tax 2026', 'Important', 'Insurance', etc.
4. Define Matching Rules
For each correspondent/tag: Set 'Auto-matching' to 'Automatic'
Tip: After 50+ documents, Paperless should get ~80% of assignments automatically correct.
Step 8: Set Up HTTPS (Recommended)
For secure access from outside:
Add Caddy as reverse proxy (extend docker-compose.yml):
services:
# ... existing services ...
caddy:
image: caddy:latest
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
volumes:
caddy_data:
Caddyfile:
paperless.yourdomain.com {
reverse_proxy webserver:8000
}
Step 9: Set Up Backup (Important!)
Your documents are important - set up backups:
Use Paperless export function:
docker compose exec webserver document_exporter /export
# Exports all documents + metadata to /export
Backup script:
#!/bin/bash
BACKUP_DIR="/backup/paperless"
DATE=$(date +%Y%m%d)
# PostgreSQL backup
docker compose exec -T db pg_dump -U paperless > $BACKUP_DIR/db-$DATE.sql
# Backup documents
tar -czf $BACKUP_DIR/media-$DATE.tar.gz ~/paperless/media
# Delete old backups (30 days)
find $BACKUP_DIR -mtime +30 -delete
Warning: Test the restore process at least once! An untested backup is no backup.
Advanced: Further Configuration
Useful settings:
| Setting | Config | Description |
|---|---|---|
| OCR for special documents | PAPERLESS_OCR_MODE=redo | Forces OCR even for PDFs with text layer |
| Save storage | PAPERLESS_OCR_OUTPUT_TYPE=pdfa | Keep archive-compliant PDFs instead of originals |
| More OCR languages | PAPERLESS_OCR_LANGUAGE=eng+deu+fra | Multilingual documents |
| Barcode recognition | PAPERLESS_CONSUMER_ENABLE_BARCODES=true | Automatically separate scanned documents by barcode |
Example Workflow: Tax Returns
How I use Paperless for tax returns:
- Create tag 'Tax 2026'
- Scan all relevant documents (donation receipts, invoices, etc.)
- Paperless automatically tags similar documents
- At year end: Filter 'Tag = Tax 2026'
- Export all documents or show directly to accountant
- After completion: Change tag to 'Tax 2026 done'
Conclusion
You now have a complete document management system. Scan everything, find everything, keep control.
Cost comparison: Evernote Premium costs €132/year. A VPS for Paperless costs ~€60/year - and you can also run Vaultwarden as a password manager, Immich for photos or your own VPN on it.
Frequently Asked Questions
More Self-Hosting Guides
Ready for the paperless office?
Paperless needs at least 4 GB RAM for OCR. Find suitable servers here.
Show servers with 4+ GB RAM


