Skip to Content

Runtime

This page describes how your app runs on Faable Deploy β€” the Node.js versions we support, how to set environment variables, and how we keep your app running.

Node.js

Node versions adhere to Semver, the semantic versioning convention popularized by GitHub. Semver uses a version scheme in the form MAJOR.MINOR.PATCH.

Faable currently supports Node.js 20, 22 and 24. The version you request in engines.node is resolved to the latest release of that major at deploy time, and your app runs on Faable’s runtime image for that major. Requesting a major outside the supported list fails the deploy.

Specifying a Node.js Version

Always specify a Node.js version that matches the runtime that you’re developing and testing with. To find your version locally:

node --version v20.9.0

To specify the version of Node.js to use on Faable, use the engines section of the package.json. Drop the v to save only the version number.

{ "name": "example-app", "description": "a really cool app", "version": "1.0.0", "engines": { "node": "20.x" } }

If a Node version isn’t specified in the engines section, Faable uses the Node version wherever the deploy runs. Pin engines.node so every deploy uses the same version β€” see What the Builder Expects in Your Repo.

Environment variables

You can set environment variables for your App in the DashboardΒ 

App Manager

The app manager keeps apps running automatically; so operating your app is maintenance-free. The Runtime instantiates one app per region unless it is specified in redundancy options. In the case one app container craashes, make sure there’s at least two app instances running. Otherwise app will be unresponsive for the restart period.

Restarting

Faable Deploy Runtime implements an incremental restart policy for crashing apps.

  • When an app crashes it will be continuously restarted.
  • If an app keeps restarting for 5 minutes, it will be stopped and marked as crashed. Crashed apps must be restarted manually.

After an app exits, the App Manager restarts them with an exponential back-off delay (10s, 20s, 40s, …), that is capped at five minutes. Once an app has executed for 10 minutes without any problems, the manager resets the restart backoff timer for that app. In case the app keeps incrementing the back-off delay up to five minutes, it will be marked as crashed and needs to be restarted manually.

Last updated on