Mailcow — это почтовый сервер который разворачивается в docker контейнере и требует минимум настройки. Maicow состоит из Dovecot, ClamAV, Solr, Oletools, Memcached, Redis, MariaDB, Unbound, PHP, Postfix, ACME, Nginx, Rspamd, SOGo, Netfilter.
Для установки mailcow нам сервере должен быть установлен docker + docker-compose. Подробную инструкцию по установке вы может прочитать в данной статье.
Установка
Устанавливать mailcow необходимо от пользователя root. Подключаемся к серверу под root пользователем либо выполняем следующую команду
sudo su
Для установки нам дополнительно потребуется пакет docker-compose-plugin
apt install docker-compose-plugin
Переходим в папку opt и клонируем репозиторий mailcow и переходим в папку mailcow-dockerized
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
Запускаем генерацию файла конфигурации
./generate_config.sh
Во время генерации конфигурационного файла у нас будет запрошено доменное имя на котором будет находится система mailcow, советуем вам создать на вашем домене поддомен для почты и указать его.
В случаи если на вашем сервере памяти меньше чем 2.5GB скрипт предложит вам отключить ClamAV
Необходимо будет указать часовой пояс. Для верного указания используем данную таблицу.
Вы также можете выбрать какую версию сборки mailcow устанавливать, стабильную либо тестовую. Мы будет устанавливать стабильную версию.
Available Branches:
- master branch (stable updates) | default, recommended [1]
- nightly branch (unstable updates, testing) | not-production ready [2]
Choose the Branch with it´s number [1/2] 1
Сгенерированный файл конфигурации находится в файле mailcow.conf. При необходимости вы можете его отредактировать.
nano mailcow.conf
Для установки выполняем следующие команды
docker compose pull
docker compose up -d
После установки переходим в админ панель которая находится по адресу https://mail.doman, либо если вы меняли порт в файле конфигурации то добавляем его в конце доменного имени.
Стандартный логин admin
, пароль moohoo
. После первого входа в обязательном порядке меняем пароль у пользователя admin.
Для добавления нового почтового домена, переходим в в раздел Configuration — Mail Setup и нажимаем на зеленую кнопку + Add Domain
Указываем доменное имя, по желанию добавляем описание и тэг для почты. При добавлении нового доменного имени обязательно нужно перегружать контейнер SOGo, для этого предусмотрена отдельная кнопка Add domain and restart SOGo, нажимаем ее.
Для создания почтовых ящиков, переходим во вкладку Mailboxes и создаем почтовый ящик нажав на кнопку Add mailbox.
После добавления почтового адреса перейдем в webmail и отправим наше первое письмо. Для входа в Webmail вверху нажимаем на App и выбираем Webmail.
Вводим логин, пароль и попадаем в почтовый веб-интерфейс.
Уточнени
Mailcow устанавливается с поддержкой ipv6 и для того чтобы ее отключить необходимо отредактировать файл docker-compose.yml. В данном файле находим строку enable_ipv6: true и заменяем значение true на false
networks:
mailcow-network:
[...]
enable_ipv6: true # <<< set to false
[...]
DNS записи
Для работ Mailcow вам необходимо добавить следующие DNS записи для вашего домена
# Name Type Value
mail IN A 1.2.3.4
autodiscover IN CNAME mail.example.org. (your ${MAILCOW_HOSTNAME})
autoconfig IN CNAME mail.example.org. (your ${MAILCOW_HOSTNAME})
@ IN MX 10 mail.example.org. (your ${MAILCOW_HOSTNAME})
Так же необходимо добавить SPF запись указав в ней IP вашего сервера
@ IN TXT "v=spf1 mx a SERVER_IP -all"
И указать DKIM запись которая доступна в панели управления Mailcow в разделе Configuration — Configuration & Details — ARC/DKIM keys
dkim._domainkey IN TXT "v=DKIM1; k=rsa; t=s; s=email; p=..."