systemd or PM2
Production should use a process manager. The docs prefer systemd for VM/bare-metal deployments; PM2 remains an option if already standard for the host.
Requirements
The project is a web client and API backed by PostgreSQL, Redis, SMTP/IMAP services, and a production reverse proxy. These requirements are drawn from the project install and configuration docs.
Runtime packages
| Package | Required version | Purpose |
|---|---|---|
| Node.js | 22.19+ | Application runtime and builds; the docs recommend the project-tested LTS line where possible. |
| Yarn | 4.2.2 | Workspace package manager, enabled through Corepack and pinned in package metadata. |
| PostgreSQL | 12+ | Application data through Prisma. |
| Redis | 7+ | Rate limiting, sessions, BullMQ queues, email jobs, cached state, and scheduled jobs. |
| Git | Current stable | Clone-based installs and development; not required when deploying a release tarball/source export. |
| rsync | Current stable | Used by the production upgrade script when backing up uploads. |
| bash | 5+ | Required by deployment and E2E helper scripts. |
| curl | Current stable | Used by production install scripts for local health checks. |
| openssl | Current stable | Used to generate SECRET and DATA_ENCRYPTION_SECRET. |
Production should use a process manager. The docs prefer systemd for VM/bare-metal deployments; PM2 remains an option if already standard for the host.
Production should sit behind an HTTPS reverse proxy. The documented nginx baseline forwards host and request headers and includes security headers.
System SMTP is required for account email, notifications, password resets, and outbound ticket mail. IMAP mailboxes power inbound email ticket creation.
UPLOAD_DIR should point to a directory readable and writable by the API process. Readiness checks include upload access.
SECRET and DATA_ENCRYPTION_SECRET must be generated separately and must not match.
CORS_ORIGIN should be set to exact HTTPS origins. Wildcards are rejected in production.
Minimum environment
At minimum, the API and client environment files must point at the database, Redis, secrets, production origin, and public API URL.
DATABASE_URL, REDIS_URL, SECRET, DATA_ENCRYPTION_SECRET, NODE_ENV=production, and CORS_ORIGIN.NEXT_PUBLIC_API_URL.SYSTEM_SMTP_* before using account email, notifications, password resets, or outbound ticket mail.Verification
| Build and quality | yarn type-check, yarn test, and yarn build. |
|---|---|
| Database | yarn release:prepare-db, yarn db:deploy, and yarn db:generate appear in the install flow. |
| Runtime health | API liveness and readiness are exposed at /livez and /readyz. |
| Full release gate | yarn release:check runs the maintainer release gate, but it requires the full development checkout and is not part of a normal production-source install. |