docs/main/deployment-guide/air-gapped-operations/offline-license-activation.mdx
In a connected install, Mattermost activates Enterprise licenses by contacting customers.mattermost.com and validating the license signature against Mattermost's signing key. In an air-gapped enclave, that callback is impossible.
Offline activation produces a license file that is signed by Mattermost's customer-success team and validated locally by the Mattermost server using a pre-installed public key. No network access is required at activation time.
v10.5.0).IssuedAt is sensible relative to your NTP source).mattermost.license file out-of-band (typically encrypted email, customer portal download, or shipped on physical media for sovereign-cloud deployments).mmctl license upload /path/to/mattermost.license
mmctl license status
| Event | Connected install | Air-gapped install |
|---|---|---|
| Initial activation | Online callback to customers.mattermost.com | Local validation of pre-signed .license file |
| Renewal | Automatic prompt 60 days before expiry | Manual: customer-success issues new file; operator re-uploads |
| Automated utilization reporting | Daily POST to customers.mattermost.com | Disabled — Mattermost does not contact customers.mattermost.com from inside the enclave. Reporting is done manually at renewal. |
:::important Automated license utilization reporting must be disabled
The EnableLicenseReporting server setting must be set to false in config.json. Otherwise, Mattermost attempts (and silently fails) a daily POST to customers.mattermost.com. The failure does not affect functionality, but it pollutes egress logs and triggers boundary alerts. See Disable Phone-Home Features.
:::
Mattermost server ships with the public key used to verify license signatures embedded in the binary. There is no need to import or trust an additional key.
If license validation fails after upload, the server logs an explicit error message. Common causes:
IssuedAt. Fix your NTP source.Mattermost Enterprise licenses are typically 12-month terms. In air-gapped mode, plan for license renewal 60 days before expiry to allow time for customer-success issuance + air-gap transfer. Expired licenses degrade Mattermost to free-tier features; they do not lock the server.
This page is a stub — Phase 2 will add a worked example for sovereign-cloud (GovCloud) deployments where the license file is delivered via the customer portal rather than out-of-band. Tracked in docs/_redesign/proposed-ia.md §6 in the repo.