Michał Narecki - blog

chatmail

Po co uruchamiać własny przekaźnik chatmail?

Przekaźniki chatmail umożliwiają bezproblemowe wdrażanie aplikacji czatowych i botów.
Użytkownicy nie muszą mieć wcześniej założonych kont — adresy chatmail są tworzone automatycznie przy pierwszym logowaniu i zabezpieczane hasłem do dalszego użycia. Chatmail jest szyfrowany end‑to‑end oraz w spoczynku.

Uruchomienie własnego przekaźnika daje ci:

  • Pełną kontrolę nad infrastrukturą tożsamości
  • Bezpieczne zakładanie kont
  • Niezależność od scentralizowanych dostawców
  • Lekki system, który skaluje się do tysięcy użytkowników przy minimalnych wymaganiach sprzętowych

Ten przewodnik prowadzi krok po kroku przez wdrożenie w pełni funkcjonalnego przekaźnika chatmail przy użyciu oficjalnych, zautomatyzowanych skryptów instalacyjnych.

Ważna uwaga o kompatybilności ⚠️

To wdrożenie wymaga Debiana 12 na serwerze.

  • Debian 13 nie jest obsługiwany
  • Inne dystrybucje Linuksa mogą działać, ale wymagają nieudokumentowanych zmian

Jeśli używasz Debiana 13 lub innego systemu operacyjnego, spodziewaj się dodatkowych kroków, które nie są opisane w tej dokumentacji.

Przegląd architektury

Potrzebujesz dwóch maszyn:

1. Serwer wdrożeniowy

To będzie twój przekaźnik chatmail.

  • Debian 12
  • 1 GB RAM
  • 1 CPU
  • ~10 GB miejsca na dysku
  • Publiczny IPv4 (IPv6 zdecydowanie zalecany)
  • Otwarte porty: 22, 25, 80, 443, 143, 465, 587, 993, 3478

2. Komputer lokalny

Służy do wdrażania i zarządzania przekaźnikiem.

  • Linux lub system typu Unix
  • W tym przewodniku używam Ubuntu 24.04

Proces wdrożenia uruchamiany jest z Twojego komputera lokalnego, a nie bezpośrednio na serwerze.

Wymagania na komputerze lokalnym

Zainstaluj niezbędne pakiety:

sudo apt install python3-dev
sudo apt install python3.12-venv
sudo apt install gcc

Pakiety te są potrzebne do utworzenia środowiska wirtualnego Pythona używanego przez skrypty wdrożeniowe.

Przygotowanie serwera (Debian 12)

Jeśli uruchamiasz środowisko w maszynie wirtualnej (VM), rozważ instalację agenta qemu‑guest‑agent:

apt install qemu-guest-agent

Włączenie logowania roota przez SSH

Edytuj konfigurację SSH:

nano /etc/ssh/sshd_config

Znajdź i ustaw:

PermitRootLogin yes

Zrestartuj usługę SSH:

systemctl restart ssh

Konfiguracja DNS (przed wdrożeniem)

W tym przewodniku używamy następującej nazwy domenowej:

chat.example.org

Zastąp ją własną domeną, a następnie utwórz poniższe rekordy DNS (TTL: 3600s). Pamiętaj o wpisaniu poprawnych adresów IP.

chat.example.org.          3600 IN A     198.51.100.5
chat.example.org.          3600 IN AAAA  2001:db8::5
www.chat.example.org.      3600 IN CNAME chat.example.org.
mta-sts.chat.example.org.  3600 IN CNAME chat.example.org.

Rekordy te muszą istnieć przed uruchomieniem procesu wdrożeniowego.

Klonowanie repozytorium chatmail

Na komputerze lokalnym wykonaj:

git clone https://github.com/chatmail/relay.git
cd relay
scripts/initenv.sh

To przygotuje środowisko wirtualne Pythona.

Podstawowa konfiguracja chatmail

Utwórz plik konfiguracyjny chatmail:

scripts/cmdeploy init chat.example.org

Polecenie wygeneruje plik chatmail.ini dopasowany do Twojej domeny.

Konfiguracja klucza SSH (obowiązkowa)

Proces wdrożeniowy nie może pytać o hasła, więc wymagana jest autoryzacja kluczem SSH.

1. Wygeneruj dedykowany klucz

ssh-keygen -t ed25519 -C "chatmail-deploy" -f ~/.ssh/id_ed25519_chatmail

2. Uruchom agenta SSH i załaduj klucz

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_chatmail

3. Skopiuj klucz na serwer

ssh-copy-id -i ~/.ssh/id_ed25519_chatmail root@chat.example.org

4. Zweryfikuj dostęp

ssh root@chat.example.org

Powinieneś połączyć się bez podawania hasła.

Uruchomienie wdrożenia

Z komputera lokalnego wykonaj:

scripts/cmdeploy run

Skrypt zainstaluje i skonfiguruje:

  • Usługi pocztowe
  • Certyfikaty TLS
  • Logikę chatmail
  • Wymagane zależności

Poczekaj, aż skrypt zakończy działanie.

Dokończenie konfiguracji DNS

Po wdrożeniu sprawdź, których rekordów DNS nadal brakuje:

scripts/cmdeploy dns

Dodaj brakujące rekordy u swojego dostawcy DNS. Gdy DNS się rozpropaguje, zweryfikuj stan systemu:

scripts/cmdeploy status

Testowanie i benchmarki

Uruchom test funkcjonalny:

scripts/cmdeploy test

Następnie zmierz wydajność:

scripts/cmdeploy bench

Testy potwierdzają, że uwierzytelnianie, przepływ poczty i wydajność systemu działają prawidłowo.

Gotowe!

Twój przekaźnik chatmail jest już uruchomiony i gotowy do użycia.

Możesz teraz:

  • Udostępnić swoją domenę chatmail
  • Natychmiastowo rejestrować użytkowników
  • Wspierać aplikacje czatowe i boty bez wstępnie tworzonych kont
  • Prowadzić usługę komunikacyjną szanującą prywatność

Oficjalną dokumentację (po angielsku) znajdziesz pod tym linkiem:
https://chatmail.at/doc/relay/getting_started.html

Jeśli tworzysz systemy komunikacji, które stawiają na pierwszym miejscu prywatność, uruchomienie własnego przekaźnika chatmail stanowi solidny fundament.


Opracowanie na podstawie: https://felipebaez.com/how-to-deploy-a-chatmail-server/

#tutorial #chatmail #DeltaChat

Skomentuj na fediwersum: @michal@101010.pl