Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 3.01 KB

README.md

File metadata and controls

80 lines (64 loc) · 3.01 KB

Cyrus IMAP + OpenLDAP + Postfix server

A Cyrus IMAP server based on OpenSUSE Leap that uses OpenLDAP for authentication and Postfix for SMTP.

The scripts use buildah to create the container images. The containers are deployed via podman using Kubernetes pod YAML.

The Cyrus IMAP server is built from sources. The ./configure invocation is in cyrus-build.sh.

./configure \
--prefix=/usr \
--libexecdir=/usr/lib/cyrus-imapd \
--enable-autocreate \
--enable-idled \
--with-ldap \
--with-sqlite \
--without-snmp

Everything depends on base.sh. ldap.sh and postfix.sh have no other dependencies. cyrus-build.sh depends on base-build.sh. cyrus.sh copies the cyrus-imapd installation from cyrus-build.

The configuration is not present, however, the configuration files and directories are itemized in the YAML. 😉

Create the images

sh base.sh
sh base-build.sh
sh cyrus-build.sh
sh cyrus.sh
sh ldap.sh
sh postfix.sh

Create the configuration

Me: 🤷

You: 🤔☝️🧑‍💻

Run the pod

podman kube play pod.yaml

Verify functioning

podman pod top email

Note the Cyrus IMAP and Postfix master processes and OpenLDAP slapd:

USER        PID         PPID        %CPU        ELAPSED           TTY         TIME        COMMAND
0           1           0           0.000       16m57.033261829s  ?           0s          /catatonit -P
root        1           0           0.000       16m57.034799388s  ?           0s          /usr/lib/postfix/bin//master -i
postfix     76          1           0.000       16m56.035001403s  ?           0s          pickup -l -t unix -u
postfix     77          1           0.000       16m56.035087065s  ?           0s          qmgr -l -t unix -u
postfix     80          1           0.000       15m2.035153747s   ?           0s          tlsmgr -l -t unix -u
ldap        1           0           0.000       16m57.038722838s  ?           0s          /usr/sbin/slapd -d 8 -h ldap:/// ldaps:/// -g ldap -u ldap
cyrus       1           0           0.000       16m57.040285888s  ?           0s          /usr/lib/cyrus-imapd/master -D
cyrus       8           1           0.000       16m57.040405861s  ?           0s          imapd
cyrus       9           1           0.000       16m57.040455312s  ?           0s          imapd -s
cyrus       10          1           0.000       16m57.040500084s  ?           0s          idled
cyrus       11          1           0.000       16m57.040558185s  ?           0s          imapd
cyrus       12          1           0.000       16m57.040619397s  ?           0s          imapd -s
cyrus       14          1           0.000       2m48.040665748s   ?           0s          imapd -s