https://github.com/thirdgen88/ignition-examples
Ignition Examples with Docker Compose
https://github.com/thirdgen88/ignition-examples
Last synced: 5 months ago
JSON representation
Ignition Examples with Docker Compose
- Host: GitHub
- URL: https://github.com/thirdgen88/ignition-examples
- Owner: thirdgen88
- Created: 2019-01-15T00:27:57.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-04-16T16:37:37.000Z (about 2 years ago)
- Last Synced: 2024-04-16T21:55:58.465Z (about 2 years ago)
- Language: Shell
- Homepage:
- Size: 14.1 MB
- Stars: 25
- Watchers: 5
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ignition Architectures with Docker Compose

Inductive Automation's Ignition [Architectures](https://inductiveautomation.com/ignition/architectures) implemented with Docker Compose.
- [Ignition Standard Architecture](standard) - Single Gateway and Database
- [Ignition Scale-Out Architecture](scale-out) - 2 Backend and 1 Frontend Gateway
- [Ignition Hub & Spoke Architecture](hub-spoke) - Central and Remote Site Gateways w/ site-local Database.
- [Ignition Enterprise Architecture](enterprise) - Central and Remote Site Gateways with EAM Configuration and site-local Database.
- [Ignition IIoT Architecture](iiot) - Central and Remote Site Gateways with MQTT/Sparkplug Transport.
> [!WARNING]
> **These architecture stacks are for demonstration purposes only. Production deployments should be using SSL/TLS for Gateway Web UI and Gateway Network connections!**
## Prerequisites
To launch these architecture examples, you'll need to have Docker Engine and Docker Compose installed. These are available as part of [Docker Desktop](https://www.docker.com/products/docker-desktop). You can also install [Docker Engine](https://docs.docker.com/engine/install/) directly on Linux and follow up with [Compose V2 CLI plugin](https://docs.docker.com/compose/cli-command/#install-on-linux).
Once you've got Docker ready to go, click one of the architecture links up top to get started!
## Common Configuration
Each of the Compose solutions in this repository leverage some common configurability.
- `.env` file - This contains some environment variables that will be loaded in by Docker Compose. Variables such as `COMPOSE_PROFILES` can be used to enable some optional functionality (such as redundancy) in the solution. Additionally, global settings such as the `IGNITION_VERSION` for the image tag can be defined here.
- `docker-compose.yml` - This is the YAML file that defines the containers and associated configuration for the architecture.
- `secrets` folder - **⚠️ WARNING: These secrets exist in-repo for demo purposes only. Never commit your secrets to source control!** This folder contains secrets that are mapped into a given container and used for setting up credentials. The files here are referenced within the `secrets:` keys of the `docker-compose.yml`. Note that the gateway admin password of `password` can be updated by uncommenting the `GATEWAY_ADMIN_*` environment variables in `gw-init/gateway.env` prior to bringing up a given architecture solution.
- `gw-init` folder - This folder contains seed files for the solution that are sourced from the `docker-compose.yml` file. Items such as gateway backups, gateway network keystores/identifiers, and environment files are used when launching the solution.
- `gw-backup` folder - Sub-folders under here may be bind-mounted into the various containers and used as the target for scheduled gateway backups.
- `gw-build` folder - If this folder is present, it is used to build a derived image as part of the solution. Custom functionality such as third-party module bundling can be layered onto the base `inductiveautomation/ignition` image. The derived image is then automatically used to launch containers in the solution.
- `sql-init` folder - Many database containers allow some pre-configuration scripts to be executed on first-launch. If this folder is present, the database server container may stage schemas/users on startup to provide the required configuration for the connected gateways.