How to install Paperless-ngx on a Cloud VPS
Updated 7/18/2026
Paperless-ngx scans, OCRs, indexes and archives your documents so you can find any paper in seconds, self-hosted and private.
The self-hosted version removes per-user subscriptions: you pay only for the server, no matter how many teammates use the app.
One-click install on cloudlinux.ro
The fastest way: Paperless-ngx installs automatically at the first boot of a new server.
- Create a Cloud VPS from the control panel.
- In the configuration step, pick Paperless-ngx from the app catalog.
- Start the server. The install runs in the background for a few minutes and its status shows on the server page.
- Access details and generated passwords are saved on the server in
/root/app-credentials.txt. The app will be available on port 8000.
Manual install on any Ubuntu server
If you prefer doing it yourself, below is the exact script our automatic install runs. Execute it as root on a fresh Ubuntu server (24.04 recommended). It stops at the first error, and when it finishes you will find the access details in /root/app-credentials.txt.
export DEBIAN_FRONTEND=noninteractive
curl -fsSL https://get.docker.com | sh
IP=$(hostname -I | awk '{print $1}')
DB_PASS=$(openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | cut -c1-20)
SECRET_KEY=$(openssl rand -base64 48 | tr -dc 'A-Za-z0-9' | cut -c1-50)
ADMIN_PASS=$(openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | cut -c1-16)
mkdir -p /opt/paperless && cd /opt/paperless
cat > docker-compose.yml <<EOF
services:
broker:
image: docker.io/library/redis:7
restart: always
volumes:
- redisdata:/data
db:
image: docker.io/library/postgres:17
restart: always
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: "${DB_PASS}"
volumes:
- pgdata:/var/lib/postgresql/data
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: always
depends_on:
- db
- broker
- gotenberg
- tika
ports:
- '8000:8000'
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_DBUSER: paperless
PAPERLESS_DBPASS: "${DB_PASS}"
PAPERLESS_SECRET_KEY: "${SECRET_KEY}"
PAPERLESS_URL: "http://${IP}:8000"
PAPERLESS_TIME_ZONE: Europe/Bucharest
PAPERLESS_OCR_LANGUAGE: ron+eng
PAPERLESS_OCR_LANGUAGES: ron eng
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
PAPERLESS_ADMIN_USER: admin
PAPERLESS_ADMIN_PASSWORD: "${ADMIN_PASS}"
gotenberg:
image: docker.io/gotenberg/gotenberg:8
restart: always
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: docker.io/apache/tika:latest
restart: always
volumes:
redisdata:
pgdata:
data:
media:
EOF
docker compose up -d
printf 'Paperless-ngx: http://%s:8000\nUtilizator: admin\nParola: %s\nPrima pornire dureaza cateva minute (migrari + pachete OCR). Documentele plasate in /opt/paperless/consume sunt importate automat.\n' "$IP" "$ADMIN_PASS" > /root/app-credentials.txt
You can also save this script as a recipe in your account and reuse it on any new server.
Put this guide into practice on your own VPS
EU cloud servers, billed hourly, ready in minutes, with one-click installs for dozens of apps.
See pricingRelated tutorials
How to install WordPress on a Cloud VPS
Complete WordPress guide: one-click install on cloudlinux.ro or manual setup on any Ubuntu server, step by step.
Updated 7/18/2026ApplicationsHow to install ProjectSend on a Cloud VPS
Complete ProjectSend guide: one-click install on cloudlinux.ro or manual setup on any Ubuntu server, step by step.
Updated 7/18/2026ApplicationsHow to install Prometheus + Grafana on a Cloud VPS
Complete Prometheus + Grafana guide: one-click install on cloudlinux.ro or manual setup on any Ubuntu server, step by step.
Updated 7/18/2026