komizo

command module
v0.0.55 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2026 License: MIT Imports: 4 Imported by: 0

README

komizo

CLI for preparing and operating your own Compose hosts over SSH. No hosted account is required. Run it only against hosts you own or administer.

Install and use

Use a verified release archive or the Go toolchain matching go.mod and .mise.toml.

go run github.com/nicodes/komizo@v0.0.45 init --host root@your-server

init prepares the host and requires privileged access. Review its changes before using it on an existing host. komizo list, komizo report and komizo logs inspect applications; see command help for current flags. The local UI is available through the CLI’s ui command.

The supported deployment operation is app-scoped Compose deployment. Historical journaled rollout releases v0.0.30–v0.0.39 are superseded by v0.0.40 and later. Deployment actions are in komizo-actions. Verify release checksums and attestations before running a downloaded binary.

Release archive without Go

Example for Linux x86_64, using the reviewed release v0.0.45:

gh release download v0.0.45 --repo nicodes/komizo \
  -p 'komizo_Linux_x86_64.tar.gz' -p checksums.txt
sha256sum -c checksums.txt --ignore-missing
gh attestation verify komizo_Linux_x86_64.tar.gz --repo nicodes/komizo
tar xzf komizo_Linux_x86_64.tar.gz
./komizo --help

Select the matching Darwin/Linux and arm64/x86_64 archive for another platform. Verify it before provisioning a host.

Image retention

After updating an app with komizo add --keep-key (or every app at once with komizo update), successful deployments record the current and previous revisions for image retention. The app's deploy account can run doas /usr/local/bin/prune-<app> --dry-run to review candidates, then the same command without --dry-run to remove superseded images. The command keeps current and rollback tags, their aliases, every image named by the current compose file and by the rollback config image's compose file (including digest-pinned images, which Docker stores untagged), all container-referenced images and images outside the app's family. Every other image in the family, tagged or untagged, is removed by tag or image ID. Missing or stale deployment records, or a compose image reference it cannot resolve, prevent cleanup. If the rollback config image is not on the host, untagged images are kept. A same-version deployment preserves the earlier rollback record.

Re-running komizo init installs nightly maintenance that invokes these same app commands after preview garbage collection and logs a warning to /var/log/komizo-reclaim.log and syslog when the Docker root has less than 4 GiB free. It does not run a global image prune. Deploy accounts require no Docker socket access.

Documentation

Overview

Command komizo sets up and inspects servers that deploy from GitHub Actions.

Directories

Path Synopsis
Package box is what runs ON a server: the probes that describe a machine, and the report they produce.
Package box is what runs ON a server: the probes that describe a machine, and the report they produce.
cmd
komizo-box command
Command komizo-box is what komizo installs on a server.
Command komizo-box is what komizo installs on a server.
internal
agent
Package agent carries the compiled komizo-box binaries, so that installing one is something `komizo init` can do over a plain SSH connection.
Package agent carries the compiled komizo-box binaries, so that installing one is something `komizo init` can do over a plain SSH connection.
app
Package app is komizo: the commands, and everything they do to a server.
Package app is komizo: the commands, and everything they do to a server.
ui
Package ui carries the local web app into the binary.
Package ui carries the local web app into the binary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL