Back to all templates
Paperless-ngx logo

Paperless-ngx

Application1024MB+ RAM

Document management system with OCR

documentsocrmanagementpaperless

Deploy Paperless-ngx in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Paperless-ngx

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Paperless-ngx on a VPS with Server Compass

Use the Paperless-ngx template in Server Compass to deploy a self-hosted document management stack with PostgreSQL and Redis on your VPS, then verify the Paperless-ngx web UI in a browser.

About 7 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select your VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a Paperless-ngx app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Paperless-ngx

Use the template picker search to find Paperless-ngx in the Server Compass template catalog.

Searching for Paperless-ngx in the Server Compass template picker
4
Step 4

Select the Paperless-ngx template

Choose the Paperless-ngx template. Server Compass fills the Paperless-ngx image, host port, public URL, generated secrets, PostgreSQL, Redis, and persistent document volumes.

Paperless-ngx template selected in Server Compass
5
Step 5

Review the Paperless-ngx settings

Confirm the app name and compose services. In this run, the app was named paperless-ngx-demo and used host port 8000.

Reviewing Paperless-ngx project settings and compose services
6
Step 6

Deploy Paperless-ngx

Review the generated environment values, confirm the port is available, and click Deploy Now.

Reviewing Paperless-ngx environment variables and port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the Paperless-ngx image, starts the container, and verifies the stack.

Server Compass deploying the Paperless-ngx template on the VPS
8
Step 8

Confirm Paperless-ngx is running

After deployment finishes, return to the Apps tab and confirm the Paperless-ngx app is marked Running with its application URL available.

Paperless-ngx template running in the Server Compass Apps tab
9
Step 9

Open Paperless-ngx in the browser

Open the application URL in a browser. The Paperless-ngx web UI confirms the site is reachable.

The deployed Paperless-ngx web UI loaded in a browser

After Paperless-ngx Opens

  • Create a Paperless-ngx superuser before production use.
  • Configure document consumption, OCR, HTTPS, email, and user access before production use.
  • Add a domain and HTTPS before exposing the document management dashboard to users.
  • Back up the Paperless-ngx PostgreSQL and document media volumes before relying on it for production documents.

Verified Result

The Paperless-ngx web UI loaded successfully in a browser.

Paperless-ngx deployment questions

What does the Paperless-ngx template deploy?

It deploys Paperless-ngx with PostgreSQL and Redis backing services plus persistent database volumes.

Which port did the tutorial use?

The tutorial used host port 8000, which maps to the Paperless-ngx web server on container port 8000.

Why does the guide stop at the first-run web UI?

The tutorial verifies the clean first-run web UI because real documents, users, OCR settings, and access rules depend on the production server.

Should this become a blog post?

No. The deployment guide should live on the Paperless-ngx template detail page and be linked from the reusable template deployment docs page.

CLI Deployment

Deploy Paperless-ngx Yourself

Want full control? Here's how to deploy Paperless-ngx yourself using Docker Compose.

1

Connect to Your VPS via SSH

Fire up your terminal application and establish a connection to your remote server.

terminal
# Access your VPS
ssh root@YOUR_SERVER_IP

# With SSH key authentication
ssh -i ~/.ssh/your-private-key root@YOUR_SERVER_IP

First time? Ensure Docker is installed first: curl -fsSL https://get.docker.com | sh

2

Initialize Project Folder

Create a folder to house your Docker Compose configuration.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/paperless-ngx
cd ~/apps/paperless-ngx
3

Create Docker Configuration

Define your services in a docker-compose.yml file:

docker-compose.yml
services:
  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    ports:
      - "8000:8000"
    environment:
      - PAPERLESS_REDIS=redis://redis:6379
      - PAPERLESS_DBHOST=db
      - PAPERLESS_DBNAME=paperless
      - PAPERLESS_DBUSER=paperless
      - PAPERLESS_DBPASS=<your-db-password>
      - PAPERLESS_SECRET_KEY=<your-secret-key>
      - PAPERLESS_URL=<your-paperless-url>
    volumes:
      - paperless_data:/usr/src/paperless/data
      - paperless_media:/usr/src/paperless/media
      - paperless_consume:/usr/src/paperless/consume
    restart: unless-stopped
    depends_on:
      - db
      - redis

  db:
    image: postgres:16-alpine
    environment:
      - POSTGRES_USER=paperless
      - POSTGRES_PASSWORD=<your-db-password>
      - POSTGRES_DB=paperless
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped

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

volumes:
  paperless_data:
  paperless_media:
  paperless_consume:
  postgres_data:
Required Settings
PORTHost port(default: 8000)
PAPERLESS_URLPublic URL
SECRET_KEYSecret key
DB_PASSWORDDB password
4

Execute the Deployment

Start your containers and verify they're running correctly.

terminal
# Launch the stack
docker compose up -d

# Verify container status
docker compose ps

# Follow the logs
docker compose logs --follow
5

Allow Network Access

Update UFW rules to allow traffic on the application port.

terminal
# Allow the application port through firewall
sudo ufw allow 8000/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:8000
Skip the Terminal

Don't want to type commands? We've got you.

Skip the terminal and deploy Paperless-ngx with a visual interface. Configure everything with clicks, not commands.

  • No terminal required
  • Point-and-click setup
  • Auto SSL certificates
  • Rolling deployments
  • Health monitoring
  • Instant rollbacks
Download Server Compass$29 one-time • Lifetime license

Paperless-ngx FAQ

Common questions about self-hosting Paperless-ngx

How do I deploy Paperless-ngx with Server Compass?

Simply download Server Compass, connect to your VPS, and select Paperless-ngx from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for Paperless-ngx?

Paperless-ngx requires a minimum of 1024MB RAM. We recommend a VPS with at least 2048MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing Paperless-ngx data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Paperless-ngx backup and restore procedures.

How do I update Paperless-ngx to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Paperless-ngx image will be pulled and deployed with zero downtime.

Is Paperless-ngx free to self-host?

Paperless-ngx is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host Paperless-ngx?

Download Server Compass and deploy Paperless-ngx to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass