Let me pull the full outbound network requirements section for details.
Stalwart can run entirely offline once installed, but a few specific features rely on outbound internet access. Here’s what to plan for:
1. Can it run fully offline? Yes, the core mail/collaboration server (SMTP, IMAP, JMAP, POP3, WebDAV) has no runtime dependency on the internet. A handful of optional features do reach out over HTTPS, and you can work around each of them (details below).
2. What needs internet access, and how to avoid it:
- WebUI: The admin console (
/admin) and account manager (/account) are not bundled with the server binary. On first start, Stalwart downloads the WebUI bundle from https://github.com/stalwartlabs/webui/releases/latest/. If that download fails and no local copy exists, /admin and /account return 404 Not Found. Workaround: download the WebUI release bundle on an internet-connected machine, host it on an internal HTTPS server, and point the WebUI Application record’s resourceUrl at your internal server instead.
- ACME (Let’s Encrypt): automatic TLS certificate issuance contacts the ACME directory (default
https://acme-v02.api.letsencrypt.org/directory). In an air-gapped setup you’d instead supply your own certificates manually rather than using ACME.
- Public DNS: SPF/DKIM/DMARC/MX lookups and DNSBL/DNSWL spam-list queries require outbound DNS. In a closed network you’d need an internal resolver serving whatever zones you rely on, and DNS-based blocklists simply won’t function without reachable public DNSBL providers (this is an optional spam-filter feature, not required to run mail).
3. Docker images: On an internet-connected machine, pull the image (docker pull stalwart/mail-server:vX.Y or GHCR equivalent), then export/import it for the air-gapped host:
docker pull stalwart/mail-server:v0.16
docker save stalwart/mail-server:v0.16 -o stalwart.tar
# transfer stalwart.tar to the offline host
docker load -i stalwart.tar
Pin to a specific v<major>.<minor> tag rather than latest for reproducibility. See the Docker install docs.
4. Files/binaries to download in advance:
- The Stalwart server Docker image (or the Linux binary via the install script if not using Docker)
- The WebUI release bundle (if you want the admin console/account manager to work)
- Any TLS certificates you plan to use manually (since ACME won’t be reachable)
5. Official offline-specific procedure: There isn’t a dedicated “air-gapped deployment” guide, but the System Requirements / Outbound network requirements page documents exactly which features need egress and how to substitute internal endpoints, which covers your scenario.
6. Features that won’t work offline: WebUI/admin console (until you self-host the bundle), ACME automatic certificate issuance/renewal, DNS-based blocklist/allowlist spam checks, and any other hosted Applications that rely on external resourceUrls. Core mail delivery, storage, JMAP/IMAP/SMTP protocols, and CLI-driven management all work fine fully offline.
This is an automated reply from the Stalwart Help Bot. Other community members may follow up if this answer is incomplete or wrong.