Install the binary
The one-line installer puts a single kuben binary on Linux or macOS (x86_64 or arm64). The binary manages a cluster through a kubeconfig and keeps its own data in SQLite. It is the quickest way to try Kuben on one server, and a reasonable way to run it there.
Install
Section titled “Install”curl -fsSL https://raw.githubusercontent.com/Teamtem-dev/kuben/main/install.sh | bashOptions, as flags or environment variables:
| Flag | Variable | Default |
|---|---|---|
--version v1.0.2 |
KUBEN_VERSION |
latest stable release |
--dir <path> |
KUBEN_INSTALL_DIR |
/usr/local/bin |
--no-sudo |
KUBEN_NO_SUDO=1 |
uses sudo when the directory is not writable and sudo exists |
On Windows, download kuben-x86_64-pc-windows-msvc.zip from the releases page.
What the script guarantees
Section titled “What the script guarantees”- HTTPS only, TLS 1.2 or later, no redirects to plain HTTP.
- Checksum first. The archive’s SHA-256 is compared with the release’s
checksums.txtbefore anything is extracted or installed. - No partial execution. The whole script is a
main()called on the last line, so a truncated download runs nothing. - Native architecture. An x86_64 shell under Rosetta on Apple Silicon still gets the arm64 binary.
- No API calls. The latest version is found through the
releases/latestredirect, so there is no rate limit and nojq. - Verified after every release. CI runs the script on Ubuntu (x64 and arm64) and macOS against the real release.
To go further, verify the build provenance with the GitHub CLI:
gh attestation verify kuben-x86_64-unknown-linux-musl.tar.gz --repo Teamtem-dev/kubenRun it on a server
Section titled “Run it on a server”-
Get a cluster to manage. On a single server, k3s is the quickest:
Terminal window curl -sfL https://get.k3s.io | sh -export KUBECONFIG=/etc/rancher/k3s/k3s.yaml -
Check the prerequisites.
doctorchecks the database, the cluster connection, Gateway API, cert-manager and metrics-server, and tells you what is optional.Terminal window kuben doctorThe database is
/data/kuben.dbby default and the directory is created on first start. To keep it elsewhere:Terminal window export KUBEN_DATABASE__URL=sqlite:///var/lib/kuben/kuben.db -
Start Kuben. The first start prints the generated admin password once, in this terminal.
Terminal window kuben serve -
Open the console. The session cookie is
Secure, so either put Kuben behind HTTPS or tunnel tolocalhost, which browsers treat as secure:Terminal window ssh -L 8080:localhost:8080 root@your-serverThen browse to
http://localhost:8080. Only for a quick test over plain HTTP, setKUBEN_SECURITY__COOKIE_SECURE=false.
Keep it running
Section titled “Keep it running”A minimal systemd unit:
[Unit]Description=KubenAfter=network-online.target k3s.serviceWants=network-online.target
[Service]Environment=KUBECONFIG=/etc/rancher/k3s/k3s.yamlEnvironment=KUBEN_DATABASE__URL=sqlite:///var/lib/kuben/kuben.dbEnvironment=KUBEN_SERVER__BIND=127.0.0.1:8080ExecStart=/usr/local/bin/kuben serveRestart=on-failureUser=kubenStateDirectory=kuben
[Install]WantedBy=multi-user.targetBinding to 127.0.0.1 and publishing the console through the cluster’s own Gateway (or any reverse proxy that terminates TLS) keeps the Secure cookie happy. When a proxy sits in front, set KUBEN_SECURITY__TRUST_FORWARDED_FOR=true so login throttling sees real client addresses; see Configuration.
Other commands
Section titled “Other commands”kuben migrate, kuben backup, kuben restore, kuben reset-admin and kuben version are described in the CLI reference.