chatmail сервер delta chat

Chatmail-сервер на VPS: установка и настройка Delta Chat для команды

Chatmail-сервер delta chat — это решение для компаний, которые хотят получить защищённый мессенджер с полным контролем над данными. На наших проектах мы видели, как организации сталкиваются с требованиями локализации данных и одновременно хотят избежать зависимости от облачных сервисов. Chatmail-сервер решает обе задачи: развёртывается на собственном VPS, использует стандартные почтовые протоколы и гарантирует шифрование сквозного канала. В этой статье мы разберём, как правильно развернуть и настроить chatmail-сервер для команды.

chatmail сервер delta chat

Chatmail-сервер delta chat — SMTP/IMAP-релей на базе Postfix, Dovecot и chatmaild, оптимизированный под Delta Chat. Минимальный VPS по официальной документации: Debian 12, 1 ГБ ОЗУ, 1 CPU и около 10 ГБ диска для нескольких тысяч активных адресов. Развёртывание выполняется официальным инструментом cmdeploy с локальной машины по SSH после установки пакета из репозитория chatmail/relay. Для базовой работы нужны порты 25, 80, 143, 443, 465, 587 и 993; если используются звонки через TURN, дополнительно учитывайте UDP 3478 и временные UDP-порты.

Содержание

Что такое chatmail-сервер delta chat: архитектура и отличия от SMTP/IMAP и XMPP

Chatmail-сервер delta chat — это специализированная сборка почтового релея на базе Postfix, Dovecot, Nginx и chatmaild, заточенная под обмен сообщениями клиентом Delta Chat. Снаружи это обычный SMTP/IMAP-сервер, изнутри — минимальный релей без классической веб-почты и без долгоживущего архива. Мы держали в продакшене и Snikket, и Matrix Synapse, и chatmail — каждый закрывает свою нишу, и путать их нельзя.

Ключевое отличие от классического SMTP/IMAP: chatmail-relay не работает как обычный корпоративный почтовый ящик с бесконечным архивом. В текущем шаблоне chatmail.ini обычные письма удаляются через 20 дней, крупные сообщения больше 200 КБ — через 7 дней, а аккаунты без успешного входа — через 100 дней. Это не баг и не агрессивная политика, а идеология протокола: переписка живёт на устройствах пользователей, сервер служит транспортом и временным буфером доставки.

С XMPP история ещё более жёсткая: chatmail вообще не использует XMPP. Delta Chat работает поверх стандартных почтовых протоколов IMAP и SMTP с шифрованием по схеме Autocrypt. Никакого XEP, никакой федерации в стиле Jabber, никакой совместимости с Conversations или Gajim. Если у клиента уже стоит ejabberd или Prosody, поднять рядом chatmail-сервер delta chat можно, но обмена между ними не будет — это два разных мира.

Что мы получаем взамен: end-to-end шифрование сообщений ключами Autocrypt. Клиент добавляет Autocrypt-заголовок с публичным ключом ко всем исходящим письмам, поэтому переписка может перейти в зашифрованный режим после обмена ключами и обновлять ключевую информацию при следующих сообщениях. Сервер видит только зашифрованный поток: даже администратор не может прочитать содержимое чатов клиента. Метаданные . отправитель, получатель и размер . остаются видны, как и в обычной почте, поэтому для строго анонимных сценариев chatmail не панацея.

Не делайте, как один наш клиент, который попытался федерировать chatmail-relay со своим корпоративным Exchange через MX-релей: мы получили бесконечный цикл отказов от проверки подписи и политик доставки. Chatmail-релей задуман как отдельный домен для Delta Chat, а не как маршрутизатор для смешанного корпоративного трафика; это конструктивное ограничение.

Что такое chatmail и чем он отличается от классического SMTP/IMAP и XMPP

Когда chatmail подходит команде, а когда лучше Snikket или Matrix

Мы используем простое правило при выборе самохостингового мессенджера: считаем количество пользователей, требования к каналам и наличие администратора. Chatmail-сервер delta chat подходит для малого и среднего бизнеса, но не закрывает все сценарии. У каждой альтернативы есть своё место.

Chatmail подходит, когда команда до 100 человек обменивается короткими сообщениями и файлами, видеозвонки не критичны или вынесены в отдельный Jitsi, а администратор хочет минимум инфраструктурной возни. Официальная документация указывает ориентир: Debian 12, 1 ГБ ОЗУ, один CPU и около 10 ГБ диска для нескольких тысяч активных адресов. Поэтому стоимость обычно упирается не в ресурсы сервера, а в поддержку, резервное копирование конфигурации и мониторинг. При сравнении вариантов мессенджеров chatmail-сервер delta chat выделяется низкими требованиями к ресурсам и отсутствием долгосрочного архива.

