Choose a Plan
Paperless-ngx does not publish a single minimum VPS size. OCR speed and memory use vary with document length, image resolution, language packs, concurrent workers, and optional services.
These are Arct recommendations rather than upstream requirements. Review current resources on the Arct Cloud pricing page and leave capacity for originals, archived PDFs, thumbnails, the database, Redis, and exports.
Before You Begin
Prepare the following:- A fresh Ubuntu 24.04 server
- A domain or subdomain such as
documents.example.com - An
Arecord pointing that hostname to the server’s public IPv4 address - Docker Engine with the Docker Compose plugin, installed from the official Docker repository
- A reverse proxy such as Caddy or Nginx
Install Paperless-ngx
1
Deploy and Connect
2
Allow the Ubuntu User to Run Docker
After installing Docker Engine and the Compose plugin from Docker’s official Ubuntu repository, add the default Ubuntu user to the Docker group:Reconnect so the group membership takes effect, then verify Docker and Compose work without
sudo:3
Download the Official Compose Templates
Create the application directory and download the three files from Paperless-ngx’s official PostgreSQL Compose example:Review these files and compare their URLs with the current official setup documentation before continuing.
4
Secure the Template Before First Start
Patch the official template while it is still offline. This binds Paperless to loopback, replaces the template PostgreSQL password, and passes the same password to the webserver:Generate separate database and application secrets, configure the public URL, and lock both environment files to the current user:Validate the security-critical changes before pulling or starting anything:
5
Start the Private Stack and Create the Superuser
Only after the loopback and secret checks pass, start the stack and create the initial superuser from the server terminal:From a second terminal on your local computer, tunnel to the loopback-only service:Open
http://127.0.0.1:8000, sign in with the superuser, and verify the private installation. Stop the tunnel with Ctrl+C after the check.6
Enable HTTPS
Install Caddy using its official Debian and Ubuntu instructions, then add this block to
/etc/caddy/Caddyfile:7
Verify and Harden the Account
Open
https://documents.example.com and sign in with the superuser created privately. Create a non-superuser account for routine document work, restrict user permissions, and keep the superuser for administration only.Firewall and OCR Controls
Allow SSH before enabling UFW:8000, PostgreSQL, or Redis publicly. For limited servers, reduce concurrent workers, avoid unnecessary OCR language packs, keep PAPERLESS_OCR_MODE at its default, and consider limiting OCR pages or image-cleaning work according to the upstream low-resource guidance.
Back Up and Restore
Pause new document consumption before exporting. The official exporter includes documents, thumbnails, metadata, settings, and database content in the Composeexport directory. Keep that directory mode 0700 and require it to be empty so old plaintext exports are not mixed into a new recovery set:
age recipient public key; keep the matching private identity off the Paperless server:
.age file to off-server storage and compare its SHA-256 hash at the destination. After the remote copy is verified, remove the short-lived local plaintext, local encrypted staging file, metadata file, and exporter output:
document_importer into an empty installation running a compatible version. Review the backup and restore documentation and test the full procedure before relying on it.
Update Safely
Read the release notes and any referenced migration guide. Stop consumption, create an off-server export, then update the Compose deployment:Troubleshooting
Official Resources
Paperless-ngx Setup
Official installation routes, Compose templates, and low-resource guidance.
Paperless-ngx on GitHub
Source code, releases, issues, and security policy.
Paperless-ngx is developed independently of Arct Cloud. Arct Cloud is an independent infrastructure provider and is not affiliated with, sponsored by, or endorsed by the Paperless-ngx project.