Back openDesk Edu for a sovereign, open-source education — every vote counts.
Vote nowSave products you love by clicking the heart icon.
Ein praxisnaher Leitfaden zur Bereitstellung von SOGo 6 (dem vollständigen Rewrite der SOGo Groupware-Suite) mit dem Stalwart Mail Server und OpenLDAP-Authentifizierung – vollständig containerisiert mit Docker Compose.
A big milestone for the SOGo6-dockerized project: the entire CI pipeline is now fully green, the test suite has grown to thousands of automated checks, and the remaining functional gaps in the web client have been closed. This post is a status report — and an invitation to test the stack and contribute to the project.
Repository: github.com/tobias-weiss-ai-xr/SOGo6-dockerized
SOGo6-dockerized packages the ground-up rewrite of the SOGo groupware suite as a production-representative Docker Compose stack: a Python/Flask REST API backend (SOGo 6 Server), a Next.js 16 frontend (SOGo 6 UI), PostgreSQL for persistence, Redis for caching and task queues, plus OpenLDAP for authentication and Stalwart as the modern all-in-one IMAP/SMTP/Sieve mail server.
The scope goes beyond "it runs": the project tracks CRA (Critical Risk Assessment / compliance) remediation, hardens the mail stack, and treats CI and test coverage as first-class deliverables.
The repository's Test workflow runs seven jobs on every push to main — and they all pass:
| Job | What it does |
|---|---|
| Stack build + backend tests | Builds all containers, boots MariaDB/Redis/OpenLDAP/Stalwart/server, runs the full shell test suite + gating Python integration tests |
| UI Build & Test | tsc --noEmit type gate, full Jest unit suite, production next build |
| Playwright E2E | Remote API-driven end-to-end specs across auth, mail, calendar, admin, security |
| Security scan | Trivy image scanning |
| OWASP ZAP Baseline | Automated web vulnerability baseline |
| Lint shell scripts | shellcheck on all shell suites |
| Load / Performance | k6 load scripts against the running stack |
Recent runs are green end-to-end — including the load test job, which now boots the complete stack (secrets, TLS, LDAP profile, full service set, init) exactly like the integration job.
run-all-tests.sh covering API, admin, LDAP, SMTP, hardening): 157 passedtsc --noEmit cleanmain remains in all reposThree features that only existed on stale branches are now integrated into main and covered by tests:
POST /calendars/<key>/export), polls the job, and downloads the resulting .ics file.POST/DELETE /calendars/<key>/subscription) and display the backend-generated public URL for any calendar client.RE: on replies and clean FWD: strip/re-add on forwards, so conversations stay tidy.Already present on main: PGP sign/encrypt compose toggles (e.g. SecurityOptions in the compose "More options" menu).
Get a full local instance running in a few minutes:
git clone https://github.com/tobias-weiss-ai-xr/SOGo6-dockerized.git
cd SOGo6-dockerized
# Generate secrets & TLS certs (first run)
bash sogo6/scripts/manage-secrets.sh
bash sogo6/scripts/gen-certs.sh
# Start the stack (database, LDAP, mail, server)
docker compose --profile db-mariadb --profile auth-ldap --profile mail-stalwart up -d
# Initialize the instance (LDAP users, admin account, defaults)
bash sogo6/scripts/init-sogo6.sh
Then point your browser at the UI, log in with the admin account and start clicking: mail folders, calendar events, ICS export, public calendar subscriptions, reply/forward subject prefixes, user settings, admin panel…
Anything that looks off — error messages, slow responses, broken states, missing translations — is exactly the feedback the project needs.
There are several equally valuable ways to help:
Every contribution is validated by the full CI pipeline — so "CI fully green" stays the project's baseline, not its aspiration.
Want to shape any of these? The issues list is the single source of truth.
Thanks for reading — and even more thanks for testing, filing issues, and opening PRs. The stack is ready when you are. 🚀