Snikket выигрывает, когда команда уже использует XMPP-клиенты или нужна федерация с другими XMPP-сервисами. Это аккуратно собранная сборка Prosody с автоматическим Let’s Encrypt и приложениями Snikket для Android и iOS. Мы разворачивали Snikket для проектной группы, которой требовалась полноценная многопользовательская комната с историей: chatmail-сервер delta chat так не работает с тредами, а Delta Chat показывает каналы как групповые письма без тредов и реакций уровня Slack.

Matrix через Synapse или Dendrite выбирают крупные команды, которым нужны треды, реакции, голосовые звонки через Element Call, мосты в Telegram и интеграции с Jira. Это самый ресурсоёмкий вариант. Обычно нужны отдельная база данных, больше памяти и отдельная политика хранения медиа. Мы держали такой стенд для команды разработки клиента, и операционная нагрузка была заметно выше, чем у chatmail-сервер delta chat для команд того же размера.

Итог простой: chatmail-сервер delta chat подходит небольшим командам, где важны простота и приватность; Snikket выбирают при ставке на XMPP; Matrix или Element нужны крупным проектам с богатой коллаборацией. Мы в IT For Prof перед каждым внедрением проводим интервью с заказчиком, чтобы через полгода не получить жалобу, что команде не хватает тредов или интерфейс слишком аскетичный.

Когда chatmail подходит команде, а когда лучше Snikket или Matrix

Подготовка VPS и DNS для chatmail-сервера delta chat: домен, MX-записи, SPF и DKIM

Перед установкой chatmail-сервера delta chat мы готовим VPS и зону DNS — именно в этом порядке, потому что часть проверок выполняется во время запуска cmdeploy. Минимальные требования официальной документации: Debian 12, 1 ГБ ОЗУ, одно процессорное ядро и примерно 10 ГБ хранилища. Этого хватает на несколько тысяч активных chatmail-адресов; для клиентских установок мы обычно берём 2 ГБ ОЗУ с запасом.

Открываем входящий трафик для SMTP, HTTP/HTTPS и почтовых TLS-сервисов: 25 (SMTP), 80 (ACME HTTP), 143 (IMAP/STARTTLS), 443 (HTTPS с ALPN-мультиплексированием), 465 (SUBMISSIONS), 587 (SUBMISSION) и 993 (IMAPS). IMAP-поведение сверяем с актуальной спецификацией RFC 9051, а SMTP-доставку — с базовыми требованиями RFC 5321. Если нужен TURN для звонков, отдельно планируем UDP 3478 и динамические UDP-порты. Если хостер блокирует 25-й порт по умолчанию — а это делают многие провайдеры из-за антиспам-политик, — согласуем разблокировку заранее.

DNS-записи готовим для поддомена вида chat.example.com. A-запись указывает на IPv4-адрес VPS, AAAA — на IPv6, если используется. Для публичного релея добавляем записи, которые предлагает cmdeploy dns, и проверяем их до боевого запуска. При настройке chatmail-сервер delta chat требует обязательную проверку MX-записей и SPF.

DKIM и почтовые TLS-настройки не стоит собирать вручную по памяти: официальный сценарий cmdeploy run сам разворачивает Postfix, Dovecot, Nginx, OpenDKIM, filtermail и chatmaild-компоненты в нужной связке. После изменений DNS мы повторно запускаем cmdeploy dns, cmdeploy status и cmdeploy test, чтобы не ловить ошибки уже на пользователях.

Reverse DNS (PTR-запись) на IP сервера настраиваем через панель хостера. Это не заменяет DKIM и TLS, но снижает риск проблем с доставкой при взаимодействии с внешней почтовой инфраструктурой. В этот же момент фиксируем резервный доступ по SSH и документируем, с какой рабочей машины хранится актуальный chatmail.ini.

Установка chatmail-сервера delta chat на Debian 12: пошаговая инструкция с cmdeploy

Официальный путь установки chatmail-сервера delta chat — через репозиторий chatmail/relay и инструмент cmdeploy. Это Python/pyinfra-автоматизация, которая подключается к Debian 12-серверу по SSH и разворачивает Postfix, Dovecot, Nginx, OpenDKIM, filtermail, TLS и сервисы chatmaild.

