ghcr.io/kuroctl/kuro-api, with the panel
and the official prefabs. It suits a machine where Docker is already installed and where you would
rather run everything with Compose than as a system service.
Only the API is in the image. A node (the daemon that runs the game servers) drives the host’s
Docker: install it with the script, on the same machine or elsewhere
(Add a node).
1. Prerequisites
- Docker with Compose (
docker compose version); - a public name that already points to the machine (DNS
AorAAAArecord): Caddy needs it for the certificate, the nodes to connect; - inbound ports
80and443(panel) and8443(nodes, mTLS) open.
2. Get the files
Three files, taken from the version you install:.env: the public name, a password for PostgreSQL and the session key
(openssl rand -hex 32). That key must not change afterwards.
3. Start
kuro-data volume. Caddy obtains the HTTPS certificate on the first visit.
4. First-run setup
Openhttps://panel.example.com: while no account exists, the panel shows a wizard that asks for
the setup token, written by the API in its volume:
Add a node
In the panel, “Add a node” gives the command to run on the node’s machine. The API address there ishttps://panel.example.com:8443: port 8443 is published directly by the api service, not
through Caddy.
Configure
The image is configured withKURO_API_* variables, one per key of the
configuration, sections separated by __ (KURO_API_HTTP__BIND). The
values in docker-compose.yml match a script installation. For a full TOML file, mount it and
give its path:
Update
.env (KURO_VERSION=0.2.1). Update the API before the nodes
(Updating).
Verify the image
TheIMAGE file of each release gives the digest (sha256) of the published image; it is covered
by the SHA256SUMS signature (Verify what you install). To pin the image to
that digest rather than to its tag, replace image: in docker-compose.yml with the
ghcr.io/kuroctl/kuro-api@sha256:… line of the file.
