Railway

Deploy JODConverter

Convert Word, Excel and others to PDF (and back) through a simple REST API

Deploy JODConverter

Just deployed

Deploy and Host JODConverter on Railway

JODConverter is a REST API that converts office documents from one format to another — docx → pdf, xlsx → csv, odt → docx, html → pdf, and most other pairs LibreOffice supports — by wrapping headless LibreOffice behind a simple HTTP endpoint. Send a file, get back the converted result.

About Hosting JODConverter

This template packages the official jodconverter/jodconverter-examples:rest image (headless LibreOffice + the JODConverter Spring Boot REST sample) behind an nginx proxy, so it deploys on Railway with zero configuration: dynamic $PORT binding, sane default upload-size limits, and an optional API-key gate you can turn on later. There's no database or external service to provision — one container does the whole job. Budget at least 1GB RAM per instance, since headless LibreOffice conversions are memory-hungry.

Common Use Cases

  • Converting user-uploaded Word/Excel/PowerPoint documents to PDF from a web or mobile app's backend
  • Batch-converting a document archive to a different format (e.g. legacy .doc/.xls files to .docx/.xlsx or PDF) as part of a migration pipeline
  • Generating PDF exports of reports or invoices produced as .docx/.odt templates in an internal tool

Dependencies for JODConverter Hosting

  • No external database or managed service required — it's a single self-contained container
  • A Railway plan with at least 1GB RAM per instance (headless LibreOffice conversions need it)

Implementation Details

Once deployed, convert a file with a single request:

curl -F "data=@document.docx" https://{your_domain}.up.railway.app/lool/convert-to/pdf -o document.pdf

Interactive API docs are available at /swagger-ui/index.html. By default the conversion endpoint has no authentication — anyone with the URL can submit documents. Set the API_KEYS variable to a comma-separated list of keys to require one of them (as an X-Api-Key header or an apiKey query parameter) on every request; leave it empty to keep the service open. Either way, consider keeping it on Railway's private network and calling it only from your other services if it doesn't need to be public.

If API_KEYS is set, pass one of the configured keys as a header:

curl -F "data=@document.docx" -H "X-Api-Key: " https://{your_domain}.up.railway.app/lool/convert-to/pdf -o document.pdf

or as a query parameter instead, if a header isn't convenient:

curl -F "data=@document.docx" "https://{your_domain}.up.railway.app/lool/convert-to/pdf?apiKey=" -o document.pdf

Why Deploy JODConverter 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 JODConverter 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.


Template Content

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
119
View Template
Evolution API with n8n
Build a WhatsApp automation platform with Evolution API, n8n & Postgres.

codestorm
82
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates
870