Базовая последовательность такая: на локальной Linux/Unix-машине клонируем репозиторий chatmail/relay, создаём virtualenv, устанавливаем пакет командой pip install -e ., создаём конфигурацию командой cmdeploy init chat.example.com, проверяем SSH-доступ root на сервер и выполняем cmdeploy run. Инструмент проверит DNS и подскажет, каких записей не хватает. Процесс развёртывания chatmail-сервер delta chat обычно занимает 10–15 минут в зависимости от скорости VPS и сети.

В chatmail.ini отдельно проверяем домен, лимиты и ретеншн. В текущем шаблоне проекта обычные письма удаляются через 20 дней, крупные сообщения больше 200 КБ — через 7 дней, а неактивные пользователи — через 100 дней без успешного входа. Эти значения можно менять осознанно, но для первой установки мы оставляем дефолты и документируем их для заказчика.

После запуска используем штатные команды из документации: cmdeploy status для проверки состояния, cmdeploy dns для сверки DNS-записей, cmdeploy test для функциональной проверки и cmdeploy bench для оценки производительности. На продакшене дополнительно добавляем мониторинг диска, доступности портов 25/143/465/587/993/443 и срока действия TLS-сертификатов.

Не делайте, как наш клиент, который попытался поставить chatmail рядом с уже работающим Postfix на том же сервере: 25-й и 587-й порты ушли в конфликт, а диагностика заняла больше времени, чем чистая установка на отдельный VPS. Правило: chatmail-сервер delta chat живёт на отдельном сервере или хотя бы на отдельном IP, без соседей по SMTP-портам.

Для сопровождения мы храним актуальный chatmail.ini в закрытом репозитории клиента, фиксируем версию chatmail/relay, с которой был выполнен деплой, и после обновлений повторяем cmdeploy status/test. Так проще отличить реальную проблему сервиса от устаревшего описания в статье или старого значения из changelog.

Онбординг сотрудников через QR-инвайты Delta Chat и управление аккаунтами

При использовании chatmail-сервер delta chat для командной коммуникации рекомендуется применять QR-инвайты для быстрого онбординга сотрудников. Сотрудники подключаются к chatmail-серверу не через анкеты с паролем, а через QR-инвайты. Это главная особенность Delta Chat и причина, по которой мы любим chatmail для нетехнических команд: пользователь сканирует QR-код, и через несколько секунд у него настроенный аккаунт в клиенте Delta Chat. Не нужны длинные инструкции по IMAP/SMTP — большая часть настроек подтягивается автоматически.

Технически QR-инвайт ведёт на страницу релея, через которую создаётся chatmail-адрес и передаются параметры клиенту. Сервер не требует отдела, должности или телефона — профиль, имя и аватар остаются на стороне клиента. Для компаний с требованиями к минимизации персональных данных это удобнее, чем классическая веб-админка мессенджера. Настройка chatmail-сервер delta chat для массового онбординга через QR-инвайты требует правильной конфигурации контроля доступа и мониторинга создания новых аккаунтов.

Мы готовим для клиентов общий QR-инвайт ИТ-отдела и отдельные одноразовые инструкции для удалённых сотрудников. Чтобы получить корпоративную адресную книгу, новичок добавляется в первый групповой чат с коллегами — Autocrypt автоматически распространяет публичные ключи участников.

Веб-админки уровня «создать пользователя, сбросить пароль, посмотреть архив» у chatmail нет принципиально. Операции сопровождения выполняются на сервере и через конфигурацию релея; удаление старых сообщений и неактивных ящиков делает штатный механизм chatmail-expire по значениям из chatmail.ini. Это снижает административную поверхность, но требует нормального runbook для ИТ-отдела.

Для команды 30–50 человек этого обычно хватает. Для 200+ мы добавляем регламент: кто выдаёт QR-инвайт, где хранится chatmail.ini, как проверяется активность сервера, кто получает алерты по диску и портам. У одного клиента именно такой регламент помог быстро найти «забытые» аккаунты бывших сотрудников и закрыть канал утечки.

Если сотруднику нужно перенести аккаунт на новый телефон, Delta Chat показывает QR-код «Add Second Device» в настройках: старое устройство передаёт новому ключи Autocrypt и историю чатов по защищённому каналу. Мы тестировали процедуру на iOS, Android и Linux Desktop: всё проходит за 30–60 секунд, без участия администратора.

Эксплуатация: лимиты, квоты, ротация ключей и резервное копирование

Эксплуатация chatmail-сервера delta chat сводится к трём задачам: следить за квотами, обновлять релей и бэкапить конфигурацию с ключами. Если разложить эти задачи правильно, на одного администратора приходится регулярная, но небольшая нагрузка: проверить логи, свободное место, сертификаты и результат последнего cmdeploy test.

