Architecture

HomeArchitecture → Airgap deployment

Airgap deployment

Ironmark supports installation on disconnected networks. The application sends no telemetry, performs no license phone-home, and makes no outbound application connection by default. Offline installation still requires the target operating-system dependencies to be present in the bundle, staged in an internal repository, or installed by the customer before setup.

The install bundle

The release bundle contains the Ironmark application and its bundled application dependencies. A detached signature can be verified before installation. Operating-system packages must be staged for the target environment; do not assume that every clean Debian or Ubuntu image can be installed offline without customer preparation.

ApplicationBackend + frontend + SDM packages
Python wheels~60 wheels prebuilt for manylinux2014_x86_64. No pip network fetch required.
System depsMySQL 8, nginx, and other operating-system packages are installed from customer-accessible package sources or staged .deb files. Java and Apache FOP are optional and needed only when that external FO backend is selected.
Setup scriptinstall.sh handles user creation, MySQL init, systemd unit install, nginx config, and cert setup

Install path

Same script for airgap and connected installs. The connected path optionally uses Let's Encrypt; airgap uses a self-signed or customer-supplied cert.

Installation time depends on the prepared host, package staging, certificate path, database state, and the customer's change-control process.

Updates

Same bundle format. Two update paths:

Both paths verify the bundle's detached signature against the customer's installed pubkey. Unsigned or tampered bundles are rejected at the load stage.

License enforcement

Licenses are signed .irm files issued by the vendor. Customer installs verify against the license pubkey, offline, at boot and periodically. On expiry, reads and exports keep working; publish is gated until renewal. No phone-home for enforcement.

On the outbound-call posture: the app makes no outbound HTTP in the default configuration. Three outbound paths are possible and each stays off until you turn it on: a dependency-CVE check (opt-in), an SMTP relay for notifications (configured explicitly), and your identity provider (only if you configure OIDC). Everything else stays on the network you put it on.

Backup + restore

What isn't included

← Back to Architecture