Appearance
Fresh 🌱
Deploying ​
Kernel's app deployment process is as simple as it is fast. There are no configuration files to manage or complex CI/CD pipelines.
Once you deploy an app on Kernel, you can schedule its actions on a job or run them from other contexts. You can even run actions multiple times in parallel.
Deploy the app ​
From local directory ​
Use our CLI from the root directory of your project:
bash
kernel deploy <entrypoint_file_name>Notes ​
- The
entrypoint_file_nameis the file name where you defined your app. - Include a
.gitignorefile to exclude dependency folders likenode_modulesand.venv.
From GitHub ​
You can deploy a Kernel app directly from a public or private GitHub repository using the Kernel CLI. No need to clone or manually push code.
bash
kernel deploy github \
--url https://github.com/<owner>/<repo> \
--ref <branch|tag|commit> \
--entrypoint <path/to/entrypoint> \
[--path <optional/subdir>] \
[--github-token <token>] \
[--env KEY=value ...] \
[--env-file .env] \
[--version latest] \
[--force]Notes ​
--pathvs--entrypoint: Use--pathto specify a subdirectory within the repo (useful for monorepos), and--entrypointfor the path to your app's entry file relative to that directory (or repo root if no--pathis specified).- The CLI automatically downloads and extracts the GitHub source code and uploads your app for deployment.
- For private repositories, provide a
--github-tokenor set theGITHUB_TOKENenvironment variable.
Environment variables ​
You can set environment variables for your app using the --env flag. For example:
bash
kernel deploy my_app.ts --env MY_ENV_VAR=my_value # Can add multiple env vars delimited by spacebash
kernel deploy my_app.ts --env-file .envbash
kernel deploy my_app.py --env MY_ENV_VAR=my_value # Can add multiple env vars delimited by spacebash
kernel deploy my_app.py --env-file .envDeployment notes ​
- The dependency manifest (
package.jsonfor JS/TS,pyproject.tomlfor Python) must be present in the root directory of your project. - For JS/TS apps, set
"type": "module"in yourpackage.json. - View deployment logs using:
kernel deploy logs <deployment_id> --follow - If you encounter a 500 error during deployment, verify that your entrypoint file name and extension are correct (e.g.,
app.pynotapporapp.js). - Kernel assumes the root directory contains at least this file structure:
bash
project-root/
├─ .gitignore # Exclude dependency folders like node_modules
├─ my_app.ts # Entrypoint file (can be located in a subdirectory, e.g. src/my_app.ts)
├─ package.json
├─ tsconfig.json # If using TypeScript
└─ bun.lock | package-lock.json | pnpm-lock.yaml # One of these lockfilesbash
project-root/
├─ .gitignore # Exclude dependency folders like .venv
├─ my_app.py # Entrypoint file
└─ pyproject.tomlbash
# Successful deployment CLI output
SUCCESS Compressed files
SUCCESS Deployment successful
SUCCESS App "my_app.ts" deployed with action(s): [my-action]
INFO Invoke with: kernel invoke my-app my-action --payload '{...}'
SUCCESS Total deployment time: 2.78sOnce deployed, you can invoke your app from anywhere.