The manual.
New here? The three steps below take you from nothing to a working inbox in about five minutes. Scroll past them for the full manual.
Start here.
Run this command
Docker is the only prerequisite. No
.envfile, no clone, nonpm install. Paste, hit enter, wait a few seconds.docker run -d -p 3000:3000 --name bulwark \ -v bulwark-config:/app/data/admin \ -v bulwark-state:/app/data/admin-state \ ghcr.io/bulwarkmail/webmail:latestOpen localhost:3000
The setup wizard takes over from the browser. It probes your JMAP server, picks OAuth or basic auth, generates a session secret, accepts your logos, and sets the initial admin password. Nothing else to edit by hand.
Stuck on the wizard? See configuration or authentication.
Point it at a mail server
Bulwark is the front; Stalwart is the server. If you don't have one yet, install Stalwart first and come back. The wizard handles the wiring.
Or pick a path.
Docker
One command, one container, web wizard for the rest. Best for almost everyone.
Docker guideInstall script
An interactive shell installer for hosts that already have Node. Walks you through the same choices.
Run the scriptManual install
Clone the repo, install dependencies, edit the env file. The longest path, and the one with the most control.
Manual installBrowse the full manual.
Getting Started
- Stalwart SetupConfigure Stalwart Mail Server for use with Bulwark.
- IntroductionLearn what Bulwark is and why it was built.
- AuthenticationAuthentication methods supported by Bulwark.
- InstallationHow to install and run Bulwark.
- Environment ReferenceComplete reference for every variable in Bulwark's .env.example.
- ConfigurationConfigure Bulwark for your environment.
Features
- Composing EmailsRich text editor and composing features.
- EmailEmail features and capabilities in Bulwark.
- CalendarCalendar and event management features.
- Search & FiltersFull-text search and filtering capabilities.
- ContactsContact management features.
- FilesCloud file browser and JMAP FileNode storage features.
- Progressive Web AppInstall Bulwark to your home screen with a service worker and dynamic manifest.
- Anonymous Usage StatsHow Bulwark phones home - what we count, why, and how to turn it off.
Deployment
Guides
- CustomizationCustomize the look and feel of Bulwark.
- Keyboard ShortcutsAll keyboard shortcuts available in Bulwark.
- Embedded SSOEmbed Bulwark in an iframe with automatic single sign-on managed by a parent portal.
- PluginsPlugin system for extending Bulwark with custom functionality.
- Account SecurityManage password, 2FA, app passwords, and API keys from within Bulwark.
- Multi-Account SupportManage multiple simultaneous email accounts in Bulwark.
- S/MIMESign, encrypt, decrypt, and verify mail with S/MIME certificates.
- Extension MarketplaceBrowse and install plugins and themes from a configurable extension directory.
- Admin DashboardManage runtime configuration, plugins, themes, API keys, and policy from a single place.
- Master-User ImpersonationLand platform admins directly inside a tenant's mailbox via signed JWT handoff, without storing tenant passwords.
Extensions
- IntroductionBuild plugins and themes for Bulwark Webmail and publish them on the Bulwark Extensions directory.
- manifest.json referenceRequired fields, permissions, and metadata for Bulwark extensions.
- REST API referenceThe public REST API of the Bulwark Extensions directory.
- Submission guidelinesRequirements, review process, and content policy for publishing extensions on the Bulwark directory.
- Publishing & updatesHow to publish a new extension and ship updates through the Bulwark directory.