Self-hosting overview
Imprime is open source (Apache 2.0) and designed to be self-hosted: keep your templates, your data and your generated documents on your own servers.
Architecture
Section titled “Architecture”Imprime runs as one Node.js process serving everything on a single port, backed by MongoDB:
┌──────────────────────── Imprime (Node.js, port 3023) ───────────────────────┐ Browser ──────► │ / → editor (React app, static files) │ Scripts ──────► │ /api/* → REST API (templates, pages, variables, images) │ AI agents ────► │ /api/mcp → MCP server (Streamable HTTP) │ │ /api/auth/* → authentication (Better Auth: email, SSO, API keys, OAuth) │ │ /api/export/* → PDF renderer (@react-pdf, embedded fonts) │ └──────────────────────────────────────┬──────────────────────────────────────┘ │ MongoDB (templates, images, users, keys)The monorepo contains four packages:
| Package | Role |
|---|---|
packages/backend |
Express API, MCP server, authentication, PDF rendering |
packages/frontend |
React + Ant Design editor, served by the backend in production |
packages/common |
Shared types, rendering helpers and fonts |
packages/sdk |
TypeScript API client |
Requirements
Section titled “Requirements”- Docker (recommended), or Node.js 18+ to build from source.
- MongoDB — any recent version (self-hosted, Docker, or a managed service such as Atlas).
- A domain with HTTPS for production — required for SSO callbacks and MCP OAuth.
- Resources: PDF rendering is CPU-bound; 1 vCPU / 1 GB RAM is enough to start.
Next steps
Section titled “Next steps”DockerRun Imprime and MongoDB with Docker Compose.
ConfigurationEvery environment variable explained.
Authentication & SSOGoogle, Microsoft, GitHub and email verification.
Production checklistHTTPS, reverse proxy, backups, scaling.