Self-hostingThe panel
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_TOKENThe runner's root token: the same value the runner has.
ZEROKO_PANEL_PASSWORDThe admin's password, 8 characters or more.
ZEROKO_RUNNER_URLThe runner's API. Default http://localhost:8081.
ZEROKO_PANEL_URLThe 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.