bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward

Paperless-ngx Hardware Requirements for Documents and OCR

calendar_month September 13, 2026 schedule 17 min read visibility 12 views
person
Valebyte Team
Paperless-ngx Hardware Requirements for Documents and OCR
summarize

TL;DR

  • For up to 1,000 documents, use 2 vCPU, 4 GB RAM, and 80 GB NVMe storage.
  • OCRmyPDF and Tesseract cause main CPU spikes; size for peak OCR load, not idle usage.
  • For 1,000-10,000 documents with regular OCR, use 4 vCPU, 8 GB RAM, 200 GB NVMe.
  • 10,000 digital PDFs need 10-30 GB storage, but 10,000 scanned contracts need 80-250 GB.

Paperless-ngx hardware requirements: baseline specs and sizing guide

For a Paperless-ngx archive of up to 1,000 documents, 2 vCPU, 4 GB RAM, and 80 GB NVMe storage are enough, but bulk OCR imports of 10,000+ files need at least 4 vCPU and 8 GB RAM.

Paperless-ngx is a relatively lightweight self-hosted application while idle: the web interface, PostgreSQL, Redis, and background processes typically use less than 1 vCPU. Load changes when new documents arrive. Every PDF, scan, or image goes through OCR with OCRmyPDF and Tesseract; enabled Apache Tika and Gotenberg integrations add office document conversion, text extraction, and PDF rendering.

That is why paperless-ngx server requirements cannot be estimated from the number of users alone. The main factors are archive size, daily document volume, the percentage of scans without a text layer, image resolution, and how quickly you need to clear a backlog.

Services that run in Paperless-ngx

  • PostgreSQL stores metadata, tags, correspondents, the full-text index, and settings.
  • Redis is used by queues and background tasks; it typically needs 128–512 MB RAM.
  • Consumer monitors the consume directory and starts document processing.
  • OCRmyPDF and Tesseract recognize scans, create searchable PDFs, and cause the main CPU spikes.
  • Gotenberg converts DOCX, XLSX, HTML, and other office formats to PDF.
  • Apache Tika extracts text and metadata from supported formats.

Why you should size for peak load, not idle usage

One user opening documents in a browser places almost no load on the server. Uploading 500 scans with 5–20 pages each is different: several OCR processes can occupy all CPU cores for tens of minutes or hours. The hardware sizing approach is the same as for other services: measure peak background workloads first, then leave capacity headroom. This principle is covered in detail in our guide to sizing hardware for self-hosted applications.

Paperless ngx hardware requirements by archive size

Paperless ngx hardware requirements depend primarily on document count and import patterns. An archive of 10,000 digital PDFs may use 10–30 GB, while 10,000 scanned contracts at 300 dpi often require 80–250 GB before backups.

Load scale → specs

For an archive of up to 10,000 documents with regular OCR uploads, 4 vCPU, 8 GB RAM, 200 GB NVMe storage, and a 1 Gbps port are sufficient.

Load scale vCPU RAM Storage Network port Bandwidth Price
Up to 1,000 documents, up to 50 new documents per day 2 vCPU 4 GB 80 GB NVMe 1 Gbps 1 TB/month approximately from $8/month
1,000–10,000 documents, up to 300 new documents per day 4 vCPU 8 GB 200 GB NVMe 1 Gbps 2 TB/month approximately from $18/month
10,000–50,000 documents, up to 1,000 new documents per day 6–8 vCPU 16 GB 500 GB NVMe 1 Gbps 3–5 TB/month approximately from $35/month
50,000+ documents, bulk imports, and multiple users 8–12 vCPU 24–32 GB 1 TB NVMe 1 Gbps 5 TB+/month approximately from $70/month

Prices are general market estimates as of March 2025 for VPS plans in this class; actual cost depends on location, CPU type, NVMe capacity, and included bandwidth.

How to interpret the load tiers

The first tier is suitable for a home archive, personal bills, contracts, and mail. 2 vCPU can handle OCR, but a queue of several hundred documents will not clear instantly. It is a sensible option when imports run overnight or files arrive gradually.

