hyperhive/docs/tools/swarmctl-cli.md
iris 7fc426b4dd swarmctl: add CLI reference docs, same pattern as hivectl
Adds swarmctl markdown-docs (a hidden Verb, same clap-markdown +
hide=true shape as hivectl markdown-docs) and generates
docs/tools/swarmctl-cli.md from it. Wires a swarmctl-docs freshness
check into nix/checks.nix, same shape as hivectl-docs, diffing against
packages.swarmctl.

One real gotcha: PathArgs::resolve() reads required
SWARMCTL_AUTHELIA_* deployment env vars and errors if unset -
swarmctl markdown-docs must not go through that path (it needs none of
those vars, and the docs build runs it outside any real deployment).
Restructured main() so resolve() only runs for the User arm, not
unconditionally before the match.

Also links the new doc from docs/tools/README.md (new 'for the swarm
operator' section), CLAUDE.md's swarmctl bullet, and
docs/conventions.md's flake-check list.

Verified: cargo check/clippy -D warnings/test/fmt -p swarmctl all
clean; swarmctl markdown-docs diffs clean against the committed doc
(checked against both a plain cargo build and the actual nix build.
#swarmctl output); scripts/check-issue-refs.sh clean.
2026-08-11 21:55:56 +02:00

1.7 KiB

Command-Line Help for swarmctl

This document contains the help content for the swarmctl command-line program.

Command Overview:

swarmctl

swarm-level operator CLI

Usage: swarmctl [OPTIONS] <COMMAND>

Subcommands:
  • user — Manage subjects in the swarm's SSO provider
Options:
  • --authelia-bin <PATH> — authelia binary used to hash passwords. The argon2 parameters must match the verifier's, so this has to be the configured package rather than whatever is on PATH
  • --users-file <PATH> — Host-side path of authelia's users database — i.e. the path inside the container, prefixed with the container's root
  • --machine <NAME> — Machine name of the authelia container, for systemctl -M
  • --unit <UNIT> — authelia's systemd unit inside that container
  • --store <PATH> — Canonical user store

swarmctl user

Manage subjects in the swarm's SSO provider

Usage: swarmctl user <COMMAND>

Subcommands:
  • add — Add a user, generating a password for them

swarmctl user add

Add a user, generating a password for them

Usage: swarmctl user add [OPTIONS] <USERNAME>

Arguments:
  • <USERNAME> — Login name. Conservative ASCII only — it is a YAML map key and reaches access-control rules and logs
Options:
  • --display-name <TEXT> — Name shown in the SSO UI. Defaults to the username
  • --email <ADDRESS>
  • --group <GROUP> — Repeatable

This document was generated automatically by clap-markdown.