| title | 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.
Use our CLI from the root directory of your project:
kernel deploy <entrypoint_file_name>- The
entrypoint_file_nameis the file name where you defined your app. - Include a
.gitignorefile to exclude dependency folders likenode_modulesand.venv.
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.
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]--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.
You can set environment variables for your app using the --env flag. For example:
kernel deploy my_app.ts --env-file .envkernel deploy my_app.py --env MY_ENV_VAR=my_value # Can add multiple env vars delimited by spacekernel deploy my_app.py --env-file .env- 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:
project-root/
├─ .gitignore # Exclude dependency folders like .venv
├─ my_app.py # Entrypoint file
└─ pyproject.toml# 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.
The Deploy Button lets users deploy your Kernel app with a single click. It's ideal for sharing open-source projects, templates, or example apps that others can deploy to their own Kernel account.
- Go to the Deploy Button generator in the Kernel dashboard
- Enter your public GitHub repository URL
- Specify the required environment variables (API keys, secrets, etc.) that users need to provide
- Copy the generated button snippet or link
When someone clicks your Deploy Button, they're taken to a deployment flow where they:
- Connect their Kernel account
- Enter the required environment variable values you specified
- Deploy the app to their account
- Open-source projects: Let users deploy your app without cloning repos or running CLI commands
- Templates and starters: Share ready-to-deploy examples that others can customize
- Documentation: Embed deploy buttons in READMEs so readers can try your code instantly
After generating your button, add it to your README or documentation:
[](https://dashboard.onkernel.com/deploy?repo=https%3A%2F%2Fgithub.com%2Forg%2Frepo&entrypoint=index.ts)Or use HTML:
<a href="https://dashboard.onkernel.com/deploy?repo=https%3A%2F%2Fgithub.com%2Forg%2Frepo&entrypoint=index.ts"><img src="https://www.kernel.sh/brand_assets/kernel_deploy.svg" alt="Deploy" /></a>