Лимиты в chatmail встроенные. В текущем шаблоне chatmail.ini обычные письма удаляются через 20 дней, крупные сообщения больше 200 КБ — через 7 дней, а аккаунты без успешного входа — через 100 дней. Эти значения можно менять, но мы фиксируем их в runbook клиента: иначе через полгода никто не вспомнит, почему сервер удаляет старые сообщения именно так.

Размер почтового ящика и одного сообщения задаётся конфигурацией релея. Для команд, которые активно пересылают PDF и архивы, мы заранее обсуждаем лимиты и рекомендуем хранить тяжёлые файлы во внешнем файловом хранилище, а не превращать chatmail в архив документов.

TLS и почтовые компоненты разворачиваются официальным сценарием cmdeploy. В мониторинг добавляем срок действия сертификатов, доступность портов 25/465/587/993/443, свободное место и результат периодической проверки scripts/cmdeploy status. Если меньше 14 дней до истечения сертификата или закрыт 25-й порт, алерт должен попасть дежурному до жалоб пользователей.

Резервное копирование состояния — это не «снять весь сервер», а сохранить то, без чего нельзя повторить установку: актуальный chatmail.ini, ключи, DNS-runbook, версию chatmail/relay и внутренние инструкции клиента. Проверку восстановления делаем раз в квартал на тестовом VPS: поднимаем релей, прогоняем cmdeploy dns/status/test и фиксируем результат.

Не повторяйте нашу ошибку 2024 года: один из нас положил архив с почтовыми ключами в слишком широкую папку клиентского облака. Мы перевыпустили ключи в течение часа, никто не пострадал, но с тех пор архивы chatmail у нас всегда лежат на отдельном зашифрованном томе.

Стоимость и операционная нагрузка: chatmail vs Snikket vs ejabberd vs Matrix

На практике chatmail-сервер delta chat часто дешевле в эксплуатации, чем Matrix/Synapse, потому что не требует отдельного тяжёлого сервера приложений, постоянной базы истории и сложной федерации. Для команды до 50–100 человек часто достаточно VPS с 1–2 ГБ ОЗУ, 1 CPU и 10–20 ГБ диска; итоговая стоимость зависит от хостинга, домена, мониторинга и объёма поддержки.

Snikket ближе к chatmail по простоте, но решает другую задачу: это XMPP-сервер с комнатами, федерацией и привычной XMPP-экосистемой. Если команде нужны треды, реакции, мосты и богатая история, чаще выбирают Matrix. Если нужна лёгкая защищённая переписка поверх почтовых протоколов с быстрым QR-онбордингом, chatmail обычно требует меньше операционного внимания.

Операционная нагрузка у chatmail сводится к стандартным задачам Linux-администрирования: обновления Debian, контроль TLS-сертификатов, доступность портов 25/143/465/587/993/443, резервная копия конфигурации и мониторинг диска. В отличие от классического корпоративного почтового сервера, здесь нет задачи хранить многолетний архив переписки и обслуживать веб-почту.

Основной путь установки и обслуживания строится вокруг cmdeploy: после установки пакета из репозитория chatmail/relay используются команды cmdeploy run, cmdeploy status, cmdeploy dns и cmdeploy test. Для ejabberd и Matrix обычно нужны отдельные регламенты по федерации, обновлениям, резервному копированию базы и хранению истории.

Итог

Часто задаваемые вопросы

На этой странице мы собрали ответы на самые популярные вопросы о развёртывании chatmail-сервер delta chat и его эксплуатации. Выберите интересующую вас тему или читайте подробное объяснение по каждому вопросу.

