Stack Sizer
Size a self-hosted stack from official sources.
Load and options
Paperless-ngx
v1.0.0Load
Small office, up to 10 users: ~500 documents/month (~2,500 pages), an archive of up to 5,000 documents, mail rules fetching invoices.
Options
Recommended resources
App requirements + system baseline + safety headroom. Nothing else is added, and nothing is rounded to a machine size.
vCPU 4.02, RAM 5.4 GiB, Disk 136.563 GiB
vCPU4.02
RAM5.4GiB
Disk136.563GiB
Breakdown
| Line | From | vCPU | RAM (GiB) | Disk (GiB) | Sources |
|---|---|---|---|---|---|
| Paperless-ngx | Paperless-ngx (web server, task worker, consumer) · Medium load | 2 | 2 | 103.5 | 12345 |
| Paperless-ngx | PostgreSQL · Medium load | 1 | 1 | 6.5 | 6789101112 |
| Paperless-ngx | Valkey (Celery task broker) · Medium load | 0.25 | 0.25 | 0.25 | 13413 |
| System baseline | Operating system, Container runtime (Docker Engine, containerd), System logs (journald), plus logs for 5 containers | 0.1 | 1.25 | 8.5 | 141516171819 |
| Safety headroom | vCPU 20%, RAM 20%, disk 15% of apps + baseline | 0.67 | 0.9 | 17.813 | 2015211822 |
| Recommended total | 4.02 | 5.4 | 136.563 |
Sources
- Paperless-ngx docs (v3.3.1): Configuration (TASK_WORKERS 1, THREADS_PER_WORKER, WEBSERVER_WORKERS 1, SECRET_KEY required, ADMIN_USER, Tika, OCR languages) (Paperless-ngx, read 14 Oct 2026)
- Paperless-ngx docs (v3.3.1): Setup (Docker Compose install, PostgreSQL recommended, superuser prompt, rootless, less powerful devices) (Paperless-ngx, read 14 Oct 2026)
- paperless-ngx repository: settings at v3.3.1 (CELERY_WORKER_CONCURRENCY = TASK_WORKERS default 1; threads = cpu_count / workers; task limit 1800 s; result TTL 3600 s; signed-pickle messages) (Paperless-ngx, read 14 Oct 2026)
- Virtua.Cloud tutorial: Self-host Paperless-ngx on a VPS (v3; webserver ~650 MB idle / ~1,100 MB during OCR; Tika ~160/400 MB; Gotenberg ~10/300 MB; 5-10 GB per 1,000 documents) (Paperless-ngx, read 14 Oct 2026)
- Docker Hub: paperlessngx/paperless-ngx tag 3.3.1 (same index digest as GHCR 3.3.1; linux/amd64 831,850,028 B compressed; layers decompressed and counted: 2,575,073,792 B) (Paperless-ngx, read 14 Oct 2026)
- PostgreSQL 18 documentation: 19.4 Resource Consumption (Paperless-ngx, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.3 Connections and Authentication (Paperless-ngx, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (Paperless-ngx, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (Paperless-ngx, read 10 Oct 2026)
- PostgreSQL 18 documentation: 51.2 How Connections Are Established (Paperless-ngx, read 10 Oct 2026)
- Docker Official Image postgres: documentation (docker-library/docs) (Paperless-ngx, read 10 Oct 2026)
- Docker Hub: library/postgres tag 18.6 (compressed image sizes) (Paperless-ngx, read 10 Oct 2026)
- Docker Hub: valkey/valkey tag 9.1.2-alpine (= 9-alpine; linux/amd64 18,803,257 B compressed; layers decompressed and counted: 45,906,944 B) (Paperless-ngx, read 14 Oct 2026)
- Ubuntu Server: System requirements (Sizing policy, read 10 Oct 2026)
- Google Kubernetes Engine: About GKE node sizing (Sizing policy, read 10 Oct 2026)
- ANAROQ measurement: dockerd and containerd at rest (Ubuntu 24.04, Docker 29.8.2) (Sizing policy, read 10 Oct 2026)
- Docker Community Forums: Docker resource usage & overhead (Sizing policy, read 10 Oct 2026)
- journald.conf(5), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
- Docker Docs: Local file logging driver (Sizing policy, read 10 Oct 2026)
- AWS Compute Optimizer: Rightsizing recommendation preferences (Sizing policy, read 10 Oct 2026)
- Kubernetes: Node-pressure Eviction (Sizing policy, read 10 Oct 2026)
- mke2fs(8), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
Basis
- Catalog release
- 2026.10.10
- Sizing policy
- 2026.10.0
- Profile Paperless-ngx
- 1.0.0
Deployment Spec
Turn this result into a link you can keep or share. Everything is in the link; nothing is sent to us.
A short lowercase image id, for example ubuntu-24.04.