Commit Graph

23 Commits

Author SHA1 Message Date
Pascal Bleser
7326b2e971 groupware: update developer guide
* add instructions and container to create a key and certificate pair
   for the built-in IDM LDAP as we need it to listen on LDAPS for
   Stalwart, which has been disabled by default with
   https://github.com/opencloud-eu/opencloud/pull/2880

 * add environment variables to point to the certificates

 * update services/groupware/DEVELOPERS.md with up-to-date instructions,
   using Stalwart 0.16
2026-07-09 14:30:14 +02:00
Pascal Bleser
a78c70f785 groupware: docs: add a quick copy-pastable block for running ldapsearch 2026-07-09 14:15:52 +02:00
Pascal Bleser
5b2e8d13eb groupware: add OIDC authentication support between Groupware backend and Stalwart
* re-implement the auth-api service to authenticate Reva tokens
   following the OIDC Userinfo endpoint specification

 * pass the context where necessary and add an authenticator interface
   to the JMAP HTTP driver, in order to select between master
   authentication (which is used when GROUPWARE_JMAP_MASTER_USERNAME and
   GROUPWARE_JMAP_MASTER_PASSWORD are both set) and OIDC token
   forwarding through bearer auth

 * add Stalwart directory configuration "idmoidc" which uses the
   OpenCloud auth-api service API (/auth/) to validate the token it
   received as bearer auth from the Groupware backend's JMAP client,
   using it as an OIDC Userinfo endpoint

 * implement optional additional shared secret to secure the Userinfo
   service, as an additional path parameter
2026-07-09 14:15:52 +02:00
Pascal Bleser
bf5882fbad groupware: use the OIDC client ID 'web' instead of 'groupware' 2026-07-09 14:15:52 +02:00
Pascal Bleser
716da112ba groupware: update DEVELOPERS.md based on Jörn's feedback 2026-07-09 14:15:52 +02:00
Pascal Bleser
a31dd1d4c9 groupware: also update DEVELOPER.md with new OpenAPI documentation generation tooling 2026-07-09 14:15:52 +02:00
Pascal Bleser
8325e4cad7 groupware: add recipe for using ldapsearch in an Alpine container to DEVELOPER.md 2026-07-09 14:15:51 +02:00
Pascal Bleser
e347f2f476 groupware: add instructions for using stalwart-admin 2026-07-09 14:15:50 +02:00
Pascal Bleser
7270f9b9fa groupware: DEVELOPER.md: add note explaining LDAPTLS_REQCERT 2026-07-09 14:15:50 +02:00
Pascal Bleser
9345c3864d groupware: DEVELOPER.md: explain how to set a quota on a user using the Stalwart management API 2026-07-09 14:15:50 +02:00
Pascal Bleser
72ac709661 groupware: add Mermaid diagrams to describe the two setup options 2026-07-09 14:15:50 +02:00
Pascal Bleser
1a225e2ff9 groupware: further updates to make everything work with the builtin LDAP and OIDC 2026-07-09 14:15:50 +02:00
Pascal Bleser
a788046a67 groupware: for /accounts/all/emails/latest/summary, rename the ?unread query parameter into ?seen as that is more intuitive 2026-07-09 14:15:50 +02:00
Pascal Bleser
080da88ea8 groupware: make everything also work with the built-in LDAP and IDP 2026-07-09 14:15:50 +02:00
Pascal Bleser
47c0aec39f groupware: improve instructions in DEVELOPER.md 2026-07-09 14:15:50 +02:00
Pascal Bleser
df25f8875b groupware: minor improvements to the DEVELOPER.md 2026-07-09 14:15:50 +02:00
Pascal Bleser
4c5de9d543 services/groupware/DEVELOPER.md: adapt to new path for the opencloud_full deployment 2026-07-09 14:15:50 +02:00
Pascal Bleser
9ef4ea7f80 Docker Compose Groupware improvements
* made a few changes in order to further simplify the setup for
   developers of the Groupware backend

 * add STALWART_DOMAIN to deployments/examples/opencloud_full/.env

 * adapt the Stalwart configuration file to not set server.hostname and,
   instead, pick it up from /etc/hostname, which is set by Docker
   Compose as we can use default values for STALWART_DOMAIN there, in an
   analogous fashion to the other containers in that project

 * add config/keycloak/clients/groupware.json to avoid requiring manual
   configuration of Keycloak via the admin web UI

 * Stalwart container:
   - listen for SMTPS on :1465
   - remove the stalwart-logs volume, not needed (logs are going to
     stdout)

 * updated services/groupware/DEVELOPER.md:
   - refer to a variable OCDIR to make instructions more copy-pasteable
   - remove manual Keycloak configuration section as it is now obsolete,
     replaced by provisioning a configuration file instead
2026-07-09 14:15:50 +02:00
Pascal Bleser
e5978a26ca fix(groupware): update DEVELOPER.md imap-filler usage since it was updated to use flags instead of environment variables 2026-07-09 14:15:49 +02:00
Pascal Bleser
c035033626 docs(groupware): more developer instructions 2026-07-09 14:15:49 +02:00
Pascal Bleser
37494d94e3 more updates to the Groupware DEVELOPER.md 2026-07-09 14:15:49 +02:00
Pascal Bleser
d61efa347d docs(groupware): add configuration instructions to DEVELOPER.md 2026-07-09 14:15:49 +02:00
Pascal Bleser
106c17a39a docs(groupware): add services/groupware/DEVELOPER.md 2026-07-09 14:15:49 +02:00