Files
hanzo-dev 6c6dc5ee65
CI/CD / gate (push) Canceled after 0s
CI/CD / containment (push) Canceled after 0s
CI/CD / image (push) Canceled after 0s
CI/CD / rollout (push) Canceled after 0s
CI/CD / reach (push) Canceled after 0s
CI/CD / fanout (push) Canceled after 0s
CI/CD / receipt (push) Canceled after 0s
stop passing --enable; the binary rejected it and make run died
Removing CLOUD_ENABLE/--enable (ecafb31c) deleted the flag from the binary but
left three launchers passing it. Go's default flag.CommandLine is ExitOnError,
so this is not a warning:

  $ ./bin/cloud --enable=iam
  flag provided but not defined: -enable

`make run` and the documented compose quickstart both died before boot, and the
four README brand examples were copy-paste instructions to do the same. The
removal was deliberate and test-enforced (cmd/cloud/mount_test.go asserts the
flag's absence) — the launchers were simply never updated with it. My miss.

RUN_ENABLE is renamed RUN_PLUGINS because it never mounted anything: it is the
list of plugin BINARIES to build so local dev does not build all 106. The host
mounts what manifest.Apps lists and resolves each plugin as a file beside
itself; a lazy one with no binary never starts, a Required one fails loudly.
Keeping the name would have said the binary takes a mount list, which is the
thing that took devnet down twice.

compose.yml's HANZO_ENABLE goes with it. Its environment: block is inert
anyway — HANZO_BRAND/DOMAIN/DATA_DIR have no Go read sites and work only
because the same file passes the flags, which main.go forward() republishes as
CLOUD_*. That is a separate cleanup, not this one.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-08-04 00:10:41 -07:00
..

Deploying hanzoai/cloud

Reference deployment manifests for the unified Hanzo Cloud binary (HIP-0106). Each manifest demonstrates a different deployment topology.

Manifest Topology Use case
compose.yml single-node Docker VPS, dev, demo

Coming soon: kustomize/ and helm/ for k8s deploys (see luxfi/operator for the canonical CRD-driven shape).

Quick start (Docker Compose)

cp deploy/compose.env.example deploy/compose.env
# edit HANZO_BRAND / HANZO_DOMAIN / HANZO_IAM_ISSUER as needed
docker compose -f deploy/compose.yml --env-file deploy/compose.env up -d
curl http://localhost:8080/health

Environment

Required:

  • HANZO_IAM_ISSUER — OIDC issuer URL. Without it the IAM subsystem refuses to mount and the binary exits.

Optional (defaults shown):

  • HANZO_BRAND=hanzo
  • HANZO_DOMAIN=api.hanzo.local
  • HANZO_ENABLE=iam,base,kms,gateway,o11y
  • HANZO_DATA_DIR=/var/lib/cloud

The full subsystem list is in manifest/apps.go. Per HIP-0106 payments and vault NEVER co-resident — leave them off this binary unless you understand the PCI scope implications.