Self-hosting
The panel
The open source panel, to run one runner by hand and by agent.
The panel manages one runner. Its server talks to the runner with the root token, which never reaches the browser; one admin signs in with a password.
What it does
- Services: the list with each one's traffic; for each, its versions (with their code, a quick deploy and uploads), a live log, its data (SQL on its databases, its files, jobs and realtime channels) and its settings (egress, disk quota, vars, secrets, export and import). It stops, starts, rolls back and deletes them.
- Tokens: makes and revokes the
zk_tokens agents deploy with. - System: the runner's settings (domain, limits), which restart it in place; its log; backups to download and restore; the versions running.
- For agents: the skill at
/skill.md, filled in with the panel's address and the runner's limits, and the runner's API at/api, so agents need only the panel's address and a token.
Light and dark, following the system or a fixed choice.
Configuration
The compose file sets these from .env (see Install).
Run the image another way, and set them yourself:
| Variable | |
|---|---|
ZEROKO_TOKEN | The runner's root token: the same value the runner has. |
ZEROKO_PANEL_PASSWORD | The admin's password, 8 characters or more. |
ZEROKO_RUNNER_URL | The runner's API. Default http://localhost:8081. |
ZEROKO_PANEL_URL | The panel's public address, when its proxy doesn't send X-Forwarded-Host and X-Forwarded-Proto. |
Changing the token or the password signs the admin out.
The image is ghcr.io/zeroko-io/panel, for amd64 and arm64. It answers on
port 3000, with a health check at /healthz.
Source
The panel is open source (MIT), at github.com/zeroko-io/panel.