<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>chatmail &amp;mdash; Michał Narecki - blog</title>
    <link>https://blog.narecki.name/tag:chatmail</link>
    <description>czyli moje przemyślenia na tematy około-technologiczne</description>
    <pubDate>Thu, 30 Apr 2026 12:23:22 +0000</pubDate>
    <item>
      <title>Jak wdrożyć serwer chatmail</title>
      <link>https://blog.narecki.name/jak-wdrozyc-serwer-chatmail</link>
      <description>&lt;![CDATA[Po co uruchamiać własny przekaźnik chatmail?&#xA;&#xA;Przekaźniki chatmail umożliwiają bezproblemowe wdrażanie aplikacji czatowych i botów.  &#xA;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.&#xA;&#xA;Uruchomienie własnego przekaźnika daje ci:&#xA;&#xA;Pełną kontrolę nad infrastrukturą tożsamości&#xA;Bezpieczne zakładanie kont&#xA;Niezależność od scentralizowanych dostawców&#xA;Lekki system, który skaluje się do tysięcy użytkowników przy minimalnych wymaganiach sprzętowych&#xA;&#xA;Ten przewodnik prowadzi krok po kroku przez wdrożenie w pełni funkcjonalnego przekaźnika chatmail przy użyciu oficjalnych, zautomatyzowanych skryptów instalacyjnych.&#xA;&#xA;Ważna uwaga o kompatybilności ⚠️&#xA;&#xA;To wdrożenie wymaga Debiana 12 na serwerze.&#xA;&#xA;Debian 13 nie jest obsługiwany&#xA;Inne dystrybucje Linuksa mogą działać, ale wymagają nieudokumentowanych zmian&#xA;&#xA;Jeśli używasz Debiana 13 lub innego systemu operacyjnego, spodziewaj się dodatkowych kroków, które nie są opisane w tej dokumentacji.&#xA;&#xA;Przegląd architektury&#xA;&#xA;Potrzebujesz dwóch maszyn:&#xA;&#xA;1\. Serwer wdrożeniowy&#xA;&#xA;To będzie twój przekaźnik chatmail.&#xA;&#xA;Debian 12&#xA;1 GB RAM&#xA;1 CPU&#xA;\~10 GB miejsca na dysku&#xA;Publiczny IPv4 (IPv6 zdecydowanie zalecany)&#xA;Otwarte porty: 22, 25, 80, 443, 143, 465, 587, 993, 3478&#xA;&#xA;2\. Komputer lokalny&#xA;&#xA;Służy do wdrażania i zarządzania przekaźnikiem.&#xA;&#xA;Linux lub system typu Unix&#xA;W tym przewodniku używam Ubuntu 24.04&#xA;&#xA;  Proces wdrożenia uruchamiany jest z Twojego komputera lokalnego, a nie bezpośrednio na serwerze.&#xA;&#xA;Wymagania na komputerze lokalnym&#xA;&#xA;Zainstaluj niezbędne pakiety:&#xA;&#xA;sudo apt install python3-dev&#xA;sudo apt install python3.12-venv&#xA;sudo apt install gcc&#xA;Pakiety te są potrzebne do utworzenia środowiska wirtualnego Pythona używanego przez skrypty wdrożeniowe.&#xA;&#xA;Przygotowanie serwera (Debian 12)&#xA;&#xA;Jeśli uruchamiasz środowisko w maszynie wirtualnej (VM), rozważ instalację agenta qemu‑guest‑agent:&#xA;&#xA;apt install qemu-guest-agent&#xA;&#xA;Włączenie logowania roota przez SSH&#xA;&#xA;Edytuj konfigurację SSH:&#xA;&#xA;nano /etc/ssh/sshdconfig&#xA;&#xA;Znajdź i ustaw:&#xA;&#xA;PermitRootLogin yes&#xA;&#xA;Zrestartuj usługę SSH:&#xA;&#xA;systemctl restart ssh&#xA;&#xA;Konfiguracja DNS (przed wdrożeniem)&#xA;&#xA;W tym przewodniku używamy następującej nazwy domenowej:&#xA;&#xA;chat.example.org&#xA;&#xA;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.&#xA;&#xA;chat.example.org.          3600 IN A     198.51.100.5&#xA;chat.example.org.          3600 IN AAAA  2001:db8::5&#xA;www.chat.example.org.      3600 IN CNAME chat.example.org.&#xA;mta-sts.chat.example.org.  3600 IN CNAME chat.example.org.&#xA;&#xA;Rekordy te muszą istnieć przed uruchomieniem procesu wdrożeniowego.&#xA;&#xA;Klonowanie repozytorium chatmail&#xA;&#xA;Na komputerze lokalnym wykonaj:&#xA;&#xA;git clone https://github.com/chatmail/relay.git&#xA;cd relay&#xA;scripts/initenv.sh&#xA;&#xA;To przygotuje środowisko wirtualne Pythona.&#xA;&#xA;Podstawowa konfiguracja chatmail&#xA;&#xA;Utwórz plik konfiguracyjny chatmail:&#xA;&#xA;scripts/cmdeploy init chat.example.org&#xA;&#xA;Polecenie wygeneruje plik chatmail.ini dopasowany do Twojej domeny.&#xA;&#xA;Konfiguracja klucza SSH (obowiązkowa)&#xA;&#xA;Proces wdrożeniowy nie może pytać o hasła, więc wymagana jest autoryzacja kluczem SSH.&#xA;&#xA;1\. Wygeneruj dedykowany klucz&#xA;&#xA;ssh-keygen -t ed25519 -C &#34;chatmail-deploy&#34; -f ~/.ssh/ided25519chatmail&#xA;&#xA;2\. Uruchom agenta SSH i załaduj klucz&#xA;&#xA;eval &#34;$(ssh-agent -s)&#34;&#xA;ssh-add ~/.ssh/ided25519chatmail&#xA;&#xA;3\. Skopiuj klucz na serwer&#xA;&#xA;ssh-copy-id -i ~/.ssh/ided25519chatmail root@chat.example.org&#xA;&#xA;4\. Zweryfikuj dostęp&#xA;&#xA;ssh root@chat.example.org&#xA;&#xA;Powinieneś połączyć się bez podawania hasła.&#xA;&#xA;Uruchomienie wdrożenia&#xA;&#xA;Z komputera lokalnego wykonaj:&#xA;&#xA;scripts/cmdeploy run&#xA;&#xA;Skrypt zainstaluje i skonfiguruje:&#xA;&#xA;Usługi pocztowe&#xA;Certyfikaty TLS&#xA;Logikę chatmail&#xA;Wymagane zależności&#xA;&#xA;Poczekaj, aż skrypt zakończy działanie.&#xA;&#xA;Dokończenie konfiguracji DNS&#xA;&#xA;Po wdrożeniu sprawdź, których rekordów DNS nadal brakuje:&#xA;&#xA;scripts/cmdeploy dns&#xA;&#xA;Dodaj brakujące rekordy u swojego dostawcy DNS. Gdy DNS się rozpropaguje, zweryfikuj stan systemu:&#xA;&#xA;scripts/cmdeploy status&#xA;&#xA;Testowanie i benchmarki&#xA;&#xA;Uruchom test funkcjonalny:&#xA;&#xA;scripts/cmdeploy test&#xA;&#xA;Następnie zmierz wydajność:&#xA;&#xA;scripts/cmdeploy bench&#xA;&#xA;Testy potwierdzają, że uwierzytelnianie, przepływ poczty i wydajność systemu działają prawidłowo.&#xA;&#xA;Gotowe!&#xA;&#xA;Twój przekaźnik chatmail jest już uruchomiony i gotowy do użycia.&#xA;&#xA;Możesz teraz:&#xA;&#xA;Udostępnić swoją domenę chatmail&#xA;Natychmiastowo rejestrować użytkowników&#xA;Wspierać aplikacje czatowe i boty bez wstępnie tworzonych kont&#xA;Prowadzić usługę komunikacyjną szanującą prywatność&#xA;&#xA;Oficjalną dokumentację (po angielsku) znajdziesz pod tym linkiem:  &#xA;https://chatmail.at/doc/relay/gettingstarted.html&#xA;&#xA;Jeśli tworzysz systemy komunikacji, które stawiają na pierwszym miejscu prywatność, uruchomienie własnego przekaźnika chatmail stanowi solidny fundament.&#xA;&#xA;---&#xA;Opracowanie na podstawie:&#xA;https://felipebaez.com/how-to-deploy-a-chatmail-server/&#xA;&#xA;#tutorial #chatmail #DeltaChat&#xA;&#xA;Skomentuj na fediwersum: @michal@101010.pl]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="po-co-uruchamiać-własny-przekaźnik-chatmail">Po co uruchamiać własny przekaźnik chatmail?</h2>

<p>Przekaźniki chatmail umożliwiają <strong>bezproblemowe wdrażanie</strong> aplikacji czatowych i botów.<br>
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.</p>

<p>Uruchomienie własnego przekaźnika daje ci:</p>
<ul><li>Pełną kontrolę nad infrastrukturą tożsamości</li>
<li>Bezpieczne zakładanie kont</li>
<li>Niezależność od scentralizowanych dostawców</li>
<li>Lekki system, który skaluje się do tysięcy użytkowników przy minimalnych wymaganiach sprzętowych</li></ul>

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

<h2 id="ważna-uwaga-o-kompatybilności">Ważna uwaga o kompatybilności ⚠️</h2>

<p>To wdrożenie <strong>wymaga Debiana 12</strong> na serwerze.</p>
<ul><li>Debian 13 <strong>nie jest obsługiwany</strong></li>
<li>Inne dystrybucje Linuksa mogą działać, ale wymagają nieudokumentowanych zmian</li></ul>

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

<h2 id="przegląd-architektury">Przegląd architektury</h2>

<p>Potrzebujesz <strong>dwóch maszyn</strong>:</p>

<h3 id="1-serwer-wdrożeniowy">1. Serwer wdrożeniowy</h3>

<p>To będzie twój przekaźnik chatmail.</p>
<ul><li>Debian 12</li>
<li>1 GB RAM</li>
<li>1 CPU</li>
<li>~10 GB miejsca na dysku</li>
<li>Publiczny IPv4 (IPv6 zdecydowanie zalecany)</li>
<li>Otwarte porty: <code>22, 25, 80, 443, 143, 465, 587, 993, 3478</code></li></ul>

<h3 id="2-komputer-lokalny">2. Komputer lokalny</h3>

<p>Służy do wdrażania i zarządzania przekaźnikiem.</p>
<ul><li>Linux lub system typu Unix</li>
<li>W tym przewodniku używam Ubuntu 24.04</li></ul>

<blockquote><p>Proces wdrożenia uruchamiany jest <strong>z Twojego komputera lokalnego</strong>, a nie bezpośrednio na serwerze.</p></blockquote>

<h2 id="wymagania-na-komputerze-lokalnym">Wymagania na komputerze lokalnym</h2>

<p>Zainstaluj niezbędne pakiety:</p>

<pre><code class="language-bash">sudo apt install python3-dev
sudo apt install python3.12-venv
sudo apt install gcc
</code></pre>

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

<h2 id="przygotowanie-serwera-debian-12">Przygotowanie serwera (Debian 12)</h2>

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

<pre><code class="language-bash">apt install qemu-guest-agent
</code></pre>

<h3 id="włączenie-logowania-roota-przez-ssh">Włączenie logowania roota przez SSH</h3>

<p>Edytuj konfigurację SSH:</p>

<pre><code class="language-bash">nano /etc/ssh/sshd_config
</code></pre>

<p>Znajdź i ustaw:</p>

<pre><code>PermitRootLogin yes
</code></pre>

<p>Zrestartuj usługę SSH:</p>

<pre><code class="language-bash">systemctl restart ssh
</code></pre>

<h2 id="konfiguracja-dns-przed-wdrożeniem">Konfiguracja DNS (przed wdrożeniem)</h2>

<p>W tym przewodniku używamy następującej nazwy domenowej:</p>

<p><code>chat.example.org</code></p>

<p>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.</p>

<pre><code>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.
</code></pre>

<p>Rekordy te <strong>muszą istnieć przed</strong> uruchomieniem procesu wdrożeniowego.</p>

<h2 id="klonowanie-repozytorium-chatmail">Klonowanie repozytorium chatmail</h2>

<p>Na <strong>komputerze lokalnym</strong> wykonaj:</p>

<pre><code class="language-bash">git clone https://github.com/chatmail/relay.git
cd relay
scripts/initenv.sh
</code></pre>

<p>To przygotuje środowisko wirtualne Pythona.</p>

<h2 id="podstawowa-konfiguracja-chatmail">Podstawowa konfiguracja chatmail</h2>

<p>Utwórz plik konfiguracyjny chatmail:</p>

<pre><code class="language-bash">scripts/cmdeploy init chat.example.org
</code></pre>

<p>Polecenie wygeneruje plik <code>chatmail.ini</code> dopasowany do Twojej domeny.</p>

<h2 id="konfiguracja-klucza-ssh-obowiązkowa">Konfiguracja klucza SSH (obowiązkowa)</h2>

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

<h3 id="1-wygeneruj-dedykowany-klucz">1. Wygeneruj dedykowany klucz</h3>

<pre><code class="language-bash">ssh-keygen -t ed25519 -C &#34;chatmail-deploy&#34; -f ~/.ssh/id_ed25519_chatmail
</code></pre>

<h3 id="2-uruchom-agenta-ssh-i-załaduj-klucz">2. Uruchom agenta SSH i załaduj klucz</h3>

<pre><code class="language-bash">eval &#34;$(ssh-agent -s)&#34;
ssh-add ~/.ssh/id_ed25519_chatmail
</code></pre>

<h3 id="3-skopiuj-klucz-na-serwer">3. Skopiuj klucz na serwer</h3>

<pre><code class="language-bash">ssh-copy-id -i ~/.ssh/id_ed25519_chatmail root@chat.example.org
</code></pre>

<h3 id="4-zweryfikuj-dostęp">4. Zweryfikuj dostęp</h3>

<pre><code class="language-bash">ssh root@chat.example.org
</code></pre>

<p>Powinieneś połączyć się <strong>bez podawania hasła</strong>.</p>

<h2 id="uruchomienie-wdrożenia">Uruchomienie wdrożenia</h2>

<p>Z <strong>komputera lokalnego</strong> wykonaj:</p>

<pre><code class="language-bash">scripts/cmdeploy run
</code></pre>

<p>Skrypt zainstaluje i skonfiguruje:</p>
<ul><li>Usługi pocztowe</li>
<li>Certyfikaty TLS</li>
<li>Logikę chatmail</li>
<li>Wymagane zależności</li></ul>

<p>Poczekaj, aż skrypt zakończy działanie.</p>

<h2 id="dokończenie-konfiguracji-dns">Dokończenie konfiguracji DNS</h2>

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

<pre><code class="language-bash">scripts/cmdeploy dns
</code></pre>

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

<pre><code class="language-bash">scripts/cmdeploy status
</code></pre>

<h2 id="testowanie-i-benchmarki">Testowanie i benchmarki</h2>

<p>Uruchom test funkcjonalny:</p>

<pre><code class="language-bash">scripts/cmdeploy test
</code></pre>

<p>Następnie zmierz wydajność:</p>

<pre><code class="language-bash">scripts/cmdeploy bench
</code></pre>

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

<h2 id="gotowe">Gotowe!</h2>

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

<p>Możesz teraz:</p>
<ul><li>Udostępnić swoją domenę chatmail</li>
<li>Natychmiastowo rejestrować użytkowników</li>
<li>Wspierać aplikacje czatowe i boty bez wstępnie tworzonych kont</li>
<li>Prowadzić usługę komunikacyjną szanującą prywatność</li></ul>

<p>Oficjalną dokumentację (po angielsku) znajdziesz pod tym linkiem:<br>
<a href="https://chatmail.at/doc/relay/getting_started.html">https://chatmail.at/doc/relay/getting_started.html</a></p>

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

<hr>

<p>Opracowanie na podstawie:
<a href="https://felipebaez.com/how-to-deploy-a-chatmail-server/">https://felipebaez.com/how-to-deploy-a-chatmail-server/</a></p>

<p><a href="https://blog.narecki.name/tag:tutorial" class="hashtag"><span>#</span><span class="p-category">tutorial</span></a> <a href="https://blog.narecki.name/tag:chatmail" class="hashtag"><span>#</span><span class="p-category">chatmail</span></a> <a href="https://blog.narecki.name/tag:DeltaChat" class="hashtag"><span>#</span><span class="p-category">DeltaChat</span></a></p>

<p>Skomentuj na fediwersum: <a href="https://blog.narecki.name/@/michal@101010.pl" class="u-url mention">@<span>michal@101010.pl</span></a></p>
]]></content:encoded>
      <guid>https://blog.narecki.name/jak-wdrozyc-serwer-chatmail</guid>
      <pubDate>Tue, 17 Feb 2026 15:49:16 +0000</pubDate>
    </item>
  </channel>
</rss>