Node.js is the default deployment target for Rakkas. After building your application with rakkas build, you can run it with node dist/server/index.js.

Environment variables

You can use the following environment variables to configure the runtime behavior of a Rakkas application:


The hostname to bind the server to. Defaults to localhost.


The port to bind the server to. Defaults to 3000.


Whether to trust X-Forwarded-* headers. If set to 1, X-Forwarded-Proto and X-Forwarded-Host are used to determine the origin when ORIGIN is not set. X-Forwarded-For is used to determine the IP address. The leftmost value is used if multiple values are set.


Set the URL origin, e.g. If not set, the origin will be computed from the protocol and hostname. To determine the protocol, req.protocol is tried first. If TRUST_PROXY is set, X-Forwarded-Proto header is used. Otherwise, req.socket.encrypted is used. To determine the hostname, X-Forwarded-Host (if TRUST_PROXY is set) or Host header is used.

Custom entry

To define a custom Node.js entry point, you must first provide a HatTip entry. Then you can create a src/entry-node.js (or .ts) file that exports a Node ((req, res) => {}) request handler function. A minimal custom Node.js entry would look like this:

import { createMiddleware } from "rakkasjs/node-adapter";
import hattipHandler from "./entry-hattip";

export default createMiddleware(hattipHandler);

Express integration

A custom Node.js entry makes it possible to integrate Rakkas with Express and other Node.js frameworks: