Skip to content

Kaname

The control plane for your infrastructure.

Status
In development
Version
v0.1.0
Runs on
TypeScript control plane and Go agent

Every server panel that has had a serious CVE had the same shape of bug.

The web tier could reach a root-level primitive directly. Kaname answers that structurally, not with a hardening checklist.

What Kaname does.

The hard line

  • Three tiers, one hard line

    The browser talks to the control plane; the control plane talks to an agent on each host. Only the agent touches systemd, Docker and the filesystem.

  • No shell in the control plane

    The control plane has no child_process, no SSH client and no container-socket dependency. It cannot execute anything on a host.

  • Typed verbs, not commands

    The agent exposes enumerated RPC methods that decode into typed parameters. There is no exec(command) among them, and a conformance test keeps that true.

  • Agents dial out

    The agent binds no network port. It connects to the control plane over WSS with a signed assertion.

What you notice

  • Mutations are jobs

    Restarting a service returns a job that moves queued → running → succeeded, streams its log, and survives a control-plane restart.

  • Reachability and health are separate

    A server can be connected and critical, or disconnected and unknown. Both are always shown; neither collapses into one dot.

Running it

  • One panel for a small fleet

    Infrastructure, websites, files, email, databases, security, backups, monitoring, logs and a terminal, in one place, owned entirely by the person running it.

  • One-command install

    Installs the control plane, the panel, Postgres and Caddy as a Compose project and pairs the first agent on the same box.

How it runs.

  1. Run the installer on a fresh server. It prints an address and a setup token.

  2. Open the panel, set a domain later from inside it, and get HTTPS.

  3. Pair each additional host with an agent. Agents dial out; no inbound ports.

  4. Every change to a host is a job with a log you can watch and a state that survives restarts.

Install.

Install
curl -fsSL https://raw.githubusercontent.com/FutureForge-Studios/kaname/main/install.sh \
  | sudo sh

The installer ships with the first tagged release. Until then Kaname runs from source.

View on GitHub (opens in a new tab)

Kaname (要, the keystone) is a self-hosted control panel for a small fleet of Linux servers, built for an owner-operator rather than a hosting reseller. It is in development: the code runs from source against a simulated fleet, and the published installer waits on the first tagged release.

The idea

Three tiers, with a hard line between them. The browser talks to the control plane over HTTPS. The control plane talks to kanamed, one agent per host, over WSS with a signed assertion. Only the agent touches systemd, Docker and the filesystem.

The control plane never executes anything on a managed host. It has no child_process, no SSH client and no container-socket dependency. The agent's RPC methods are enumerated verbs that decode into typed parameter structs, and there is no exec(command) among them. A conformance test keeps that list honest.

Two consequences you notice immediately

Mutations that reach a host are jobs. Restarting a service returns 202 and a job whose state moves from queued to running to succeeded, streams its log, and survives a control-plane restart. Not a spinner that lies.

Reachability and health are separate axes. A server can be connected and critical, or disconnected and unknown. Both are always shown.

Read the code before you trust it with anything.