Skip to content

Repository files navigation

ignition-stack

CI Docs Documentation

CLI that generates ready-to-run Docker Compose stacks for Ignition 8.3 SCADA demos and SE engagements. Pick a system architecture (basic, scale-out, or hub-and-spoke), layer on services, and it writes a self-contained project: a hand-readable compose file, .env, file-config seed resources, and a POST-SETUP.md listing only what could not be pre-seeded.

See docs/docs/reference/seeding-matrix.md for which Ignition 8.3 connection types can be provisioned from the filesystem and env on a live 8.3.6 gateway. Full documentation lives in the docs/ Docusaurus site.

Install

pipx install ignition-stack

To install from source instead of PyPI - the latest off main, or a specific branch:

pipx install git+https://github.com/knorrlabs/ignition-stack.git
pipx install git+https://github.com/knorrlabs/ignition-stack.git@<branch>

Quickstart

Generate a project and bring it up:

ignition-stack create demo --arch basic
cd demo
docker compose up -d

The gateway reaches RUNNING with no UI prompts. The admin user is admin / password and the gateway is at http://localhost:9088. The default Postgres credentials are ignition / ignition on the db service.

Run create without --arch to walk the interactive wizard instead: it opens architecture-first, then layers database, edition, IIoT, services, and exposure on top, with a summary you can preview, tweak, or generate.

Everything that ships in the generated project is hand-readable: docker-compose.yaml, .env, scripts/docker-bootstrap.sh, and a services/ignition/ resources tree the gateway reads on first boot.

Commands

Command What it does
create <name> Generate a project at ./<name>/ from an architecture and a few prompts.
modules Download, verify, and manage the .modl / JDBC catalog.

See the CLI reference for every command, argument, and option.

What gets generated

demo/
  docker-compose.yaml         # one gateway, one Postgres, one bootstrap init container
  .env                        # values referenced by docker-compose.yaml
  scripts/
    docker-bootstrap.sh       # seeds /data, sets gateway-network UUID, hands ownership to uid 2003
  services/
    ignition/
      config/resources/core/config-mode.json
      config/resources/dev/config-mode.json
      projects/.gitkeep

The bootstrap script is run once per data volume. It copies the gateway's base data into a named volume, layers the project's services/ignition/ tree on top, sets a deterministic gateway-network UUID derived from the project name, and hands ownership of /data to uid 2003 so the gateway can write its resource caches.

Commissioning is fully env-driven (ACCEPT_IGNITION_EULA=Y, GATEWAY_ADMIN_PASSWORD, IGNITION_EDITION), so first boot needs no UI.

About

Dynamic Ignition Stack CLI - generate Docker compose stacks for Ignition 8.3 SCADA demos and SE engagements

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages