Установка и настройка 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. Создание почтовых ящиков
- Откройте админку:
https://mail.yourdomain.com/admin
- Войдите с email
admin@yourdomain.com
и паролем изmailu.env
(ADMIN_PASSWORD
) - Создайте пользователей: Users → Add user
🔥 8. Фаервол (UFW)
sudo ufw allow 80,443,25,587,465,993,995/tcp
sudo ufw enable
🛠 9. Дополнительные настройки
Включение DKIM:
- В админке: DNS → DKIM keys
- Добавьте TXT-запись в DNS:
mail._domainkey.yourdomain.com IN TXT "v=DKIM1; k=rsa; p=публичный_ключ"
Резервное копирование:
docker-compose exec admin flask mailu backup
🚨 10. Тестирование
- Проверьте SMTP:
telnet mail.yourdomain.com 25 EHLO yourdomain.com
- Протестируйте отправку:
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-аутентификацию.