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.0To 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.nodeso 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