Установка и настройка 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-аутентификацию.