Installazione di un relay Chatmail per DeltaChat
DeltaChat è un'app di messaggistica che usa l'infrastruttura email come trasporto. Non ha server centralizzati propri: si appoggia a qualsiasi provider IMAP/SMTP. Il progetto Chatmail nasce proprio per offrire server email ottimizzati per questo scopo: leggeri, veloci, orientati alla privacy.
In questo articolo mostro come ho installato il mio relay Chatmail su un VPS minimale, partendo da zero.
Prerequisiti e dimensionamento
Il mio setup di partenza:
- VPS con Debian 12 (al momento è l'unica distribuzione supportata, per via della versione specifica di Dovecot richiesta)
- 1 GB di RAM, 1 vCPU, 10 GB di disco
Le porte che devono essere aperte sul firewall:
25/tcp # SMTP
465/tcp # SMTPS
587/tcp # SMTP submission
143/tcp # IMAP
993/tcp # IMAPS
80/tcp # HTTP
443/tcp # HTTPS
8443/tcp # Chatmail web
Installazione delle dipendenze
Come prima cosa installiamo i pacchetti necessari:
apt install git python3.11-venv python3-dev python3-setuptools python3-pip rsync
Configurazione DNS iniziale
Prima di procedere, aggiungiamo le entry DNS di base. In questo esempio il dominio dedicato al relay è chatmail.example.com:
chatmail.example.com. 60 IN A $IPV4
chatmail.example.com. 60 IN AAAA $IPV6
www.chatmail.example.com. 60 IN CNAME chatmail.example.com.
mta-sts.chatmail.example.com. 60 IN CNAME chatmail.example.com.
Sostituite $IPV4 e $IPV6 con gli indirizzi del vostro VPS.
Clone del repository e inizializzazione
Cloniamo il repository ufficiale:
git clone https://github.com/chatmail/relay
Entriamo nella directory e inizializziamo l'ambiente:
cd relay
./scripts/initenv.sh
Generiamo il file di configurazione:
./scripts/cmdeploy init chatmail.example.com
Questo crea il file chatmail.ini. Le impostazioni predefinite sono già ragionevoli per un'installazione base, quindi per ora lo lasciamo così com'è.
Configurazione SSH
Una nota importante prima del deploy: lo script cmdeploy si connette al server target via SSH ed esegue l'installazione da remoto. Nel nostro caso, dato che stiamo lavorando direttamente sul server di destinazione, stabilirà una connessione SSH verso se stesso.
Generiamo quindi una chiave SSH:
ssh-keygen -t ed25519 -C "chatmail deploy key"
E la aggiungiamo all'utente root:
ssh-copy-id root@chatmail.example.com
Aggiunta delle entry DNS rimanenti
Una volta configurato tutto, lo script è in grado di dirci esattamente quali record DNS aggiungere. Basta lanciare:
./scripts/cmdeploy dns
L'output mostrerà tutte le entry necessarie (SPF, DKIM, MX e così via). Le aggiungiamo sul nostro provider DNS.
Deploy
Possiamo avviare il relay:
./scripts/cmdeploy run
A deploy completato, il relay Chatmail sarà attivo e raggiungibile. Potrete configurare DeltaChat puntando al vostro dominio e iniziare a usarlo come provider di messaggistica privato e autonomo.