Skip to content

Groupware: upgrade Stalwart to 0.16#2714

Open
pbleser-oc wants to merge 1 commit into
mainfrom
groupware/upgrade-stalwart-to-0.16
Open

Groupware: upgrade Stalwart to 0.16#2714
pbleser-oc wants to merge 1 commit into
mainfrom
groupware/upgrade-stalwart-to-0.16

Conversation

@pbleser-oc

Copy link
Copy Markdown
Member

Apply a series of changes to the Docker Compose project to run and initialize Stalwart >= 0.16, which is a different process from previous versions

 * Stalwart 0.16 introduces a different way of configuring the service,
   requiring to first bootstrap in recovery mode, then using the
   stalwart-cli (which is distributed separately) to load a NJSON file
   that contains the configuration objects, and then restarting Stalwart
   itself but in regular mode

 * the TOML configuration file is replaced by a small JSON file in
   dev/docker/stalwart/stalwart-config.json, and the JSON configuration
   snapshot dev/docker/stalwart/idmldap.json

 * the docker-compose.yml has been modified to
   - have the stalwart container check for a .initialized file in the
     mounted data volume and if that file does not exist, it loops
     endlessly until it is there, sleeping 1s in between checks; when
     that file has been created by the stalwart-import container; and
     when that happens, the stalwart process is stopped and restarted in
     regular mode
   - have an additional container stalwart-import that also mounts the
     stalwart-data volume, and if the .initialized file does not exist
     there yet, waits for the stalwart process to be ready (checking for
     its healthz endpoint), and when that happens, it imports the
     configuration snapshot using stalwart-cli, and then creates the
     .initialized file

 * since stalwart-cli is currently not distributed as a docker
   container, we create one on-the-fly using an inline dockerfile in the
   docker-compose.yml

 * changed the built-in IDM LDAP's authentication password as Stalwart
   is configured to expect that to be 'admin' instead of
   'some-ldap-reva-password', which will make porting changes between
   this Docker Compose project and the opencloud_full one that is used
   for developing OpenCloud backend services a lot easier

 * added OC_LDAP_CACERT to point to the LDAP certificate file

 * added GROUPWARE_JMAP_BASE_URL, GROUPWARE_JMAP_MASTER_USERNAME and
   GROUPWARE_JMAP_MASTER_PASSWORD environment variables to opencloud
   containers
@pbleser-oc pbleser-oc requested a review from tammi-23 June 17, 2026 14:11
@pbleser-oc pbleser-oc added Component:Web Priority:p3-medium Normal priority Type:Maintenance E.g. technical debt, packaging, etc. labels Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component:Web Priority:p3-medium Normal priority Type:Maintenance E.g. technical debt, packaging, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant