Document management

Paperless-ngx VPS requirements: RAM, CPU and disk for a paperless office

By VPSfit · Sources checked · Paperless-ngx website · source code · GPL-3.0

Paperless-ngx turns scanned paper and PDFs into a searchable archive: it OCRs each document, files it with tags and correspondents it learns over time, and keeps the original. The project publishes no minimum hardware spec, only a list of settings for "less powerful devices" and a note that it runs on a Raspberry Pi. Idle, the app is usually a few hundred megabytes. What sizes the server is OCR on large scans, the auto-matching model, and the optional Office-document and AI add-ons.

Sizing guide

Our recommendations, derived from the sourced figures below. Not measurements.

ScenarioRAMvCPUWhy
Personal archive, PDFs or pre-OCR'd scans, SQLite2 GB1–2Idle use is usually a few hundred MB, but one user crashed on bigger documents at 1 GB and was stable at 2 GB. Follow the low-power settings (one webserver worker, OCR mode auto, OCR_CLEAN=none) and add 1–2 GB of swap. If your scanner already OCRs, Paperless skips most of the heavy work.
Household or small office with Office files and e-mail (Tika + Gotenberg, PostgreSQL)4 GB2Two extra Java/Chromium-based containers and a database. One host measured about 0.9 GB idle and 1.9 GB at OCR peak for this stack; 4 GB leaves room for the OS, a reverse proxy and occasional spikes from opening documents.
Big backlog import or fast ingestion4–8 GB4+One user's 2 workers × 4 threads setup sat at 1.5 GB and spiked to 3 GB. OCR of large, high-dpi scans has been OOM-killed even at 4–8 GB, so raise threads only as far as RAM allows. You can scale down once the backlog is done.
Local AI features (Ollama on the same VPS)Paperless plus the modelDepends on the modelPaperless doesn't publish numbers for this. The language model needs its own RAM on top of Paperless; the project wiki says local models must fit your hardware and can be slower. A remote OpenAI-compatible API keeps the VPS small, but sends document text to that provider and may cost money.

Official requirements

ItemWhat the project saysSource
Hardware requirementsNone published. The FAQ says it runs on a Raspberry Pi 3 B, but "certain parts of Paperless will run very slow, such as the OCR"Paperless-ngx FAQ: Will paperless-ngx run on Raspberry Pi?
checked Oct 25, 2026
Required servicesThe Paperless webserver plus a Redis-compatible broker (Valkey or Redis), which the maintainers confirm is required. The default compose file uses SQLite, so no separate database server; PostgreSQL and MariaDB are optionalPaperless-ngx setup docs and docker-compose.sqlite.yml
checked Oct 25, 2026
Optional servicesApache Tika and Gotenberg, two extra containers, are only needed to parse Office documents (.doc, .xlsx, .odt) and e-mails (.eml). Tika is off by defaultPaperless-ngx configuration: Tika
checked Oct 25, 2026
Workers and threadsPAPERLESS_TASK_WORKERS defaults to 1. Threads per worker default to max(floor(cores ÷ workers), 1), so one document can use every core. The docs warn that workers × threads above your core count makes Paperless "extremely slow"Paperless-ngx configuration: PAPERLESS_TASK_WORKERS / PAPERLESS_THREADS_PER_WORKER
checked Oct 25, 2026
Webserver workersPAPERLESS_WEBSERVER_WORKERS defaults to 1; "each worker process also loads the entire application into memory separately"Paperless-ngx configuration: PAPERLESS_WEBSERVER_WORKERS
checked Oct 25, 2026
Low-power settingsStick with SQLite, OCR only the first page (PAPERLESS_OCR_PAGES=1), keep OCR mode at auto, set PAPERLESS_OCR_CLEAN=none to "use less memory", skip archive files (PAPERLESS_ARCHIVE_FILE_GENERATION=never) to save disk, and keep one webserver workerPaperless-ngx setup: Running on less powerful devices
checked Oct 25, 2026
OCR timeoutTasks are killed after PAPERLESS_WORKER_TIMEOUT, default 1800 seconds; the docs say weak machines may need longer for large documentsPaperless-ngx configuration: PAPERLESS_WORKER_TIMEOUT
checked Oct 25, 2026
AI features (v3.0+)Off by default (PAPERLESS_AI_ENABLED=false). The generation model can be remote (OpenAI-compatible API) or local via Ollama; the default local Hugging Face embedding model is sentence-transformers/all-MiniLM-L6-v2. The wiki says local models "must fit your hardware"Paperless-ngx configuration: AI, and wiki: AI Model Recommendations
checked Oct 25, 2026
CPU architecturesThe compose files say Paperless "supports amd64, arm and arm64 hardware"; the FAQ notes 32-bit ARMv7 may need Dockerfile changesPaperless-ngx docker-compose files and FAQ
checked Oct 25, 2026
Current releasev3.3.4 (22 Oct 2026). Version 3.0.0 (22 Jul 2026) replaced the Whoosh search index with Tantivy and added the AI and remote OCR featuresPaperless-ngx releases
checked Oct 25, 2026

