Runtimes

Zenifra does not perform automatic runtime detection. In projects created from a GitHub Repository, the user explicitly chooses the runtime during project creation.

Supported runtimes

RuntimeHow it works
Node.jsThe user chooses the version in the console, and the platform installs dependencies with npm ci and NODE_ENV=production
PythonThe user chooses the version in the console, and the platform installs dependencies with pip install --no-cache-dir -r requirements.txt

Note: Today, only Node.js and Python are officially supported for GitHub Repository builds. Java, Go, PHP, .NET, Nginx, Apache, and other stacks should be published via OCI Image.

Important rule

The runtime is defined during GitHub project creation and cannot be changed later.

Node.js

Required files

{
  "name": "my-app",
  "scripts": {
    "start": "node index.js"
  }
}

For Node.js projects based on GitHub, these files are required:

  • package.json
  • package-lock.json

Default dependency install

Zenifra installs dependencies with:

NODE_ENV=production npm ci

Project commands

After the default install step, these commands are user-defined during project creation:

  • pre-build (optional)
  • build
  • start

A common use of pre-build in Node.js is running migrations or other preparation steps before build or start.

Python

Required file

For Python projects based on GitHub, requirements.txt is required.

Default dependency install

pip install --no-cache-dir -r requirements.txt

Project commands

These commands are user-defined during project creation:

  • pre-build (optional)
  • build
  • start

What can be edited later

After the GitHub project is created, only these commands should be treated as editable:

  • pre-build
  • build
  • start

Fields such as runtime, runtime version, branch, and auto-deploy should be treated as creation-time settings.