---
title: "Deploy Papra"
description: "Document archiving with persistent SQLite metadata and file storage."
category: "Storage"
url: https://railway.com/deploy/her-207-papra-2661
---

# Deploy Papra

Document archiving with persistent SQLite metadata and file storage.

**[Deploy Papra on Railway](https://railway.com/template/her-207-papra-2661)**

- **Creator:** Heron Technology
- **Category:** Storage

## Template content

### Papra https://raw.githubusercontent.com/papra-hq/papra/34195e0177eda7985ed9c8c270b5a6a9d8716ea0/apps/docs/public/favicon.svg

- **Image:** ghcr.io/papra-hq/papra:26.6.1-rootless@sha256:a7a42e228f73f229d1e2dcd53de7b67503f1756d1aa3a894ab175dba8030c0e8
- **Health check:** /api/health
- **Public domain:** Yes

## Documentation

# Deploy and Host Papra on Railway

Papra is an open-source document management and archiving application for
storing, organizing, searching, tagging, and sharing personal or team
documents. It combines a browser interface, SQLite metadata, filesystem-backed
document storage, and background tasks in one compact self-hosted service.

## About Hosting Papra

This template runs Papra 26.6.1 from the official digest-pinned rootless image.
Railway provides the public HTTPS endpoint, a database-aware health check, and
one persistent volume for the SQLite database, documents, and optional
configuration. Migrations and the web/worker processes run from Papra's
documented container entrypoint. Every mandatory setting is prefilled:
`APP_BASE_URL` follows the generated Railway domain and `AUTH_SECRET` is created
fresh for each deployment. No external credentials or manual variable input
are required. The service is intended for one replica because Railway volumes
cannot be shared across replicas.

## Common Use Cases

* Archive receipts, warranties, invoices, statements, and reference documents.
* Organize a private household or small-team document library.
* Search and retrieve uploaded documents through a self-hosted web interface.

## Dependencies for Papra Hosting

* Papra `26.6.1`, pinned to the official rootless GHCR image digest.
* One Railway persistent volume mounted at `/app/app-data`.

### Deployment Dependencies

* [Papra Docker deployment guide](https://docs.papra.app/self-hosting/using-docker/)
* [Papra configuration reference](https://docs.papra.app/self-hosting/configuration/)
* [Papra 26.6.1 release](https://github.com/papra-hq/papra/releases/tag/%40papra%2Fapp%4026.6.1)
* [Railway volume constraints](https://docs.railway.com/volumes/reference)

### Implementation Details

Papra listens on port `1221`. Railway routes the public domain to that port and
checks `GET /api/health`, which executes a database query before returning HTTP
200. `APP_BASE_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}` keeps authentication,
CSRF origin validation, and generated links aligned with Railway HTTPS.
`AUTH_SECRET=${{secret(96, "abcdef0123456789")}}` creates the 48 random bytes
recommended by upstream without exposing or reusing a source-project secret.

The official container runs `pnpm start:with-migrations`, applying all pending
SQLite migrations before starting the combined web and background-worker
process. Its built-in paths are `./app-data/db/db.sqlite` and
`./app-data/documents`, both captured by the `/app/app-data` volume. Railway
mounts volumes as root, so the documented `RAILWAY_RUN_UID=0` compatibility
setting is required even though the image itself is built from Papra's
rootless variant.

Back up the complete `/app/app-data` volume before upgrading. Review the Papra
release notes, test the new immutable image digest against a restored copy, and
verify `/api/health`, sign-in, document upload/download, and persistence. Roll
back to the prior image digest together with the matching volume backup if a
database migration is incompatible.

This community template is maintained independently and does not imply
affiliation with or endorsement by Papra.

## Why Deploy Papra on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Papra on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Garage S3 Storage](https://railway.com/deploy/garage-s3-storage) — Ultra-light S3 server: fast, open-source, plug-and-play.
- [Redis](https://railway.com/deploy/redis-1) — Self Host Latest Redis with Railway
- [EasyImg](https://railway.com/deploy/easyimg) — Simple self-hostable Nuxt.js personal image hosting system.

Open this page in a browser: https://railway.com/deploy/her-207-papra-2661