The 4 vCPU and 8 GB RAM tier is a practical minimum for a small business or department. It can run PostgreSQL, Redis, Paperless-ngx containers, and Gotenberg without constant memory pressure while processing several documents in parallel.

An archive of 50,000 documents or more needs more than additional CPU cores. Fast NVMe, storage growth capacity, regular PostgreSQL maintenance, and independent backups are important. If other services run on the same server, do not mix Paperless-ngx resources with critical databases.

Looking for a reliable server for your projects?

VPS plans from $10/month and dedicated servers from $9/month with NVMe, DDoS protection, and 24/7 support.

View plans →

Paperless ngx RAM CPU usage during OCR and conversion

Paperless ngx RAM CPU usage is uneven: while idle, the stack often fits within 1–2 GB RAM and a fraction of one CPU core, while OCR for one large scan can fully use 1 CPU thread.

OCR performance: practical benchmarks

Tesseract within OCRmyPDF scales well with the number of documents processed concurrently, but it does not turn a single document into a perfectly multithreaded workload. On a modern CPU running at around 3.0 GHz, one A4 page at 300 dpi is typically recognized in 1–5 seconds. Color scans, tables, poor contrast, and 600 dpi can increase this to 10–30 seconds per page.

As a practical benchmark, a server with 4 fast vCPU can process approximately 1,000–3,000 standard pages per hour with a parallel queue, provided storage is not the bottleneck. On 2 slow shared vCPU, the same workload can take 2–4 times longer. For OCR, single-core performance and the absence of aggressive CPU throttling matter more than a high nominal number of virtual cores.

Tika and Gotenberg: when you need more resources

Paperless ngx ocr server specs should account for Tika and Gotenberg only when processing office documents, emails, presentations, and HTML. Gotenberg uses Chromium or LibreOffice-like processes and can temporarily consume 500 MB–1.5 GB RAM when converting a complex file. For a server running Gotenberg, do not choose less than 4 GB RAM even if the archive itself is small.

Limit consumer parallelism if the VPS is shared with other applications. For example, a starting Docker Compose configuration can look like this:

services:
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    environment:
      PAPERLESS_THREADS_PER_WORKER: "2"
      PAPERLESS_WORKERS: "2"
      PAPERLESS_OCR_LANGUAGE: "rus+eng"
      PAPERLESS_TASK_WORKERS: "2"

On 2 vCPU, it makes sense to start with 1–2 OCR tasks; on 4 vCPU, start with 2–4. After a bulk import, check CPU load, memory usage, and queue length instead of blindly increasing workers.

Quick pick
Need a dedicated server?
Bare metal with NVMe in 70+ locations — configure and order in minutes.
Browse servers

How much RAM does Paperless-ngx need and how to size storage

The practical answer to “how much RAM for Paperless ngx” is: 4 GB is the minimum for a personal archive, 8 GB is a comfortable level with Gotenberg, and 16 GB is the working standard for 10,000–50,000 documents and parallel imports.

Memory: containers, file cache, and the database

Do not allocate RAM based only on the combined memory usage of containers. Linux uses free memory for file cache, while PostgreSQL benefits from caching indexes and frequently requested metadata. On a 4 GB VPS, free capacity may quickly fall to 1 GB after starting Paperless-ngx, PostgreSQL, Redis, and Gotenberg. During DOCX conversion or OCR of large PDFs, swap starts being used and processing time can increase severalfold.

  • 4 GB RAM: up to 1,000–3,000 documents, 1–2 background workers, without heavy batch uploads.
  • 8 GB RAM: up to 10,000 documents, 2–4 workers, Tika/Gotenberg, and daily imports.
  • 16 GB RAM: an archive of up to 50,000 documents, multiple users, and headroom for PostgreSQL and imports.
  • 24–32 GB RAM: a large archive, 8+ OCR threads, colocated services, or processing large TIFF/PDF files.

Storage sizing formula

Calculate disk capacity from the original files, not PostgreSQL size. Use the formula: original archive size × 1.5 + 20–50 GB for the system, database, and temporary files. The 1.5 multiplier covers OCR-generated PDFs, thumbnails, the index, temporary data, and moderate growth.

