
Deploy paperless-ngx
Self-hosted document archive with OCR, search, and tagging in one web app
webserver
Just deployed
/usr/src/paperless/data
Redis
Just deployed
/data
Just deployed
/var/lib/postgresql/data
Deploy and Host Paperless-ngx on Railway
About Hosting Paperless-ngx on Railway
Paperless-ngx runs well on Railway as a Docker-based web service backed by managed Postgres and Redis, giving you quick browser access to document ingestion, OCR, and search.
Tech Stack
- Paperless-ngx (Django + Celery)
- PostgreSQL 18
- Redis 8
- Docker image deployment on Railway
Why Deploy Paperless-ngx on Railway
Railway provides fast Docker deploys, built-in private networking between services, and simple environment variable wiring for multi-service apps like Paperless-ngx.
Common Use Cases
- Personal paperless office and scanned invoice archive
- Team document indexing and full-text retrieval
- Email/consume-folder based document intake workflows
Deployment Notes
- Web service uses pinned upstream image
docker.io/paperlessngx/paperless-ngx:2.20.15and listens on container port8000. - Set
PORT=8000for Railway HTTP routing. - Required app variables include database/redis wiring plus
PAPERLESS_SECRET_KEY. - Admin bootstrap is enabled via
PAPERLESS_ADMIN_USERandPAPERLESS_ADMIN_PASSWORD. - Postgres and Redis are private internal services; only the web service is public.
- App media persistence is not mounted by default in this template; add a volume based on your retention requirements.
Dependencies for Paperless-ngx on Railway
Paperless-ngx depends on PostgreSQL for metadata persistence and Redis for task queue/broker functionality.
Deployment Dependencies
| Service | Image | Port | Volume |
|---|---|---|---|
| webserver | docker.io/paperlessngx/paperless-ngx:2.20.15 | 8000 | - |
| Postgres | ghcr.io/railwayapp-templates/postgres-ssl:18 | 5432 | /var/lib/postgresql/data |
| Redis | redis:8.2.1 | 6379 | /data |
Template Content