On Mon, Jul 27, 2026 at 4:56 PM Tobias Weiß <[email protected]> wrote:
> Am 27.07.26 um 12:55 schrieb Washington Odhiambo ([email protected]): > > This is very useful. However, cloning the repo and working through it > > requires much more work than just picking the compose file, defining > > the services I want and building. > > It's obvious I have to wait for the MariaDB bits to be baked in before I > > can attempt to run from your repo. > > My current environment: > > Exim → SMTP > > Dovecot → IMAP and authentication > > MariaDB → SOGo profiles, address books, calendars, and user sources > > nginx → reverse proxy > > > > So I would have to strip a lot from your compose file to only retain > > what I don't already have. > > Thank you for feedback. > The compose file is now structured such that users can pick from a list > of backends. For your specific use case this may be > > > > ```bash > > > # Exim + Dovecot + MariaDB — only need SOGo core + MariaDB > > > docker compose --profile nginx --profile db-mariadb up -d > > > > > > # Then point SOGo to your existing services via Admin API: > > > # SOGO_D_IMAP_SERVER = your-dovecot > > > # SOGO_D_SMTP_SERVER = your-exim > > > ``` > > > I looked at opendesk-edu. Looks promising too. But I got to that point > > where I saw Jitsi/BBB/Moodle and kinda felt lost. However, when all > > pointed to k8s, I gave up. It's not my cup of tea :-) > > Thank you for the kind words. openDesk Edu is about a digital workplace > for universities and other (rather bigger) organizations. Thus, k8s is > the platform to go. However, the point I wanted to make is the > following: openDesk Edu integrates SOGo (6) and positions it as a viable > groupware option - next to OX, grommumio, etc. > > Best, Tobias > I believe I only need SOGo core and SOGo UI, no? I don't need Nginx as that is already running on the host as well. Perhaps it would be great to have all environment variables moved to a .env file as well? I tried: docker compose --profile db-mariadb up -d `` root@eu:/opt/sogo6-stalwart-openldap-dockerized# docker compose --profile db-mariadb up -d [+] up 14/14 ✔ Network sogo6-stalwart-openldap-dockerized_sogo6-net Created 0.1s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-ldap-config Created 0.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-postgres-data Created 0.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-stalwart-data Created 0.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-redis-data Created 0.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-ldap-data Created 0.0s ✔ Container sogo6-ldap Healthy 13.0s ✔ Container sogo6-smtp Started 1.3s ✔ Container sogo6-postgres Healthy 13.0s ✔ Container sogo6-redis Healthy 13.0s ✘ Container sogo6-stalwart Error dependency sogo6-stalwart failed to start 13.0s ✔ Container sogo6-server Created 0.1s ✔ Container sogo6-ui Created 0.1s ✔ Container sogo6-nginx Created 0.1s dependency failed to start: container sogo6-stalwart exited (1) root@eu:/opt/sogo6-stalwart-openldap-dockerized# docker compose --profile db-mariadb logs -f sogo6-postgres | ******************************************************************************** sogo6-postgres | WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow sogo6-postgres | anyone with access to the Postgres port to access your database without sogo6-postgres | a password, even if POSTGRES_PASSWORD is set. See PostgreSQL sogo6-postgres | documentation about "trust": sogo6-postgres | https://www.postgresql.org/docs/current/auth-trust.html sogo6-postgres | In Docker's default configuration, this is effectively any other sogo6-postgres | container on the same system. sogo6-postgres | sogo6-postgres | It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace sogo6-postgres | it with "-e POSTGRES_PASSWORD=password" instead to set a password in sogo6-postgres | "docker run". sogo6-postgres | ******************************************************************************** sogo6-postgres | The files belonging to this database system will be owned by user "postgres". sogo6-postgres | This user must also own the server process. sogo6-postgres | sogo6-postgres | The database cluster will be initialized with locale "en_US.utf8". sogo6-postgres | The default database encoding has accordingly been set to "UTF8". sogo6-postgres | The default text search configuration will be set to "english". sogo6-postgres | sogo6-postgres | Data page checksums are disabled. sogo6-postgres | sogo6-postgres | fixing permissions on existing directory /var/lib/postgresql/data ... ok sogo6-postgres | creating subdirectories ... ok sogo6-postgres | selecting dynamic shared memory implementation ... posix sogo6-postgres | selecting default max_connections ... 100 sogo6-postgres | selecting default shared_buffers ... 128MB sogo6-postgres | selecting default time zone ... UTC sogo6-postgres | creating configuration files ... ok sogo6-postgres | running bootstrap script ... ok sogo6-postgres | sh: locale: not found sogo6-postgres | 2026-07-27 16:49:04.593 UTC [35] WARNING: no usable system locales were found sogo6-postgres | performing post-bootstrap initialization ... ok sogo6-postgres | syncing data to disk ... ok sogo6-postgres | sogo6-postgres | sogo6-postgres | Success. You can now start the database server using: sogo6-postgres | sogo6-postgres | pg_ctl -D /var/lib/postgresql/data -l logfile start sogo6-postgres | sogo6-postgres | initdb: warning: enabling "trust" authentication for local connections sogo6-postgres | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. sogo6-postgres | waiting for server to start....2026-07-27 16:49:05.974 UTC [41] LOG: starting PostgreSQL 15.18 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit sogo6-postgres | 2026-07-27 16:49:05.978 UTC [41] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" sogo6-postgres | 2026-07-27 16:49:06.019 UTC [44] LOG: database system was shut down at 2026-07-27 16:49:05 UTC sogo6-postgres | 2026-07-27 16:49:06.032 UTC [41] LOG: database system is ready to accept connections sogo6-postgres | done sogo6-postgres | server started sogo6-postgres | CREATE DATABASE sogo6-postgres | sogo6-postgres | sogo6-postgres | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/* sogo6-postgres | sogo6-postgres | waiting for server to shut down....2026-07-27 16:49:06.143 UTC [41] LOG: received fast shutdown request sogo6-postgres | 2026-07-27 16:49:06.148 UTC [41] LOG: aborting any active transactions sogo6-postgres | 2026-07-27 16:49:06.152 UTC [41] LOG: background worker "logical replication launcher" (PID 47) exited with exit code 1 sogo6-postgres | 2026-07-27 16:49:06.152 UTC [42] LOG: shutting down sogo6-postgres | 2026-07-27 16:49:06.156 UTC [42] LOG: checkpoint starting: shutdown immediate sogo6-postgres | 2026-07-27 16:49:06.326 UTC [42] LOG: checkpoint complete: wrote 922 buffers (5.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.051 s, sync=0.104 s, total=0.174 s; sync files=301, longest=0.014 s, average=0.001 s; distance=4249 kB, estimate=4249 kB sogo6-postgres | 2026-07-27 16:49:06.344 UTC [41] LOG: database system is shut down sogo6-postgres | done sogo6-postgres | server stopped sogo6-postgres | sogo6-postgres | PostgreSQL init process complete; ready for start up. sogo6-postgres | sogo6-postgres | 2026-07-27 16:49:06.507 UTC [1] LOG: starting PostgreSQL 15.18 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit sogo6-postgres | 2026-07-27 16:49:06.507 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 sogo6-postgres | 2026-07-27 16:49:06.507 UTC [1] LOG: listening on IPv6 address "::", port 5432 sogo6-postgres | 2026-07-27 16:49:06.527 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" sogo6-postgres | 2026-07-27 16:49:06.553 UTC [57] LOG: database system was shut down at 2026-07-27 16:49:06 UTC sogo6-postgres | 2026-07-27 16:49:06.595 UTC [1] LOG: database system is ready to accept connections sogo6-postgres | 2026-07-27 16:49:14.827 UTC [67] FATAL: database "stalwart" does not exist sogo6-ldap | First start - initializing LDAP database... sogo6-stalwart | ⚠️ Startup failed: Failed to create tables: PostgreSQL error (store.postgresql-error): reason = Error occurred while creating a new object: db error sogo6-ldap | modifying entry "olcDatabase={1}mdb,cn=config" sogo6-ldap | sogo6-ldap | adding new entry "dc=example,dc=org" sogo6-ldap | sogo6-ldap | Loading seed LDIF: /ldif-seed/00-init.ldif sogo6-ldap | adding new entry "ou=users,dc=example,dc=org" sogo6-ldap | sogo6-redis | 1:C 27 Jul 2026 16:49:03.681 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo sogo6-redis | 1:C 27 Jul 2026 16:49:03.682 * Redis version=7.4.10, bits=64, commit=00000000, modified=0, pid=1, just started sogo6-redis | 1:C 27 Jul 2026 16:49:03.682 * Configuration loaded sogo6-redis | 1:M 27 Jul 2026 16:49:03.682 * Increased maximum number of open files to 10032 (it was originally set to 1024). sogo6-redis | 1:M 27 Jul 2026 16:49:03.682 * monotonic clock: POSIX clock_gettime sogo6-redis | 1:M 27 Jul 2026 16:49:03.683 * Running mode=standalone, port=6379. sogo6-redis | 1:M 27 Jul 2026 16:49:03.684 * Server initialized sogo6-redis | 1:M 27 Jul 2026 16:49:03.684 * Ready to accept connections tcp sogo6-smtp | MailDev API running at http://localhost:1080 sogo6-smtp | sogo6-smtp | MailDev sogo6-smtp | Version: 3.0.0-rc.1 sogo6-smtp | SMTP Server sogo6-smtp | Address: :: sogo6-ldap | adding new entry "[email protected] ,ou=users,dc=example,dc=org" sogo6-ldap | sogo6-ldap | adding new entry "[email protected] ,ou=users,dc=example,dc=org" sogo6-ldap | sogo6-smtp | Port: 25 sogo6-smtp | Web Interface sogo6-ldap | adding new entry "[email protected] ,ou=users,dc=example,dc=org" sogo6-ldap | sogo6-ldap | LDAP initialization complete sogo6-ldap | 6a678c01.302d386e 0x7f5d6b5ec200 @(#) $OpenLDAP: slapd 2.5.13+dfsg-5 (Feb 8 2023 01:56:12) $ sogo6-ldap | Debian OpenLDAP Maintainers < [email protected]> sogo6-ldap | 6a678c01.30df8641 0x7f5d6b5ec200 slapd starting sogo6-ldap | 6a678c04.2c7ec836 0x7f5d69dfe6c0 conn=1000 fd=12 ACCEPT from IP=[::1]:35820 (IP=[::]:389) sogo6-ldap | 6a678c04.2c85240d 0x7f5d69dfe6c0 conn=1000 op=0 BIND dn="cn=admin,dc=example,dc=org" method=128 sogo6-ldap | 6a678c04.2c86aa96 0x7f5d69dfe6c0 conn=1000 op=0 BIND dn="cn=admin,dc=example,dc=org" mech=SIMPLE bind_ssf=0 ssf=0 sogo6-ldap | 6a678c04.2c8a5ed6 0x7f5d69dfe6c0 conn=1000 op=0 RESULT tag=97 err=0 qtime=0.000193 etime=0.000594 text= sogo6-ldap | 6a678c04.2c931571 0x7f5d69dfe6c0 conn=1000 op=1 SRCH base="dc=example,dc=org" scope=0 deref=0 filter="(objectClass=*)" sogo6-ldap | 6a678c04.2c963c24 0x7f5d69dfe6c0 conn=1000 op=1 SEARCH RESULT tag=101 err=0 qtime=0.000125 etime=0.000355 nentries=1 text= sogo6-ldap | 6a678c04.2cb90f85 0x7f5d69dfe6c0 conn=1000 op=2 UNBIND sogo6-ldap | 6a678c04.2cbb975e 0x7f5d69dfe6c0 conn=1000 fd=12 closed sogo6-smtp | URL: http://localhost:1080/ sogo6-smtp | Press Ctrl+C to stop sogo6-smtp | sogo6-ldap | 6a678c22.3310ff15 0x7f5d69dfe6c0 conn=1001 fd=12 ACCEPT from IP=[::1]:56310 (IP=[::]:389) sogo6-ldap | 6a678c22.331d54e2 0x7f5d69dfe6c0 conn=1001 op=0 BIND dn="cn=admin,dc=example,dc=org" method=128 sogo6-ldap | 6a678c22.331e40e9 0x7f5d69dfe6c0 conn=1001 op=0 BIND dn="cn=admin,dc=example,dc=org" mech=SIMPLE bind_ssf=0 ssf=0 sogo6-ldap | 6a678c22.331f94c3 0x7f5d69dfe6c0 conn=1001 op=0 RESULT tag=97 err=0 qtime=0.000015 etime=0.000417 text= sogo6-ldap | 6a678c22.3323b0ff 0x7f5d63fff6c0 conn=1001 op=1 SRCH base="dc=example,dc=org" scope=0 deref=0 filter="(objectClass=*)" sogo6-ldap | 6a678c22.332659e0 0x7f5d63fff6c0 conn=1001 op=1 SEARCH RESULT tag=101 err=0 qtime=0.000011 etime=0.000204 nentries=1 text= sogo6-ldap | 6a678c22.3331e22e 0x7f5d69dfe6c0 conn=1001 op=2 UNBIND sogo6-ldap | 6a678c22.33332226 0x7f5d69dfe6c0 conn=1001 fd=12 closed sogo6-ldap | 6a678c41.00be29e6 0x7f5d63fff6c0 conn=1002 fd=12 ACCEPT from IP=[::1]:35002 (IP=[::]:389) sogo6-ldap | 6a678c41.00c73133 0x7f5d69dfe6c0 conn=1002 op=0 BIND dn="cn=admin,dc=example,dc=org" method=128 sogo6-ldap | 6a678c41.00caaec7 0x7f5d69dfe6c0 conn=1002 op=0 BIND dn="cn=admin,dc=example,dc=org" mech=SIMPLE bind_ssf=0 ssf=0 sogo6-ldap | 6a678c41.00cc1922 0x7f5d69dfe6c0 conn=1002 op=0 RESULT tag=97 err=0 qtime=0.000034 etime=0.000424 text= sogo6-ldap | 6a678c41.00d0d10d 0x7f5d63fff6c0 conn=1002 op=1 SRCH base="dc=example,dc=org" scope=0 deref=0 filter="(objectClass=*)" sogo6-ldap | 6a678c41.00d4afb0 0x7f5d63fff6c0 conn=1002 op=1 SEARCH RESULT tag=101 err=0 qtime=0.000009 etime=0.000287 nentries=1 text= sogo6-ldap | 6a678c41.00d65abc 0x7f5d69dfe6c0 conn=1002 op=2 UNBIND sogo6-ldap | 6a678c41.00d6f2bd 0x7f5d69dfe6c0 conn=1002 fd=12 closed ^C root@eu:/opt/sogo6-stalwart-openldap-dockerized# docker compose --profile db-mariadb down -v [+] down 14/14 ✔ Container sogo6-nginx Removed 0.0s ✔ Container sogo6-smtp Removed 0.7s ✔ Container sogo6-ui Removed 0.0s ✔ Container sogo6-server Removed 0.0s ✔ Container sogo6-ldap Removed 0.7s ✔ Container sogo6-stalwart Removed 0.0s ✔ Container sogo6-redis Removed 0.9s ✔ Container sogo6-postgres Removed 1.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-postgres-data Removed 0.1s ✔ Network sogo6-stalwart-openldap-dockerized_sogo6-net Removed 0.3s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-ldap-data Removed 0.1s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-ldap-config Removed 0.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-stalwart-data Removed 0.0s ✔ Volume sogo6-stalwart-openldap-dockerized_sogo6-redis-data Removed 0.0s root@eu:/opt/sogo6-stalwart-openldap-dockerized# root@eu:/opt/sogo6-stalwart-openldap-dockerized# `` And I believe it's now getting OT for this list. I will raise issues on Github, if you allow me :-) -- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
