A WIP to run the stack on docker-compose. Will be moved to ELFA org once it's stable
Find a file
2026-11-03 10:56:24 +00:00
stalwart Add stalwart and pim-proxy 2026-10-05 18:58:21 +00:00
valkey Add a valkey service 2026-10-21 13:01:11 +00:00
.gitignore Add stalwart and pim-proxy 2026-10-05 18:58:21 +00:00
compose.yml Pin stalwart version + update readme 2026-11-03 10:56:24 +00:00
README.md Pin stalwart version + update readme 2026-11-03 10:56:24 +00:00

Local dev environment

This is a work in progress to be able to run the whole stack locally through docker-compose.

Run the stack

Run docker compose up --pull always --build --remove-orphans in a separate terminal to start the services.

Stalwart

A JMAP server accessible on http://localhost:58080.

To bootstrap the server, please first run docker compose up stalwart (see more on Set up Stalwart with Docker).

Once authenticated to the admin interface, head to the Credentials page to create an API key for the PIM proxy and save it in the PIM proxy .env file under PP_JMAP_API_TOKEN.

Sending emails

To be able to send mail from this server, the easiest way is to install a static version of Bulwark Lite on Stalwart.

  • Go to Web Applications and click on "Create Application"
  • In the "Resource URL" field, put https://github.com/bulwarkmail/webmail/releases/latest/download/bulwark-lite-stalwart.zip
  • in the "Description" field, put Bulwark Webmail
  • In the "URL Prefix" field, put /webmail then press Enter to add it
  • Click on "Create"
  • Go to Actions and click on "Update applications"
  • Once it's done you can access the webmail on http://localhost:58080/webmail

Other manual configuration

Unfortunately most of the Stalwart configuration lies in the internal database and not in a config file. For everything to work locally without TLS we need to manually set the following parameters :

  • On Listeners, add a new listener with the following values:
    • Listener id: imap
    • Protocol: IMAP4
    • Bind address: [::]:143
  • On Listeners, toggle off "Enable TLS" and "Implicit TLS" for all services
  • On Network Services toggle on "Allow ClearText" on all Advertised services
  • On IMAP Protofcol toggle on "Allow plain text authentication"