For example, if your current documents use 120 GB, a reasonable minimum is 200 GB NVMe, but 300–400 GB is better for a year of growth. Do not keep the only backup on the same disk: a filesystem failure, accidental deletion, or server compromise affects both the archive and the backup.

For your storage strategy, apply the approaches from our guide to backup sizing and deduplication: reserve separate capacity and test restores, not just whether a job completed successfully.

Paperless ngx server requirements for network, storage, and security

Paperless ngx server requirements for networking are usually modest: a 1 Gbps port is enough for one office, while a stable connection and sufficient monthly bandwidth for uploads and backups matter more.

Bandwidth: what is actually transferred

When using the browser interface, users upload originals and download PDFs. If 500 documents averaging 10 MB are received each month, inbound data totals about 5 GB. Backups create the main bandwidth usage: an archive of 200 GB transfers approximately 200 GB during the first upload, while later incremental copies transfer only changed data.

A 1 Gbps port can theoretically transfer up to 125 MB/s, but speed is limited by storage, routing, VPS performance, and remote storage. Allow several hours, rather than 30 minutes, for an initial 200 GB sync. For internet access, use HTTPS, strong passwords, two-factor authentication where external SSO is available, and access restrictions through a VPN or firewall.

NVMe matters more than a large SATA drive

OCR reads the original file, creates intermediate files, writes the final PDF, and updates PostgreSQL. Slow storage increases latency across the entire queue. NVMe with tens of thousands of IOPS is significantly better suited to simultaneous database activity and imports than HDD storage. A SATA SSD is acceptable for a small archive of up to 1,000 documents, but NVMe is preferable for 10,000+ documents.

If you need isolated hardware, RAID, a large local array, or dozens of parallel tasks, see our guide to choosing a dedicated Linux server for your workload. A dedicated server is especially worthwhile when Paperless-ngx becomes part of a company document workflow rather than a personal archive.

Paperless ngx self hosted hardware: VPS vs dedicated server

Paperless ngx self hosted hardware usually starts with a VPS: for up to 10,000 documents, there is no need to pay for a physical server if you have 4 vCPU, 8 GB RAM, and NVMe storage.

When a VPS is enough

A VPS is suitable for a personal archive, a small business, a department of up to 20 employees, and gradual document uploads. Choose a configuration that lets you increase RAM and storage without a difficult migration. For OCR, CPUs with predictable performance are preferable: an inexpensive VPS with high noisy-neighbor limits can deliver inconsistent recognition speed.

An optimal starting setup is a separate VPS for Paperless-ngx, Docker Compose, a daily PostgreSQL dump, and a remote copy of the media directory. Do not expose PostgreSQL and Redis to the internet: only the reverse proxy or web container should be publicly accessible over HTTPS.

When to move to a dedicated server

A dedicated server is needed for an archive of 50,000+ documents, daily processing of thousands of pages, local RAID requirements, many integrations, or hosting several internal services at the same time. A configuration with 8 cores at 3.0 GHz+, 32 GB ECC RAM, and 2 × 1 TB NVMe in RAID 1 provides substantially more predictable processing than an overloaded VPS.

Do not run resource-intensive LLMs, video encoding, and OCR on the same node without strict container limits: the services will compete for CPU and memory. If your infrastructure includes local models, consider the recommendations for self-hosted AI, RAM, and VRAM separately from document management resources.

Quick pick
Need a dedicated server?
Bare metal with NVMe in 70+ locations — configure and order in minutes.
Browse servers

How to deploy and tune Paperless-ngx performance

Stable Paperless-ngx operation starts with separating data, setting proper Docker limits, and monitoring free space: a disk filled to 100% can stop both PostgreSQL and document imports.

Minimum Docker Compose settings

For a production deployment, place data directories on NVMe, configure the timezone, OCR languages, and regular backup jobs. Example key variables:

services:
  webserver:
    environment:
      PAPERLESS_REDIS: redis://redis:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DATA_DIR: /usr/src/paperless/data
      PAPERLESS_MEDIA_ROOT: /usr/src/paperless/media
      PAPERLESS_CONSUMPTION_DIR: /usr/src/paperless/consume
      PAPERLESS_OCR_LANGUAGE: rus+eng
      PAPERLESS_TIME_ZONE: Europe/Moscow
      PAPERLESS_URL: https://paperless.example.com

