Air-gapped installs
Miabi runs without internet access. Nothing it needs to deploy apps, serve traffic or validate a licence depends on a connection to the Miabi project. A few features reach out by default; this page lists each one and the setting that turns it off.
Connections Miabi makes on its own
| Destination | Purpose | How to turn it off |
|---|---|---|
https://versions.miabi.io | Daily update check for Miabi, the node agent, the runner and the gateway | MIABI_UPDATE_CHECK=false |
https://miabi.io | Anonymous installation statistics | MIABI_TELEMETRY=false or DO_NOT_TRACK=1 |
https://marketplace.miabi.io | Marketplace template catalog sync | MIABI_MARKETPLACE_URL= (set, but empty) |
| Docker Hub and other registries | Pulling platform, database and application images | A registry mirror, or images pre-loaded on each host |
| Let's Encrypt | Automatic TLS certificates | An internal ACME issuer in the gateway config, or uploaded certificates |
| Public DNS | Domain verification | Force verify the domain as a platform admin |
Each of these fails quietly when it can't connect: the update check records the error for admins, telemetry drops the event, and the marketplace keeps the templates built into the image. Turning them off avoids the attempts and their log lines.
Licence validation is offline. An Enterprise licence is verified locally against a key built into Miabi, so it needs no connection.
Example
For a stack installed with get.miabi.io, add the variables under env: in the manifest
(/etc/miabi/miabi.yaml) and re-apply it:
env:
MIABI_UPDATE_CHECK: "false"
MIABI_TELEMETRY: "false"
MIABI_MARKETPLACE_URL: ""
With Docker Compose, set the same variables in .env:
MIABI_UPDATE_CHECK=false
MIABI_TELEMETRY=false
MIABI_MARKETPLACE_URL=
Installing without internet access
The installer downloads a few things. On a disconnected host, provide each one yourself:
| Download | Default source | Offline alternative |
|---|---|---|
| The install script | https://get.miabi.io | Download it on a connected machine and copy it over |
The miabi CLI | GitHub releases | MIABI_CLI_BASE_URL pointing at an internal artifact store |
The latest Miabi version, for miabi setup/upgrade run without --version | https://versions.miabi.io | Pass --version, or set MIABI_RELEASE_API to a mirror. The install script pins the version itself |
| Docker Engine | The Docker package repositories | Install Docker yourself and set MIABI_SKIP_DOCKER_INSTALL=1 |
| Container images | Docker Hub | Load them with docker load, or pull through an internal registry |
A fresh install needs miabi/miabi and jkaninda/goma-gateway at the versions pinned at the top of
the install script, plus postgres:17-alpine and redis:7-alpine. Remote nodes and CI runners also
need miabi/agent and miabi/runner.
See Installation for every installer option.
Connections you configure
These connect only when you set them up, and only to the address you give:
- Git providers for pipelines and Git-sourced apps
- SSO identity providers
- DNS providers for DNS-01 certificates
- S3-compatible storage for backups
- Webhooks and alert notification channels
- An SMTP server for email
- SIEM audit-log sinks
Point each at an internal service, or leave it unconfigured.