Инструкции → Перенос и узлы

Перенос на другой сервер и несколько серверов

Перенос — это одна кнопка. Несколько серверов — тоже, но с оговоркой про письма, читайте ниже.

Перенос на новый сервер

1
На старом сервере: вкладка Диагностика → Собрать бандл (в консоли это mailnode export). Получится файл в /root.
2
Поставьте mailnode на новый сервер по инструкции установки.
3
Скопируйте файл на новый сервер и выполните mailnode import файл.tar.gz.
4
Выполните mailnode render и mailnode doctor.
5
Переключите DNS-записи на новый адрес. Старый сервер не выключайте сутки.

Домены, ящики, пароли и ключи перенесутся как есть. Заново ничего настраивать не нужно, DKIM-записи в DNS остаются правильными.

Письма

Бандл переносит настройки и ключи, но не сами письма. Если нужны письма, дополнительно перенесите каталог /var/mail с того же бэкапа.

Автоматическая настройка в Thunderbird и Outlook

Клиенту достаточно адреса и пароля, если сервер отвечает на запрос автоконфигурации. Для этого добавьте у регистратора запись:

CNAME  autoconfig.example.ru  ->  mail.example.ru.

После этого Thunderbird сам подставит IMAP 993 и SMTP 465. Проверить ответ можно в браузере:

https://mail.example.ru/mail/config-v1.1.xml?emailaddress=ivan@example.ru

Несколько серверов

1
Вкладка Узлы. Введите имя (например mx2) и адрес вида root@10.0.0.2.
2
Нажмите Добавить.
3
Нажмите Раскатать на все. Настройки уедут на все узлы.
4
Пропишите в DNS несколько MX-записей с разными приоритетами: 10 на основной, 20 на второй.

Копии писем на втором узле

Настройки на узлы раскатываются сами, а письма копируются отдельной командой:

mailnode replicate                        # на первый узел из списка
mailnode replicate --target root@10.0.0.2 # на конкретный
mailnode replicate --dry-run              # только показать, что будет

Команда проходит по всем ящикам и синхронизирует их через doveadm sync по ssh. На втором узле должна быть установлена та же почта и настроен доступ root по ключу — тогда письма лягут в свои ящики.

Автоматически раз в час:

cat > /etc/systemd/system/mailnode-replicate.service <<'U'
[Unit]
Description=mailnode — копирование ящиков на второй узел
[Service]
Type=oneshot
ExecStart=/usr/local/bin/mailnode replicate
U
cat > /etc/systemd/system/mailnode-replicate.timer <<'U'
[Unit]
Description=mailnode — репликация раз в час
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
U
systemctl daemon-reload && systemctl enable --now mailnode-replicate.timer

В панели это кнопка «Скопировать письма» на вкладке «Узлы».

Важно про фильтр спама

На Dovecot 2.4 глобальное правило раскладки спама в Junk ломает синхронизацию: dsync падает с ошибкой атрибутов. Если нужна репликация между узлами, отключите глобальный фильтр командой mailnode config set spam_to_junk 0 и пересоберите конфиги. Спам при этом всё равно помечается заголовком, а раскладку можно сделать правилом в веб-почте.

Что важно знать

Копия идёт в одну сторону: главный узел — источник, второй получает письма. Если оба узла принимают почту по MX, письма, пришедшие на второй, назад не вернутся. Для полного обмена нужна двусторонняя репликация Dovecot, это следующий шаг.