[WIP] Chatmail for OpenBSD
Go to file
2023-10-15 16:07:26 +00:00
chatmaild Merge doveauth and filtermail folders 2023-10-15 16:07:26 +00:00
deploy-chatmail Merge doveauth and filtermail folders 2023-10-15 16:07:26 +00:00
online-tests
scripts Merge doveauth and filtermail folders 2023-10-15 16:07:26 +00:00
.gitignore
deploy.py Merge doveauth and filtermail into chatmaild 2023-10-15 15:57:36 +00:00
plan.txt updated plan after joint nami,alex,holger session with adb around 2023-10-15 17:42:13 +02:00
README.md doveauth: switch from lua authentication to dict authentication 2023-10-15 01:13:13 +00:00

Chat Mail server configuration

This package deploys Postfix and Dovecot servers, including OpenDKIM for DKIM signing.

Postfix uses Dovecot for authentication as described in https://www.postfix.org/SASL_README.html#server_dovecot

Getting started

prepare:

pip install -e chatmail-infra

then run with pyinfra command line tool:

CHATMAIL_DOMAIN=c1.testrun.org pyinfra --ssh-user root c1.testrun.org deploy.py

Structure (wip)


# package doveauth tool and deploy chatmail server to a envvar-specified ssh-reachable host 
deploy.py 

# chatmail pyinfra deploy package 
chatmail-pyinfra 
    pyproject.toml
    chatmail/__init__ ...

# doveauth tool used by dovecot's auth mechanism on the host system 
doveauth
    README.md
    pyproject.toml
    doveauth.py
    test_doveauth.py

# lmtp server to block (outgoing) unencrypted messages 
filtermail 
    README.md
    pyproject.toml
    .... 

# online tests (after deploy)

online-tests  # runnable via pytest 



# scripts for setup/development/deployment 

scripts/
    init.sh  # create venv/other perequires
    deploy.sh  # run pyinfra based deploy of everything
    test.sh # run all local and online tests 

Dovecot/Postfix configuration

Ports

Postfix listens on ports 25 (smtp) and 587 (submission) and 465 (submissions). Dovecot listens on ports 143(imap) and 993 (imaps).

DNS

For DKIM you must add a DNS entry as in /etc/opendkim/selector.txt (where selector is the opendkim_selector configured in the chatmail inventory).