Поднимаем свой меил сервер на mailcow
Задача поднять свой mail server на базе mailcow. Сделаем это на Centos 7. Предположим что у нас установлена свежая система Centos 7. Подключаемся к нет по SSH и делаем следующие действия:
yum update -y && yum upgrade -y && yum makecache
yum install epel-release -y
yum install nano htop mc wget git -y
Тут мы обновили обновления, и приложения которые возможно нам понадобятся. Дальше скорее всего понадобится установить локализацию. Открываем или создаем файл:
nano /etc/environment
Внутри этого файла пишем следующее:
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
Docker
На этом мы закончили подготовительные работы. Переходим к установке докера и докеркомпоза:
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
systemctl enable --now docker
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Selinux
теперь надо проверить настройку selinux
rpm -qa | grep container-selinux
должно хоть что-то вывести, значит работает selinux, дальше проверяем наличие selinux в докере командой:
docker info | grep selinux
скорее всего пусто будет, ничего не выведет. Если выводит пустоту то открываем файлик:
nano /etc/docker/daemon.json
и заполняем содержимим:
{
"selinux-enabled": true
}
Сохраняем и перезагружаем докер:
systemctl restart --now docker
Дальше проверяем команду:
su
umask
должно вывести 0022, если все ок идем дальше.
Установка Mailcow
Теперь устанавливаем Mailcow:
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh
Вводим название домена: mail.***yourdomain.com в соответствии с вашим доменом. в самом начале лучше добавить mail.*****, также заполняем все что просит установщик
Теперь нужно остановить стандартный почтовик postfix и уберем его сразу из автозагрузки
systemctl stop postfix
systemctl disable postfix
Дальше делаем так чтобы у нас по умолчанию всегда был HTTPS, для этого создаем файл:
nano data/conf/nginx/redirect.conf
С содержимым файла:
server {
root /web;
listen 80 default_server;
listen [::]:80 default_server;
include /etc/nginx/conf.d/server_name.active;
if ( $request_uri ~* "%0A|%0D" ) { return 403; }
location ^~ /.well-known/acme-challenge/ {
allow all;
default_type "text/plain";
}
location / {
return 301 https://$host$uri$is_args$args;
}
}
теперь можно запускать докер:
docker-compose pull
docker-compose up -d
после этого наш почтовый сервер должен начать работать. Заходим по адресу куда установили сервер: mail.***yourdomain.com
Вводим начальный логин admin и пароль moohoo
Меняем пароль админу. И делаем нужные нам настройки.
Переносим главную папку
Давайте перенесем рабочую папку мейл программы. Официальная документация тут
- Для начала остановим докер
- Создадим новую рабочую папку в /home/mail_data
- Скопируем старую папку в подпапку в ***_data_backup
- Залинкуем старую папку в новую в /home/mail_data
- Запустим докер.
Все это одним кодом:
cd /opt/mailcow-dockerized/
docker-compose down
mkdir /home/mail_data
mv /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data_backup
ln -s /home/mail_data /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data
docker-compose up -d
Готово, теперь наш меил сервер будет сохранять свои данные в /home/mail_data
Это же желательно повторить для solr, а лучше перенести весь докер в папку /home/docker вот статья
Бекап
Документация для Backup и Restore. Мы создадим папку в которой будут храниться наши бекапы:
mkdir /home/mail_backup
И теперь закинем в эту папку бекап, если нужен и можем восстановить все с бекапа:
./helper-scripts/backup_and_restore.sh restore
Теперь когда у нас все восстановилось, лучше всего сделать автоматический бекап. Для этого добавим в крон наши бекапы:
crontab -e
дописываем сюда скрипт для автоматического бекапа каждый день в 0:00, и будем хранить бекапы только последних 10 дней
0 0 * * * cd /opt/mailcow-dockerized/; MAILCOW_BACKUP_LOCATION=/home/mail_backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all --delete-days 10
Готово. Можем пользоваться нашим новым мейл сервером
Читайте также:
- Добавляем домен в mailcow
- Поднимаем свой меил сервер на mailcow
- Простой локальный сервер на Docker
- Docker как почистить весь мусор