Введение
В этом руководстве мы установим свой собственный почтовый сервер на базе Ubuntu в Hetzner Cloud.
С Mailcow вы можете разместить свой собственный почтовый сервер с вашим собственным доменным именем. Mailcow также позволяет синхронизировать ваши контакты и календарь.
Официальная документация: https://docs.mailcow.email/
Веб-сайт проекта: https://mailcow.email
GitHub: https://github.com/mailcow/mailcow-dockerized
Требования
- Доменное имя
- Немного знаний о работе Docker
Шаг 1 - Создание нового сервера Cloud
- Войдите в Cloud панель через [https://console.hetzner.cloud]
- Создайте новый проект и назовите его как вам нравится
- Выберите локацию сервера которая вам больше подходит
- Нажмите
Add Server
и выберитеUbuntu 18.04
из доступных образов - Выберите необходимую по мощности модель сервера
- Кликните в поле
User Data
и введите следующее#include https://get.docker.com
(эта опция автоматически установит docker) - Выберите SSH-ключ
- Вы можете прочитать данное руководство, чтобыы узнать как сгенерировать SSH-ключ
- В поле
name
укажите имя сервера (mail.example.com) - Нажмите
Create & Buy Now
Шаг 2 - Настройка DNS
По сути, вы хотите сделать новую DNS запись с именем mail.example.com и добавить адреса IPv4 (A запись) и IPv6 (AAAA запись) вашего сервера. Затем вы можете настроить MX запись своего домена так, чтобы она указывала на ваш поддомен mail.example.com, который вы только что создали. Вам также необходимо настроить поддомены autodiscover.example.com и autoconfig.example.com, они оба должны иметь тип CNAME и указывать на mail.example.com
Ваша конфигурация DNS должна выглядеть примерно так:
# Name Type Value
mail IN A 10.0.0.1
mail IN AAAA 2001:db8:1234::1
autodiscover IN CNAME mail
autoconfig IN CNAME mail
@ IN MX 10 mail
Шаг 2 - Установка обновлений на сервер (опционально)
Подождите несколько секунд пока сервер запустится и затем подключитесь к нему, используя SSH и ваш закрытый ключ. После этого вы можете установить обновления на сервер выполнив:
apt update && apt upgrade -y
Шаг 4 - Установка Docker Compose
Теперь вам нужно установить Docker compose, сделать это можно выполнив:
curl -L https://github.com/docker/compose/releases/download/$(curl -s "https://api.github.com/repos/docker/compose/releases/latest" | awk -F '"' '/tag_name/{print $4}')/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Шаг 5 - Клонирование репозитория Mailcow
Теперь мы собираемся клонировать репозиторий Mailcow GitHub, поэтому сначала вам нужно перейти в /opt
:
cd /opt
теперь, когда вы находитесь в /opt выполните:
git clone https://github.com/mailcow/mailcow-dockerized
Шаг 6 - Создание файла конфигурации
Перейдите в директорию /opt/mailcow-dockerized
командой cd /opt/mailcow-dockerized
и выполните скрипт ./generate_config.sh
который сгенерирует файл конфигурации. Теперь вам нужно ввести свое доменное имя (должно быть что-то вроде mail.example.com)
Шаг 7 - Получение Docker-контейнеров
Мы почти закончили. Теперь вы должны запустить docker-compose pull
, чтобы получить образы Docker.
Шаг 8 - Запуск Mailcow
Для запуска Mailcow выпоните docker-compose up -d
Шаг 9 - Настройка обратной DNS записи
Войдите в панель Cloud, выберите свой проект, выберите сервер который только что создали, перейдите в раздел networking
, нажмите на три точки в строке с IPv4 адресом и выберите Edit Reverse DNS
и введите имя своего домена (mail.example.com). Тоже самое необходимо сделать для IPv6 адреса просто введя ::1
в поле, где указан IP-адрес и ниже вновь ваше имя домена (mail.example.com).
Шаг 10 - Вход в систему и смена пароля
Теперь вы можете открыть mail.example.com в браузере и войти с логином/паролем по-умолчанию
логин: admin
пароль: moohoo
Пожалуйста смените пароль по-умолчанию :)
Шаг 11 - Добавление домена в Mailcow
Для добавления домена в Mailcow перейдите в Configuration
-> Mail setup
. Добавьте свой домен.
Шаг 12 - Настройка DKIM
Возвращаемся к меню Configuration
-> Configuration & Details
и настраиваем DKIM. Во вкладке Configuration
выберите DKIM в левом меню. Оно должно быть в самом верху, прокрутите вниз пока не увидите поле, в которое вы сможете ввести свой домен. Нажмите на Select domains with missing keys
для того, чтобы поле автоматически заполнилось вашим доменным именем. Выберите ключ 2048
и нажмите Add
. После появления ключа вы можете скопировать публичный ключ и создать DNS TXT запись с именем dkim._domainkey
. которая будет содержать то, что вы только что скопировали.
Шаг 13 - Создание почтового ящика
В меню Configuration
-> Mail setup
вы сможете создать почтовый ящик и зайти в него по следующей ссылке https://mail.example.com/SOGo
Шаг 14 - Обновление Mailcow
Конечно, о почтовом сервере необходимо заботиться и обновлять его время от времени. Обновление Mailcow - супер простая задача, просто запустите ./update.sh
и следуйте инструкциям :)