Files
bongo/docs/directory-layout.md
T
Mario Fetka 5897512fd9 Modernize Bongo protocols and administration
Complete the current IMAP, POP3, SMTP and proxy protocol work; add the validated setup and administration UI, packaging examples, tests, and maintained roadmap/documentation for the 0.7 development line.
2026-07-18 04:26:00 +02:00

2.9 KiB

Directory layout

Bongo follows FHS-style paths for distribution installs. Configure a package build with CMAKE_INSTALL_PREFIX=/usr; CMake then deliberately keeps host configuration under /etc, not /usr/etc.

Distribution installation

Path Contents
/etc/bongo Local bootstrap, Web, and administrator-managed configuration.
/etc/bongo/bongo.conf Authentication and LDAP bootstrap policy.
/etc/bongo/bongo-web.json Web listener, proxy, session, and Web database policy.
/var/lib/bongo Persistent Bongo state.
/var/lib/bongo/users Per-user stores and message documents.
/var/lib/bongo/system System Store and Store configuration documents.
/var/lib/bongo/spool Queue spool.
/var/lib/bongo/dbf Account database and locally managed cryptographic material.
/var/lib/bongo/web Web session, task, and identity databases.
/var/lib/bongo/work Runtime work area.
/var/lib/bongo/cache Regenerable caches.
/usr/sbin Server agents and administration programs.
/usr/libexec/bongo Private administration helpers.
/usr/share/bongo Web assets, providers, zone snapshot, templates, and examples.
/usr/share/man Manual pages.
/usr/lib/systemd/system systemd service unit.
/usr/lib/tmpfiles.d Runtime-directory declaration.
/usr/lib/sysusers.d Distribution-neutral service account declaration.
/etc/fail2ban Bongo filter and disabled jail template, when enabled at build time.

Distribution packaging may override the systemd, tmpfiles, sysusers, and Fail2ban destinations with the documented CMake cache variables.

Other prefixes

A self-contained install with CMAKE_INSTALL_PREFIX=/usr/local uses /usr/local/etc/bongo. Executables, data, and libraries follow the selected prefix, while persistent state remains /var/lib/bongo unless BONGO_STATE_DIR is explicitly changed.

Useful configure-time overrides include:

cmake -S . -B build \
    -DCMAKE_INSTALL_PREFIX=/opt/bongo \
    -DSYSCONF_INSTALL_DIR=/etc \
    -DBONGO_CONFIG_DIR=/etc/bongo \
    -DBONGO_STATE_DIR=/srv/bongo

Absolute paths are compiled into agents and generated service/configuration files. Do not move an installed state tree without reconfiguring and rebuilding or supplying matching package overrides.

Runtime directories

Packages should not ship a populated /var/run tree. systemd-tmpfiles or the service script creates volatile directories at boot. Persistent empty directories below /var/lib/bongo are created during setup or package installation with the appropriate owner.

The default TLS certificate and key are /var/lib/bongo/dbf/osslcert.pem and /var/lib/bongo/dbf/osslpriv.pem. ACME deployments may use paths managed by their deploy hook instead. DKIM and SRS secrets are configuration-dependent and must be included in backup and permission reviews.