cresdock
Home Apps Deploy Pricing
Cresdock  /  Apps  /  Paperless-ngx
Utilities

How to self-host Paperless-ngx

Scan your paper post and letters, then find any of it again by searching the words inside. Cresdock runs it on a server you own, from a catalogue, with no Docker and no reverse proxy to configure.

What Cresdock does for you with Paperless-ngx

Why run Paperless-ngx yourself

Small tools are where a subscription is hardest to justify: a few pounds a month, times a dozen tools, for software that would run happily on a server you already pay for.

What kind of server Paperless-ngx needs

More than most. Paperless-ngx brings a database and a background worker with it, so budget roughly 1 GB of memory for the three together, and more if you expect it to be busy. Cresdock starts and manages both for you, but they run on your machine and count against your account like anything else.

Cresdock itself is undemanding — it runs on a small rented server, an old desktop or a mini PC, on Ubuntu or Debian. Everything it installs shares that machine, so the honest question is not "will this app run" but "how much am I going to put on here in total".

Where to run Paperless-ngx

Paperless-ngx runs wherever Cresdock runs, and the choice is about the machine, not the app:

Installing Paperless-ngx

  1. Put Cresdock on a server

    One line on any Ubuntu or Debian machine — a rented VPS, a spare PC, a home server. It sets itself up.

  2. Pick Paperless-ngx from the catalogue

    Click Install. The panel pulls the image, writes the configuration, gets a certificate and starts it.

  3. Open it from your dashboard

    Its address and any login details are on its card. Start, stop, update, roll back or remove it from the same place, any time.

What's left for you to do

Cresdock does not pretend to do the parts that are genuinely yours to decide. After it's running:

What this replaces

Doing it by hand means writing something like this, then keeping it working:

services:
  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx:2.18
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - DB_HOST=db
      - DB_PASSWORD=<choose one>
      - REDIS_URL=redis://cache:6379
    volumes:
      - ./paperless/config:/config
    depends_on:
      - db
      - cache

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_PASSWORD=<the same one>
      - POSTGRES_DB=paperless
    volumes:
      - ./pgdata:/var/lib/postgresql/data

  cache:
    image: redis:7-alpine
    restart: unless-stopped

And that is the easy half. Still to do:

On Cresdock, Paperless-ngx is one click and none of the above exists.

Common questions

Do I need to know Docker to run Paperless-ngx?

No. Cresdock installs Paperless-ngx in one click from its catalogue: it pulls the image, writes the configuration, gets an HTTPS certificate and starts it. Paperless-ngx needs both a database and a background worker service; Cresdock runs and manages each of them privately for your account.

What happens to my Paperless-ngx data when it updates?

Cresdock updates the Paperless-ngx image and leaves its stored data in place. Paperless-ngx keeps its own files in its own folder, which survives an update, a rebuild and a reinstall — and Cresdock never writes into it.

Do I have to set up a database for Paperless-ngx?

No. Your account gets its own private database, created the moment you install an app that needs one and removed when your last one goes. It is included in your backups and counted against your own storage, like everything else you own.

Can I run Paperless-ngx at home instead of on a VPS?

Yes. Cresdock runs on a mini PC, an old desktop or anything that boots Debian, behind a normal home router with no port forwarding, and Paperless-ngx is reachable on your own network first. A rented server is only needed when Paperless-ngx must be reachable from anywhere without a VPN.

Can I remove Paperless-ngx later?

Yes. Cresdock removes Paperless-ngx in one click, and asks whether to keep its configuration for a future reinstall. Nothing else you have installed is affected.

Looking for what Paperless-ngx itself can do? That lives in its own documentation — this page is only about running it.

Pairs well with: Shell  ·  Solidtime  ·  Plex

Before you start: where to rent a server  ·  what it needs to run  ·  Cresdock vs Cloudron