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
| Runtime | How it works |
|---|---|
| Node.js | The user chooses the version in the console, and the platform installs dependencies with npm ci and NODE_ENV=production |
| Python | The 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.jsandPythonare 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.jsonpackage-lock.json
Default dependency install
Zenifra installs dependencies with:
NODE_ENV=production npm ciProject commands
After the default install step, these commands are user-defined during project creation:
pre-build(optional)buildstart
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.txtProject commands
These commands are user-defined during project creation:
pre-build(optional)buildstart
What can be edited later
After the GitHub project is created, only these commands should be treated as editable:
pre-buildbuildstart
Fields such as runtime, runtime version, branch, and auto-deploy should be treated as creation-time settings.