What people report in practice

Individual reports, not controlled tests. Versions, hardware and settings differ, so treat these as data points, not guarantees.

  • Webserver container idled at about 290 MB, then rose to 2.7 GB with spikes to 4.12 and 4.63 GB after opening the web UI. A second user saw 300–600 MB idle grow to 8 GB and an OOM kill with the frontend in use; others capped it with a Docker memory limit and swap

    GitHub discussion opened in 2025, replies into Jan 2026; a maintainer could not reproduce it and pointed to background tasks such as suggestions

    GitHub GitHub paperless-ngx discussion #9031: High RAM on Frontend Access · checked Oct 25, 2026

  • On a 2 GiB / 2-core VM with 100 documents, the webserver started at 365 MiB; one call to the document-suggestions endpoint took it to 1.125 GiB and a second made the VM unresponsive. The classifier file was 509 MiB, about 172 MiB each for tags, document types and correspondents with auto-matching on; removing auto-matching dropped edits to about 150 MiB extra

    GitHub discussion, Feb 2023 (v1.x); a maintainer suggested PAPERLESS_NUMBER_OF_SUGGESTED_DATES=0. Another user's model was 70 MB at 869 documents

    GitHub GitHub paperless-ngx discussion #2735: High memory usage on /api/documents/:id/suggestions · checked Oct 25, 2026

  • "With 1 GB RAM provided the processing of document tasks crashed regularly on bigger documents. With increase to 2 GB everything is stable." Another user said their Synology instance needs about 4 GB

    GitHub discussion about Raspberry Pi RAM, Feb 2024; Intel NUC VM

    GitHub GitHub paperless-ngx discussion #5833: Raspberry Pi RAM requirement · checked Oct 25, 2026

  • A user asking about a 1 vCPU / 1 GB cloud VM was told Redis "will run just fine on 1GB" for Paperless (Redis's own 4 GB guidance is for enterprise use); a maintainer added that Redis is required

    GitHub discussion, May 2024

    GitHub GitHub paperless-ngx discussion #6835: Run paperless-ngx on lightweight hardware · checked Oct 25, 2026

  • Container usually about 1.5 GB, occasionally spiking to about 3 GB, with PAPERLESS_TASK_WORKERS=2 and PAPERLESS_THREADS_PER_WORKER=4 (up to 8 cores during ingestion). Another user with about 500 documents saw brief CPU spikes on page loads and searches but little RAM change

    r/selfhosted thread, Aug 2024

    Reddit Reddit r/selfhosted: Paperless-NGX - what are y'all using for specs? · checked Oct 25, 2026

  • One user with about 900 documents saw 145 MiB in docker stats right after ingesting new ones. Others saw a few hundred MB grow to several GB during uploads until the stack restarted, OCR of large documents filling over 18 GB on a Synology, and OOM crashes on an 8 GB Raspberry Pi 5 during big imports

    r/Paperlessngx thread, Dec 2025; individual reports, versions mostly not given

    Reddit Reddit r/Paperlessngx: Paperless memory usage · checked Oct 25, 2026

  • OCR workers killed with SIGKILL on 30-page, 25 MB, 600 dpi scans. A maintainer: "The worker is being killed by the system, likely due to memory constraints… Ocr is an intensive process." The reporter still saw it after raising RAM from 4 to 8 GB

    GitHub issue, Oct 2024 (v2.x); closed as not a Paperless bug

    GitHub GitHub paperless-ngx #8125: Workers ending prematurely with kill -9 · checked Oct 25, 2026

  • Rebuilding the Tantivy search index for about 50,000 documents peaked at 4.2 GB of RAM before an optimization and 1.6 GB after, and ran over 5× faster

    Contributor's benchmark in a pull request merged into the v3 beta branch, Jul 2026

    GitHub GitHub paperless-ngx PR #13053: Tantivy indexing optimization · checked Oct 25, 2026

  • Their table: about 880 MB idle and 1.9 GB at OCR peak for the full stack (webserver ~650 MB idle / 1.1 GB peak, Tika ~160 / 400 MB, Gotenberg ~10 / 300 MB, PostgreSQL ~50 / 100 MB, Redis ~10 MB), and 5–10 MB of disk per document. They recommend 2 GB minimum, 4 GB recommended

    A VPS host's tutorial with PostgreSQL, Tika and Gotenberg; their figures, not ours

    Blog Virtua.Cloud: Self-host Paperless-ngx on a VPS with Docker Compose · checked Oct 25, 2026

Our measurements: coming soon

We haven't measured Paperless-ngx yet, so there are no VPSfit lab numbers on this page. When we do, they'll show the app version, the plan it ran on, the date, and the raw data. Here's what we'll record:

  • Idle RAM of the stock SQLite + Valkey compose stack on a fresh 2 GB plan, and of the PostgreSQL + Tika + Gotenberg stack on 4 GB
  • Peak RAM and time to OCR a fixed 30-page 300 dpi scan on 1, 2 and 4 vCPU plans at default threads
  • RAM after opening 50 documents in the web UI, then after one hour idle
  • Disk used per 100 documents from a fixed mixed set (scans, born-digital PDFs, Office files)

How we measure →

What drives Paperless-ngx's RAM use

OCR is the big one

Paperless hands scanned pages to OCRmyPDF and Tesseract. Each thread works on one page, and threads default to every core, so a 4-vCPU box OCRs four pages at once and needs RAM for all of them. High-dpi scans and long documents are the worst case. Born-digital PDFs with a text layer skip OCR in the default auto mode (OCR mode docs).

The matching model

Tags, document types and correspondents set to "Auto" train a classifier that gets loaded to make suggestions. In one 2023 report it was 509 MiB at 100 documents and pushed a 2 GiB VM over the edge (discussion #2735); another user's was 70 MB at 869 documents. If suggestions use too much memory, match on words or regex instead of Auto.

Webserver workers and memory that isn't returned

Each webserver worker loads the whole app, so keep the default of 1 on a small VPS. Several users report the webserver growing after browsing or uploading and not shrinking until a restart (#9031, #3616), while maintainers' own instances idle at roughly 400–550 MB. A Docker memory limit plus swap is what users settled on.

Disk: originals, archive copies and thumbnails

Paperless keeps your original, and for scanned documents also a PDF/A archive copy, plus a thumbnail. One host estimates 5–10 MB per document; your scans may be smaller or larger. PAPERLESS_ARCHIVE_FILE_GENERATION=never skips the archive copies. Search-index rebuilds on very large archives can also take more than a gigabyte of RAM.

Gotchas on a VPS

  • Keep workers × threads at or below your vCPUs. The docs warn that going over your core count makes Paperless "extremely slow". On a 2-vCPU VPS, the defaults (1 worker, 2 threads) already use both cores during OCR, so the web UI may lag while documents process (docs).
  • Add swap before your first big import. Memory spikes during OCR or index rebuilds are short. On a 2 GB plan, a couple of GB of swap turns an OOM kill into a slow moment; one Raspberry Pi user's out-of-memory crashes stopped after enlarging swap to 2 GB (#768).
  • Large scans may need a longer timeout. Tasks are cut off after 1800 seconds by default. On a 1-vCPU plan, long scanned documents can hit that; raise PAPERLESS_WORKER_TIMEOUT or OCR fewer pages with PAPERLESS_OCR_PAGES.
  • SQLite and parallel imports. SQLite is the low-resource default, but many workers importing at once can hit "database is locked" errors. The docs suggest PostgreSQL if you often process many documents at once, or a longer PAPERLESS_DB_TIMEOUT (troubleshooting).
  • Back up with the exporter, and off the VPS. The built-in document_exporter writes documents and metadata to the export folder in a form you can re-import (administration docs). Copy that folder to another machine or object storage. A document archive is exactly the data you don't want to lose with a server.
  • Don't expose the broker; put HTTPS in front. The docs ask you to make sure your Redis or Valkey instance is secured; in the stock compose files it is only on the internal Docker network, so don't publish port 6379. Serve the UI through a reverse proxy with HTTPS and set PAPERLESS_URL to your domain.

Cheapest plans that fit

Paperless-ngx, SQLite + Valkey, low-power settings: 2 GB RAM and 1+ vCPU

Threshold: VPSfit floor: one user's tasks crashed at 1 GB and were stable at 2 GB; most reports idle at 145–600 MB (source). Only plans with at least 1 vCPU are listed.

Provider & planRAMvCPUDisk Price / monthTermsSource
Contabo Cloud VPS 4 8 GB 4 shared 100 GB SSD €4.40
excl. VAT · ≈ $4.93
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 6 12 GB 6 shared 200 GB SSD (or 100 GB NVMe) €6.00
excl. VAT · ≈ $6.73
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Vultr Cloud Compute Regular 2 GB 2 GB 1 shared, previous-gen Intel 55 GB SSD $10.00
before tax
Monthly price, hourly billing vultr.com
checked Oct 21, 2026
Hostinger KVM 1 4 GB 1 AMD EPYC 50 GB NVMe $11.99
intro $6.49
before tax
Prepaid intro rate; renews at $11.99/mo hostinger.com
checked Oct 21, 2026

Paperless-ngx with PostgreSQL, Tika and Gotenberg: 4 GB RAM and 2+ vCPU

Threshold: VPSfit budget from a host's measurement of ~0.9 GB idle and ~1.9 GB OCR peak for this stack, plus OS and spike headroom (source). Only plans with at least 2 vCPUs are listed.

Provider & planRAMvCPUDisk Price / monthTermsSource
Contabo Cloud VPS 4 8 GB 4 shared 100 GB SSD €4.40
excl. VAT · ≈ $4.93
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 6 12 GB 6 shared 200 GB SSD (or 100 GB NVMe) €6.00
excl. VAT · ≈ $6.73
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 8 24 GB 8 shared 300 GB SSD (or 150 GB NVMe) €11.20
excl. VAT · ≈ $12.56
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Hostinger KVM 2 8 GB 2 AMD EPYC 100 GB NVMe $14.99
intro $8.79
before tax
Prepaid intro rate; renews at $14.99/mo hostinger.com
checked Oct 21, 2026

Paperless-ngx for big imports (2 workers × 2 threads): 4 GB RAM and 4+ vCPU

Threshold: Workers × threads must not exceed cores; one 2 × 4 setup idled at 1.5 GB and spiked to 3 GB (source). Only plans with at least 4 vCPUs are listed.

Provider & planRAMvCPUDisk Price / monthTermsSource
Contabo Cloud VPS 4 8 GB 4 shared 100 GB SSD €4.40
excl. VAT · ≈ $4.93
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 6 12 GB 6 shared 200 GB SSD (or 100 GB NVMe) €6.00
excl. VAT · ≈ $6.73
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 8 24 GB 8 shared 300 GB SSD (or 150 GB NVMe) €11.20
excl. VAT · ≈ $12.56
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
RackNerd KVM 4 GB affiliate link 4 GB 4 shared, Intel Xeon 130 GB SSD (RAID-10) $24.59
before tax
Monthly racknerd.com
checked Oct 21, 2026

Plan links marked affiliate link are affiliate links: if you sign up through one, we may earn a commission at no extra cost to you. They go to the provider's site, not to the specific plan; the Source column links the plain pricing page we checked. Affiliate status never changes the order. Disclosure.

Prices checked Oct 21, 2026 on each provider's official pricing page. EUR prices converted at the ECB rate of Oct 20, 2026 (1 € = $1.1215) only for ranking. See all plans on the cheapest 4 GB VPS page.