Documentation

Three steps take you from nothing to a working inbox in about five minutes. The rest of the manual is reference: configuration, features, deployment and the extension API.This is the Bulwark Lite manual. Three steps put the client on a web host, and pages that only apply to the full edition are hidden.

Start here

  1. 1
    Run the container. Docker is the only requirement. There is nothing to clone and no .env file to write first.
    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:latest
  2. 2
    Open localhost:3000. The setup wizard finds your JMAP server, chooses OAuth or password sign-in, generates a session secret and sets the admin password. The configuration and authentication pages cover each screen.
  3. 3
    Point it at Stalwart. Stalwart is the mail server: 0.16.6 or newer. The Stalwart setup page covers installing it first.
  1. 1
    Download the zip. Every release attaches bulwark-lite-<version>.zip: a folder of HTML, JavaScript and one JSON file.
  2. 2
    Edit config.json. Set jmapServerUrl to your Stalwart server, and appName if you like. Stalwart 0.16.6 or newer works. The file is read at runtime, so later edits need no rebuild.
  3. 3
    Upload it and allow CORS. Put the folder on any static host and turn on the Permissive CORS policy in Stalwart, under Settings > Network > HTTP > Security. Host snippets for nginx, Caddy, Netlify, Cloudflare Pages and GitHub Pages are on the static hosting page.

Choose how to install

Browse the manual