Quick Start
Docker run
Docker Compose
docker-compose.yml
Health check
API Endpoints
The self-hosted API matches the hosted API, so switching between them is a base URL change — not a code change. All existing SDKs work against self-hosted without modification.Inline render
Pass the compiled template JSON and data directly in the request body. No template storage needed. Fully stateless.template field is the compiled document JSON tree — the output of forme build --template or serialize() in @formepdf/react. The data field is optional; when present, Forme evaluates template expressions ($ref, $each, $if) against it before rendering.
Template render
Mount a directory of pre-compiled JSON templates and reference them by slug (filename without.json).
Certify
Redact
Merge
Rasterize
{ "pages": ["<base64 PNG>", ...] }.
The rasterizer runs as a PDFium-based sidecar service on port 3001 inside the container. It starts automatically. Configure via RASTERIZER_URL if running separately.
Compiling Templates
The self-hosted container is a pure Rust binary with no Node.js runtime. This means.tsx templates must be compiled to JSON before mounting — the same way you’d compile TypeScript before deploying to production.
Authentication
Optional. IfFORME_API_KEY is not set, the API is open — suitable for local development or internal network use behind a firewall.
If set, all /v1/* endpoints require:
/health endpoint is always public.
Configuration
All configuration is via environment variables. No config files.SDK Configuration
All Forme SDKs support a custom base URL. Point them at your self-hosted instance:Deployment Examples
Kubernetes
With templates in Kubernetes
Mount templates from a ConfigMap or persistent volume:What Self-Hosted Does Not Include
These features are available on the hosted API only:- Template compilation — upload
.tsxfiles directly, Forme compiles them server-side - Dashboard — template editor, usage graphs, logs, billing
- AI template generation — Claude-powered template creation
- Team management — org-level API keys, seat management
- Usage analytics — per-render logging and analytics
- Async rendering — job queuing, webhooks, S3 upload
- Documents archive — auto-save renders, metadata, download URLs
- Certificate storage — save certificates, reference by
certificateId - Redaction templates — saved pattern sets, reference by slug
- Resource listing —
GET /v1/templates,/v1/documents, etc. - Priority support — SLA-backed response times
Comparison
Gotenberg converts existing documents (HTML, Word, etc.). Forme generates from code templates. Different tools for different jobs.