All Guides

Install Paperless-ngx: Self-Host Your Paperless Office 2026

Complete guide: Install Paperless-ngx with Docker, set up OCR, configure scanner. Including email import and backup strategy.

Dirk Hesse
February 5, 2026
6 min read

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 RAM

Step 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:

  1. Log in with your admin account
  2. Explore the dashboard
  3. 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:

  1. Install SwiftScan, Adobe Scan or Office Lens
  2. Photograph document (auto-crop)
  3. Export as PDF
  4. Upload to server via SFTP/SMB

Option B: Network Scanner

For regular bulk scans:

  1. Configure scanner with FTP/SMB upload
  2. Target: ~/paperless/consume/
  3. 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:

SettingConfigDescription
OCR for special documentsPAPERLESS_OCR_MODE=redoForces OCR even for PDFs with text layer
Save storagePAPERLESS_OCR_OUTPUT_TYPE=pdfaKeep archive-compliant PDFs instead of originals
More OCR languagesPAPERLESS_OCR_LANGUAGE=eng+deu+fraMultilingual documents
Barcode recognitionPAPERLESS_CONSUMER_ENABLE_BARCODES=trueAutomatically separate scanned documents by barcode

Example Workflow: Tax Returns

How I use Paperless for tax returns:

  1. Create tag 'Tax 2026'
  2. Scan all relevant documents (donation receipts, invoices, etc.)
  3. Paperless automatically tags similar documents
  4. At year end: Filter 'Tag = Tax 2026'
  5. Export all documents or show directly to accountant
  6. 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

Ready for the paperless office?

Paperless needs at least 4 GB RAM for OCR. Find suitable servers here.

Show servers with 4+ GB RAM

Matching VPS Calculator

Paperless-ngx Hosting 2026: VPS für dein papierloses Büro

Rechnungen scannen, Verträge archivieren, alles durchsuchbar – auf deinem eigenen Server.

Go to Calculator

Related Articles