The data, media, and PostgreSQL database directories must use persistent volumes. The consume directory can grow temporarily after an OCR failure, so monitor it separately.

Checking the queue and container status

After importing 100–200 test documents, check actual resource utilization. Commands for basic diagnostics:

docker compose ps
docker stats --no-stream
docker compose logs --tail=100 webserver
df -h
free -h
uptime

If CPU remains above 90% for more than 30 minutes and the queue does not shrink, first reduce the number of parallel tasks or increase vCPU. If free memory is below 500 MB and swap is active, add RAM. If NVMe utilization exceeds 80%, expand the volume in advance: PostgreSQL and Docker need free space to operate normally.

Backups, updates, and resource monitoring

For Paperless-ngx, copying PDFs alone is not enough: a full recovery requires originals, the PostgreSQL database, configuration files, and keys used for encryption or integrations.

What to include in backups

  1. The media directory with original and processed documents.
  2. A PostgreSQL dump at least once per day.
  3. Docker Compose files, .env, and reverse proxy configuration.
  4. Keys and secrets, including PAPERLESS_SECRET_KEY, in secure storage.
  5. A separate copy outside the primary VPS or dedicated server.

Test recovery on a test machine at least once per quarter. A 300 GB backup that has never been restored is not verified protection. For critical archives, use the 3-2-1 rule: 3 copies, 2 different media types, and 1 copy off-site.

When to scale the configuration

Upgrade signals are clear: average CPU usage during imports exceeds 80%, the OCR queue cannot clear overnight, swap is constantly used, less than 20% disk space remains free, or interface requests have become noticeably slower. In this situation, add vCPU for OCR first, then RAM for the database and cache, and then expand NVMe storage.

Do not confuse high CPU load during a one-time migration with a permanent need for an expensive configuration. You can import 30,000 old files on a temporarily upgraded server, then reduce resources to the level needed for daily operation.

Frequently Asked Questions

Paperless-ngx resource answers

How much RAM does Paperless-ngx need? 4 GB RAM is enough for a personal archive of up to 1,000 documents. If Gotenberg, Apache Tika, and regular OCR processing are enabled, choose 8 GB. For 10,000–50,000 documents, multiple users, and 4+ background tasks, allocating 16 GB RAM is sensible to avoid constant swap usage.

How many vCPU does Paperless-ngx need for OCR? The minimum is 2 vCPU for occasional imports, but 4 vCPU is considerably more comfortable for daily processing. When uploading 1,000 or more pages per day, choose 6–8 vCPU. One OCR process can use almost an entire core, so the number of cores determines queue processing speed.

Does Paperless-ngx need an NVMe drive? A SATA SSD can be used for an archive of up to 1,000 documents, but NVMe is recommended for 10,000+ files. Paperless-ngx simultaneously reads originals, creates temporary PDFs, writes thumbnails, and updates PostgreSQL. The practical minimum is 80 GB NVMe, while a medium-sized archive more often needs 200 GB.

Can I install Paperless-ngx on a VPS with 2 GB RAM? Technically, a minimal installation without heavy processing can sometimes run on 2 GB RAM, but this is risky for production. PostgreSQL, Redis, the Paperless-ngx container, and OCR can cause swap or OOM with a single large PDF. For reliable operation, use at least 4 GB RAM and 2 vCPU.

Quick pick
Need a dedicated server?
Bare metal with NVMe in 70+ locations — configure and order in minutes.
Browse servers

Conclusion

Server selection recommendation

For most Paperless-ngx archives of up to 10,000 documents, choose a VPS with 4 vCPU, 8 GB RAM, and 200 GB NVMe. For bulk OCR, an archive of 50,000+ files, or daily uploads of thousands of pages, move to 8 vCPU, 16–32 GB RAM, and 1 TB+ NVMe with separate backups.

SSD NVMe
Ready to launch your VPS?

NVMe VPS hosting activated in 60 seconds: full root access, 20+ locations, and card or crypto payments.

Choose a plan
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.