---
title: "Deploy jsreport"
description: "jsreport 4.14: generate PDFs and reports from HTML templates via API."
category: "Automation"
url: https://railway.com/deploy/jsreport
---

# Deploy jsreport

jsreport 4.14: generate PDFs and reports from HTML templates via API.

**[Deploy jsreport on Railway](https://railway.com/template/jsreport)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/jsreport/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Automation

## Template content

### jsreport https://github.com/jsreport.png

- **Image:** jsreport/jsreport:4.14.2
- **Start command:** `sh -c 'mkdir -p /tmp/jsreport; chown -R jsreport:jsreport /tmp/jsreport; ls -ld /tmp /tmp/jsreport; exec docker-entrypoint.sh bash run.sh'`
- **Health check:** /api/ping
- **Public domain:** Yes

## Documentation

# Deploy and Host jsreport on Railway

jsreport is a reporting platform that turns HTML, CSS and JavaScript templates into PDFs, Excel files and more through a REST API. You design templates in its browser studio with Handlebars or other engines, then render them from any language by posting JSON data. Chrome does the PDF rendering, so modern CSS works.

## About Hosting jsreport

This template runs the official `jsreport/jsreport:4.14.2` image, which includes Chromium. Authentication is on: the studio and every API call need the `admin` account and its generated password. Templates, scripts, assets and the config file are stored on a Railway volume and survive redeploys. The start command hands the temp directory to the `jsreport` user before the server drops root privileges. Two worker threads render reports, and each render times out after 60 seconds. Chrome makes the service memory-hungry, so large or parallel PDF jobs may need a bigger plan. User scripts run sandboxed, because `trustUserCode` stays off.

## Common Use Cases

- Invoices, receipts and statements rendered from app data
- Scheduled or on-demand business reports as PDF or Excel
- A shared document-generation API for several services

## Dependencies for jsreport Hosting

- `jsreport/jsreport:4.14.2` (official image with Chromium)
- A Railway volume at `/jsreport`

### Deployment Dependencies

- [jsreport documentation](https://jsreport.net/learn)
- [jsreport 4.14.2 release](https://github.com/jsreport/jsreport/releases/tag/4.14.2)
- [jsreport REST API](https://jsreport.net/learn/api)

### Implementation Details

| Service | Source | Networking | Storage |
| --- | --- | --- | --- |
| jsreport | `jsreport/jsreport:4.14.2` | public HTTPS | volume at `/jsreport` |

| Variable | Default | Purpose |
| --- | --- | --- |
| `extensions_authentication_admin_username` | `admin` | Studio and API user |
| `extensions_authentication_admin_password` | generated | Its password |
| `workers_numberOfWorkers` | `2` | Parallel render workers |
| `reportTimeout` | `60000` | Render timeout in milliseconds |

Render a stored template:

```bash
curl -u admin:$PASSWORD -XPOST "$JSREPORT_URL/api/report" -H 'Content-Type: application/json' \
  -d '{"template":{"name":"invoice"},"data":{"number":"INV-42"}}' -o invoice.pdf
```

Any jsreport option can be set as a variable by replacing dots with underscores. The free license allows up to five stored templates; see jsreport's pricing page for more.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by jsreport.

## Why Deploy jsreport 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 jsreport 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

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/jsreport
