1 - Установка mailu

Пошаговый план установки

Установка Docker

Версия установки 2024.06 имеет самую последнюю стабильную версию для Mailu.

Требования к оборудованию

При использовании антивируса (clamav):

  • 3GB of memory
  • 1GB of swap

Без антивируса (clamav):

  • 1GB of memory
  • 1GB of swap

Пошаговые действия

Создал сервер Debian 12 с параметрами

  • 2GB of memory
  • 1CPU

Настройка DOCKER

Настрой Докера apt хранилище.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Установить Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверить установку Docker

sudo docker run hello-world
docker version
docker compose version

Установка MAILU

Создадим папку, где будет жить MAILU

mkdir /mailu
cd /mailu

Выполняем генерацию файлов настройки

https://setup.mailu.io/2024.06/

Настраиваем DNS

Прописываем A записи на exclusivesell.ru и на mail.exclusivesell.ru

docker compose up -d

запускаем docker

создаем админа

docker compose exec admin flask mailu admin me example.net ‘password’

2 - Установка и настройка Mailu на vps

Полная инструкция по установке и настройке Mailu на VPS с доменом

🔧 1. Требования

  • VPS (Ubuntu 20.04/22.04, 1+ ядра, 2+ GB RAM, 25+ GB SSD)
  • Доменное имя (например, mail.yourdomain.com)
  • Доступ к DNS-панели домена
  • Docker и Docker Compose (установятся автоматически)

🚀 2. Подготовка сервера

Обновление системы и установка зависимостей:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git nginx certbot python3-certbot-nginx #для ручной установки ssl (я не использовал)

📦 3. Установка Mailu

1. Скачайте официальный compose-файл:

mkdir mailu && cd mailu
curl -O https://mailu.io/2.0/docker-compose.yml
curl -O https://mailu.io/2.0/mailu.env

2. Настройте .env-файл:

Отредактируйте mailu.env:

DOMAIN=yourdomain.com
HOSTNAMES=mail.yourdomain.com
SECRET_KEY=сгенерируйте_ключ_openssl_rand_hex_32
DB_PASSWORD=strong_password
ADMIN=true

Сгенерируйте SECRET_KEY:

openssl rand -hex 32

3. Запустите Mailu:

docker-compose up -d

🌐 4. Настройка DNS

Добавьте записи в DNS-панели домена:

Тип Имя Значение
A mail.yourdomain.com IP вашего VPS
MX @ 10 mail.yourdomain.com
TXT @ v=spf1 mx -all
TXT _dmarc v=DMARC1; p=none; rua=mailto:admin@yourdomain.com

🔒 5. Настройка SSL (Let’s Encrypt)

Через Nginx:

sudo certbot --nginx -d mail.yourdomain.com

Или встроенными средствами Mailu:

В mailu.env добавьте: (лучше этот вариант)

TLS_FLAVOR=letsencrypt

⚙️ 6. Настройка почтовых клиентов

Рекомендуемые параметры:

  • IMAP: mail.yourdomain.com, порт 993 (SSL)
  • SMTP: mail.yourdomain.com, порт 465 (STARTTLS)
  • Логин: Полный email (user@yourdomain.com)

📧 7. Создание почтовых ящиков

  1. Откройте админку: https://mail.yourdomain.com/admin
  2. Войдите с email admin@yourdomain.com и паролем из mailu.env (ADMIN_PASSWORD)
  3. Создайте пользователей: Users → Add user

🔥 8. Фаервол (UFW)

sudo ufw allow 80,443,25,587,465,993,995/tcp
sudo ufw enable

🛠 9. Дополнительные настройки

Включение DKIM:

  1. В админке: DNS → DKIM keys
  2. Добавьте TXT-запись в DNS:
    mail._domainkey.yourdomain.com IN TXT "v=DKIM1; k=rsa; p=публичный_ключ"
    

Резервное копирование:

docker-compose exec admin flask mailu backup

🚨 10. Тестирование

  1. Проверьте SMTP:
    telnet mail.yourdomain.com 25
    EHLO yourdomain.com
    
  2. Протестируйте отправку:
    swaks --to test@yourdomain.com --from admin@yourdomain.com --server mail.yourdomain.com
    

11. Обновление

docker-compose pull
docker-compose up -d

12. Решение проблем

  • Почта не отправляется: Проверьте логи docker-compose logs -f smtp
  • Нет доступа к админке: Убедитесь, что ADMIN=true в .env
  • Ошибки SSL: Перевыпустите сертификат certbot renew

Готово! Ваш почтовый сервер с веб-интерфейсом доступен по https://mail.yourdomain.com. Для интеграции с сайтом используйте API (как в предыдущих шагах) или SMTP-аутентификацию.