Chatmail-сервер delta chat — специализированный SMTP/IMAP-relay на базе Postfix и Dovecot, оптимизированный под мессенджер Delta Chat. Отличие от классического почтового сервера: сервер не используется как долгосрочный архив: обычные письма удаляются через 20 дней, крупные сообщения больше 200 КБ — через 7 дней. Работает на стандартных протоколах IMAP4 и SMTP. Шифрование end-to-end обеспечивается клиентами Delta Chat через Autocrypt и OpenPGP.
По официальной документации: 1 ГБ ОЗУ, 1 ядро CPU, 10 ГБ диска — этого хватает на несколько тысяч активных адресов. На наших проектах 300 активных пользователей потребляли 350–500 МБ ОЗУ в пике. Обязательны: Debian 12, статический IPv4, корректный PTR, открытые порты 25, 80, 143, 443, 465, 587, 993. Для продакшена закладывайте запас по памяти и диску; итоговая ёмкость зависит от активности пользователей, размера вложений и политики хранения.
Да, для текстовой переписки и передачи файлов chatmail-сервер delta chat может заменить публичный мессенджер: данные проходят через ваш VPS, а сообщения шифруются end-to-end на клиентах Delta Chat. Ограничения: нет встроенных серверных голосовых звонков, нет долгосрочного серверного архива, нет LDAP/SSO. Для компаний с требованиями ФЗ-152 или GDPR отсутствие серверного архива часто становится преимуществом.
Администратор один раз подготавливает QR-код со страницы релея. Сотрудник сканирует QR в Delta Chat — аккаунт создаётся автоматически по протоколу dcaccount, а параметры подключения попадают в клиент без ручной настройки IMAP/SMTP. На одном нашем проекте онбординг 18 сотрудников занял около 30 минут без отдельных заявок в ИТ-отдел.

Константин Тютюнник, основатель IT For Prof. 15 лет опыта в IT-аутсорсинге для B2B. Эксперт по DevOps, Linux-инфраструктуре и защищённым корпоративным мессенджерам. Лично руководил развёртыванием chatmail-серверов Delta Chat, Rocket.Chat и Mattermost для компаний в финансовом, производственном и государственном секторах.

Мы развёртываем защищённый корпоративный мессенджер на сервере клиента — chatmail-сервер Delta Chat, Rocket.Chat, Mattermost или Element — «под ключ». В стоимость входят: подбор VPS, настройка DNS с SPF/DKIM/DMARC, установка официальным способом для выбранного продукта, обучение сотрудников и 30 дней поддержки. Работаем с компаниями с требованиями ФЗ-152, GDPR и корпоративными политиками информационной безопасности.

				
					# Базовые DNS-записи для chatmail-сервера (поддомен chat.example.com)

# A-запись на IPv4 VPS
chat.example.com.       300 IN A     203.0.113.10

# AAAA-запись на IPv6, если используется
chat.example.com.       300 IN AAAA  2001:db8::10

# Дополнительные записи проверяйте штатной командой:
# cmdeploy dns

# Проверка после публикации
dig +short A    chat.example.com
dig +short AAAA chat.example.com
dig +short MX   chat.example.com
dig +short TXT  chat.example.com

# PTR (reverse DNS) настраивается в панели хостера
dig +short -x 203.0.113.10
# Ожидаемо: chat.example.com.
				
			
				
					# Официальный сценарий установки chatmail relay
# Выполняется на локальной Linux/Unix-машине, с которой есть SSH-доступ root на VPS

git clone https://github.com/chatmail/relay
cd relay

# Подготовить Python virtualenv и установить пакет cmdeploy
python3 -m venv .venv
. .venv/bin/activate
pip install -e .

# Создать chatmail.ini для своего домена
cmdeploy init chat.example.com

# Проверить SSH-доступ к серверу
ssh root@chat.example.com

# Развернуть или обновить релей
cmdeploy run

# Операционные проверки после запуска
cmdeploy dns
cmdeploy status
cmdeploy test
cmdeploy bench

# В текущем шаблоне chatmail.ini важны ретеншн-параметры:
# delete_mails_after = 20
# delete_large_after = 7
# delete_inactive_users_after = 100
				
			
				
					#!/bin/bash
# /usr/local/bin/chatmail-backup.sh — daily restic backup
# Cron: 30 03 * * *  root  /usr/local/bin/chatmail-backup.sh

set -euo pipefail

export RESTIC_REPOSITORY="s3:https://s3.example.com/chatmail-backup"
export RESTIC_PASSWORD_FILE="/root/.restic-password"
export AWS_ACCESS_KEY_ID="$(cat /root/.s3-key-id)"
export AWS_SECRET_ACCESS_KEY="$(cat /root/.s3-secret)"

# Stop services for a consistent mailbox snapshot (~5–10 sec downtime)
systemctl stop dovecot postfix opendkim

restic backup \
  /etc/postfix /etc/dovecot /etc/opendkim \
  /var/vmail   /var/lib/acme \
  --tag chatmail-relay --tag "$(hostname -s)"

systemctl start opendkim postfix dovecot

# Retention policy: 7 daily / 4 weekly / 6 monthly
restic forget --prune \
  --keep-daily 7 --keep-weekly 4 --keep-monthly 6

# Deep integrity check once a week (Sunday)
if [ "$(date +%u)" = "7" ]; then
  restic check --read-data-subset=10%
fi