Railway

Deploy Stirling PDF

Self-hosted PDF tool with 50+ tools, zero dependencies, 84K★.

Deploy Stirling PDF

Just deployed

Stirling PDF — Railway Deployment Template

Deploy on Railway

Stirling PDF on Railway

GitHub Repo Docker Pulls License GitHub Stars

> The #1 open-source PDF platform — edit, sign, convert, OCR, merge, split, compress, and more.
> 84,000+ GitHub stars · MIT licensed · 50+ PDF tools · 38+ languages
> Zero dependencies — no database, no Redis, no persistent volumes required. > > ⏳ First deploy takes 3-5 minutes — Stirling-PDF is a ~1GB Java/Spring Boot image. Railway downloads it on the first deploy. Subsequent deploys use the cached layer. This is normal — don't cancel the deployment!


Features

  • 50+ PDF Tools — Merge, split, convert, compress, OCR, sign, redact, extract, rotate, and more — all in one app.
  • No Data Leaves Your Server — Everything runs locally. Files are processed in-memory and deleted after the task.
  • Zero Dependencies — Single Java/Spring Boot container. No database, no Redis, no external services needed.
  • REST API — All tools are accessible via API for automation and integration into existing workflows.
  • Global UI — Interface available in 38+ languages with active community translations.
  • Multi-Arch — Official image supports both amd64 and arm64 architectures.
  • Free Tier Ready — Fits comfortably on Railway's free tier (~1GB image, configurable RAM).

Screenshots

DashboardPDF EditorPipeline Tools
Dashboard  

Screenshots captured from a live deployment. Replace with your own after deploying.


Prerequisites


One-Click Deploy

Deploy on Railway

Click the button above and Railway will:

  1. Clone this repository
  2. Build the Docker container from the official stirlingtools/stirling-pdf image
  3. Deploy with automatic HTTPS, health checks, and monitoring
  4. Assign a wildcard domain (e.g., stirling-pdf-production-xxxx.up.railway.app)

Environment Variables

Stirling-PDF is ready to go with zero configuration, but you can customise via these environment variables:

Security & Authentication

VariableDefaultDescription
SECURITY_ENABLELOGINtrueEnable or disable authentication
SECURITY_INITIALLOGIN_USERNAMEadminCustom initial admin username
SECURITY_INITIALLOGIN_PASSWORDstirlingCustom initial admin password (change on first login!)
LOGIN_ATTEMPT_COUNT5Failed login attempts before account lockout
LOGIN_RESET_TIME_MINUTES10Minutes before locked account auto-unlocks
CSRF_DISABLEDfalseSet true to disable CSRF (not recommended for production)

System Configuration

VariableDefaultDescription
PORT8080HTTP port (Railway sets this automatically)
SYSTEM_DEFAULTLOCALEen-USDefault language/locale (e.g., de-DE, fr-FR, ja-JP)
TZUTCServer timezone
SYSTEM_GOOGLEVISIBILITYfalseAllow Google indexing via robots.txt
UI_LOGOSTYLEclassicLogo style: classic or modern

Email (optional — for user invitations)

VariableDefaultDescription
MAIL_ENABLEDfalseEnable SMTP email for user invitations
MAIL_HOSTSMTP server host
MAIL_PORT587SMTP server port
MAIL_USERNAMESMTP username
MAIL_PASSWORDSMTP password
MAIL_FROMFrom address for invitation emails
MAIL_ENABLEINVITESfalseEnable email-based user invitations

Advanced Configuration

For full configuration options — OAuth 2.0, SAML SSO, external databases, LibreOffice settings, and more — see the Stirling PDF Configuration Guide.


Why Deploy Stirling PDF on Railway?

FeatureBenefit
Zero dependenciesNo database, Redis, or volumes needed — just deploy
Single containerNo complex orchestration or multi-service setup
50+ built-in toolsReplace dozens of separate PDF utilities with one app
REST API includedAutomate PDF workflows in your existing pipeline
File processing is statelessFiles auto-deleted after processing — no cleanup needed
Multi-arch supportRuns on any Railway region and hardware

With Railway, you get automatic HTTPS, global CDN, health monitoring, and scalable infrastructure — without managing servers.


Deploy and Host

About Hosting

Stirling PDF runs as a single Docker container with no external dependencies. It uses file-based storage by default (no database required), making it an ideal zero-dependency deployment for Railway.

The default admin credentials are:

  • Username: admin
  • Password: stirling

You will be forced to change the password on first login when authentication is enabled.

Health Endpoint

Railway uses the following endpoint for health checks:

  • URL: /api/v1/info/status
  • Timeout: 30 seconds
  • Start period: 30 seconds (gives Java time to boot)

Common Use Cases

  • Personal PDF toolkit — Replace Acrobat with a self-hosted, private alternative
  • Team document processing — Share PDF tools across a team without per-seat licenses
  • API-driven automation — Integrate PDF conversion, OCR, and signing into CI/CD pipelines
  • Document signing workflows — Self-hosted signing without third-party services

Dependencies for Stirling PDF

Deployment Dependencies

  • Runtime: Java 17+ (bundled in container)
  • Storage: File-based (default) — no database required
  • Optional: PostgreSQL or MySQL for external database mode (not needed for basic usage)

Local Development

# Clone this template
git clone https://github.com/INAPP-Mobile/railway-stirling-pdf.git
cd railway-stirling-pdf

# Run with Docker (standalone)
docker run -d -p 8080:8080 stirlingtools/stirling-pdf:latest

# Open http://localhost:8080

License

Stirling PDF is open-core. The core PDF tools are MIT-licensed, with paid enterprise features available. See the LICENSE for details.

Template License: MIT — feel free to fork and adapt.


Resources


Template Content

More templates in this category

View Template
Rocky Linux
[Jun'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
15
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
70
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
43