CLI reference
:::info Generated page
This page is generated from the Typer command tree by docs/gen_cli_reference.py.
Do not edit it by hand. Regenerate it with npm run gen:cli (or
uv run python docs/gen_cli_reference.py); a CI drift check fails if it falls
out of sync with the CLI.
:::
Generate ready-to-run Docker Compose stacks for Ignition 8.3 SCADA demos.
Global options
Options
--version(flag): Show ignition-stack version and exit.--install-completion(flag): Install completion for the current shell.--show-completion(flag): Show completion for the current shell, to copy it or customize the installation.
ignition-stack create
Generate a new Ignition stack at <output-dir>/<name>.
With --from-file, builds from a saved config file. With --arch,
runs non-interactively from the named architecture and its flags. With
neither, walks the interactive wizard. --dry-run resolves the config
and prints it instead of writing anything.
ignition-stack create [OPTIONS] NAME
Arguments
NAME(required): Project name. Becomes the directory, the compose project, and the gateway name.
Options
--arch,-aTEXT: System architecture to materialize (skips the wizard): - basic: One full Ignition 8.3 gateway + Postgres. The default starter stack. - hub-and-spoke: Central hub gateway + N Edge spoke gateways. Spoke count > 8 needs --force. - scale-out: Frontend + backend Ignition gateways via gateway network + Postgres.--spokesINTEGER(default3): Spoke gateway count for the hub-and-spoke architecture (ignored otherwise).--frontendsINTEGER(default1): Frontend gateway count for the scale-out architecture (ignored otherwise).--network-split,--no-network-split(flag): Force the frontend/backend network split on or off. Default follows the architecture (scale-out splits, hub-and-spoke does not).--reverse-proxyTEXT: Route gateways through a Traefik reverse proxy instead of host ports. 'external' joins a proxy you already run (on --proxy-network); 'scaffold' also lays down the ia-eknorr/traefik-reverse-proxy README at --proxy-path. Omit for plain host-port mapping.--proxy-networkTEXT(defaultproxy): External Docker network the proxy routes on (with --reverse-proxy). Defaults to 'proxy'.--proxy-pathTEXT(defaultreverse-proxy): Relative directory the scaffolded proxy README lives in (with --reverse-proxy scaffold).--force(flag): Bypass the hub-and-spoke red-tier RAM advisory.--edge-roleTEXT: Gateway role that runs the Ignition Edge edition. Scale-out runs all gateways standard by default; hub-and-spoke defaults its spokes to Edge. Pass 'none' to disable the architecture's edge default; pass a role name ('frontend', 'hub', 'gateway', ...) to opt that role in.--redundantTEXT: Make a single gateway role redundant, expanding it into a master + backup pair (e.g. 'backend' for scale-out, 'hub' for hub-and-spoke, 'gateway' for basic). Frontends and spokes are replicated, not paired, and are rejected.--disable-builtinTEXT(default[]): Built-in IA module to turn off on every gateway (repeatable), e.g. --disable-builtin vision --disable-builtin sfc. Emits a GATEWAY_MODULES_ENABLED whitelist of everything else. Slugs tab-complete; an unknown slug is rejected with the full valid list.--moduleTEXT(default[]): Third-party module from your local registry to pre-install on every gateway (repeatable), e.g. --module embr-charts or --module embr-charts@6.0.0. Resolved to the newest build compatible with the stack's Ignition version; pin an exact version with @. Register modules first withignition-stack modules add.--iiot,--no-iiot(flag): Overlay an MQTT/Sparkplug IIoT pipeline: add a broker and wire the Cirrus Link Transmission/Engine modules across the gateways by role (spokes/frontends transmit, hub/backend run Engine; a single gateway runs both). Defaults the broker to 'chariot'.--iiot-brokerTEXT: MQTT broker slug the IIoT overlay wires to (implies --iiot). Must be a catalog 'mqtt-broker' kind (e.g. 'chariot', 'emqx', 'hivemq'). Defaults to 'chariot' when --iiot is given without this flag.--from-file,-fPATH: Build from a saved config file (YAML or JSON, as dumped by --dry-run) instead of an architecture or the wizard. Mutually exclusive with --arch. The project name argument overrides the file's name.--dry-run(flag): Resolve the config and print it (see --output-format) without writing any files. The dump is the full build input; redirect it to a file, edit it, and rebuild with --from-file.--output-formatTEXT: Format for the --dry-run dump: 'yaml' (default) or 'json'.--output-dir,-oPATH: Parent directory the project is written into. Defaults to the current directory.
ignition-stack modules
Inspect and prepare the module + driver catalog.
ignition-stack modules COMMAND [ARGS]...
ignition-stack modules add
Register a third-party .modl in the local registry.
Metadata (id, version, Ignition floor, line, dependencies, license-need) is
read from the artifact's module.xml; the sha256 is computed on add
(trust-on-first-use). The original file/URL is never modified - a temp copy
is what lands in the global cache.
ignition-stack modules add [OPTIONS] SOURCE
Arguments
SOURCE(required): URL (http/https) or local path of a .modl to register.
Options
--nameTEXT: Override the auto-derived slug.--license-envTEXT: Env var holding the license key, for a non-free module.
ignition-stack modules download
Materialise selected catalog entries into the host-side cache.
ignition-stack modules download [OPTIONS] [NAMES...]
Arguments
NAMES...(optional): Entries to download. Omit to download every non-manual entry.
Options
--catalogPATH: Path to a modules.yaml. Defaults to the bundled catalog.--ignition-versionTEXT: Filter to entries verified for this exact version.--cache-dirPATH(defaultmodules/cache): Destination directory for cached artifacts.--offline(flag): No network calls. Fails if any selected entry is missing from the cache.
ignition-stack modules list
Show every catalog entry as a table.
ignition-stack modules list [OPTIONS]
Options
--catalogPATH: Path to a modules.yaml. Defaults to the bundled catalog.--ignition-versionTEXT: Filter to entries verified for this exact version.
ignition-stack modules remove
Remove a module (and its cached blob) from the local registry.
ignition-stack modules remove [OPTIONS] NAME
Arguments
NAME(required): Module slug or identifier to remove.
Options
--versionTEXT: Remove only this exact version; omit to remove every version.
ignition-stack modules validate
Confirm schema integrity, pinned shas, and (optionally) URL reachability.
ignition-stack modules validate [OPTIONS]
Options
--catalogPATH: Path to a modules.yaml. Defaults to the bundled catalog.--skip-network(flag): Only validate the schema; skip URL reachability.
ignition-stack modules versions
Show every cached version of a module and the Ignition line each satisfies.
ignition-stack modules versions NAME
Arguments
NAME(required): Module slug or identifier to inspect.