bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення Mailcow

calendar_month Jun 01, 2026 schedule 20 хв. читання visibility 634 переглядів
Установка Mailcow на VPS: Полный гид по self-hosted почте с Docker и Let's Encrypt
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Установка Mailcow на VPS: Повний посібник з self-hosted пошти з Docker та Let's Encrypt

TL;DR

У цьому докладному посібнику ми крок за кроком налаштуємо повноцінний поштовий сервер Mailcow на вашому Virtual Private Server (VPS), використовуючи Docker та автоматично генеровані SSL-сертифікати від Let's Encrypt. Ви отримаєте повний контроль над своєю електронною поштою, забезпечуючи приватність, надійність та гнучкість, що ідеально підходить для розробників, соло-фаундерів та компаній, які прагнуть незалежності від сторонніх поштових провайдерів.

  • Налаштування Mailcow на VPS дозволяє створити власний поштовий сервіс з повним контролем над даними.
  • Використання Docker спрощує розгортання, ізоляцію та оновлення всіх компонентів Mailcow.
  • Автоматична інтеграція Let's Encrypt забезпечує безкоштовні та актуальні SSL/TLS сертифікати для захисту трафіку.
  • Посібник охоплює всі етапи: від вибору VPS та базового налаштування сервера до встановлення Mailcow, конфігурації DNS, резервного копіювання та усунення типових проблем.
  • Ви отримаєте повністю функціональний поштовий сервер, що включає веб-інтерфейс, антиспам, антивірус та підтримку сучасних протоколів.
  • Усі команди та налаштування актуальні на 2026 рік і призначені для негайного виконання.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

У цьому посібнику ми будемо встановлювати та налаштовувати Mailcow, комплексне рішення для створення власного поштового сервера. Mailcow — це потужний, повністю контейнеризований (на базі Docker) поштовий сервіс, який надає всі необхідні компоненти для роботи з електронною поштою: SMTP, IMAP/POP3, веб-інтерфейс (SOGo), антиспам (Rspamd), антивірус (ClamAV), календар, контакти, а також інтеграцію з Let's Encrypt для автоматичної видачі SSL/TLS сертифікатів.

Завдання полягає в тому, щоб розгорнути Mailcow на вашому власному VPS або виділеному сервері, що дасть вам повний контроль над вашою поштовою інфраструктурою. У підсумку ви отримаєте надійний та безпечний поштовий сервер, який зможе обслуговувати домени та користувачів на ваш вибір. Ви зможете створювати поштові скриньки, керувати аліасами, налаштовувати правила фільтрації спаму та бути впевненими у конфіденційності ваших даних, оскільки вони зберігатимуться на вашому власному обладнанні, а не у стороннього провайдера.

Чому self-hosted пошта на VPS, а не хмарні сервіси?

Існує безліч альтернатив self-hosted пошті, таких як Gmail, Outlook 365, ProtonMail або Yandex.Mail для домену. Вони пропонують зручність та простоту у використанні, але мають свої недоліки:

  • Контроль даних: При використанні хмарних сервісів ваші дані зберігаються на серверах третіх осіб, що може викликати питання конфіденційності та безпеки. Self-hosted рішення дає вам повний контроль над тим, де і як зберігаються ваші електронні листи.
  • Гнучкість та кастомізація: Хмарні сервіси пропонують обмежені можливості налаштування. Mailcow, будучи розгорнутим на вашому сервері, дозволяє тонко налаштовувати всі аспекти роботи пошти, від правил фільтрації до інтеграції з іншими системами.
  • Вартість у довгостроковій перспективі: Для великих команд або безлічі поштових скриньок вартість хмарних поштових сервісів може значно зростати. Власний сервер, при правильному налаштуванні, може бути більш економічно вигідним рішенням.
  • Незалежність: Ви не залежите від політики, збоїв або змін у роботі сторонніх провайдерів. Ваш поштовий сервер працюватиме так, як ви його налаштували.

Цей посібник ідеально підходить для тих, хто цінує приватність, хоче повний контроль над своєю інфраструктурою або має специфічні вимоги, які не можуть бути задоволені стандартними хмарними пропозиціями. Розробники можуть підняти пошту для своїх проєктів, стартапери — для командної комунікації, а криптоентузіасти — для забезпечення приватності.

Який VPS-конфіг потрібен для цього завдання

Схема: Який VPS-конфіг потрібен для цього завдання
Схема: Який VPS-конфіг потрібен для цього завдання

Для успішного та стабільного розгортання Mailcow критично важливо вибрати відповідний VPS або виділений сервер. Mailcow, хоча й оптимізований для роботи в контейнерах, є досить ресурсоємним додатком через безліч включених компонентів (база даних, веб-сервер, антиспам, антивірус тощо).

Мінімальні вимоги (для 1-5 користувачів, невеликий трафік):

  • CPU: 2 ядра x86-64. Сучасні процесори з високою тактовою частотою кращі.
  • RAM: 4 ГБ. Це абсолютний мінімум; при активному антиспамі та антивірусі може бути недостатньо. Частина ОЗП буде використовуватися Docker та ОС.
  • Диск: 50 ГБ SSD. SSD критично важливий для продуктивності бази даних та швидкого доступу до файлів пошти. Враховуйте, що листи швидко заповнюють дисковий простір.
  • Мережа: 100 Мбіт/с з необмеженим трафіком або великим обсягом (мінімум 1 ТБ/міс). Стабільна IP-адреса, бажано без історії спаму.

Рекомендований VPS-план (для 5-20 користувачів, помірний трафік):

  • CPU: 4 ядра x86-64.
  • RAM: 8 ГБ. Це забезпечить комфортну роботу всіх компонентів, включаючи Rspamd та ClamAV.
  • Диск: 100-200 ГБ SSD. Із запасом для зростання поштових скриньок та зберігання логів.
  • Мережа: 1 Гбіт/с з необмеженим трафіком.

Для таких характеристик можна розглянути VPS із зазначеними характеристиками. При виборі завжди звертайте увагу на тип диска (тільки SSD) та наявність необмеженого або великого обсягу трафіку.

Коли потрібен dedicated, а не VPS?

Виділений сервер (dedicated server) стає необхідним, якщо:

  • Велика кількість користувачів: Більше 50 активних користувачів, які генерують значний трафік.
  • Високий обсяг пошти: Сервер обробляє сотні тисяч листів на день.
  • Вимоги до продуктивності: Потрібна максимальна продуктивність для антиспаму, антивірусу або специфічних інтеграцій.
  • Суворі SLA та ізоляція: Потрібна повна фізична ізоляція для безпеки та стабільності, а також гарантовані ресурси без "шумних сусідів".
  • Зберігання великого обсягу даних: Поштові скриньки з терабайтами даних.

Для таких сценаріїв доцільно розглянути відповідний dedicated, який надає повний контроль над апаратним забезпеченням та гарантує виділені ресурси.

Локація: на що впливає

Вибір локації сервера може впливати на кілька факторів:

  • Затримка (latency): Чим ближче сервер до більшості ваших користувачів, тим меншою буде затримка при доступі до веб-інтерфейсу та IMAP/POP3.
  • Законодавство: Закони про зберігання даних та приватність різняться в різних країнах. Вибирайте локацію, що відповідає вашим вимогам та регулюючим нормам.
  • Репутація IP-адреси: Деякі IP-діапазони в певних країнах можуть мати гіршу репутацію у спам-фільтрів, що може впливати на доставку вашої пошти. Бажано вибирати провайдерів з хорошою репутацією та можливістю отримання "чистої" IP-адреси.
  • DNS-резолвінг: Близькість до основних вузлів інтернету може трохи прискорити DNS-запити, але це менш критично, ніж затримка для користувачів.

Зазвичай рекомендується вибирати локацію, максимально близьку до вашої основної аудиторії або місцезнаходження вашого бізнесу.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Перед встановленням Mailcow необхідно виконати базову підготовку сервера. Ми будемо використовувати Ubuntu 24.04 LTS як стабільну та широко використовувану операційну систему. Переконайтеся, що у вас є SSH-доступ до сервера з правами root або користувача з sudo.

1. Оновлення системи та встановлення базових утиліт

Насамперед оновимо систему та встановимо необхідні пакети.


sudo apt update                                 # Оновлюємо список пакетів
sudo apt upgrade -y                             # Оновлюємо встановлені пакети
sudo apt install -y curl wget git               # Встановлюємо базові утиліти: curl, wget, git

2. Створення нового користувача з sudo-правами (рекомендується)

Робота під root не рекомендується для повсякденних завдань. Створимо нового користувача та додамо його до групи sudo.


sudo adduser mailuser                           # Створюємо нового користувача 'mailuser'
sudo usermod -aG sudo mailuser                  # Додаємо користувача 'mailuser' до групи 'sudo'

Тепер вийдіть із сесії root і увійдіть як mailuser. Усі подальші команди, що вимагають привілеїв, виконуватимуться з sudo.

3. Налаштування SSH-ключів (опціонально, але вкрай рекомендується)

Для підвищення безпеки рекомендується використовувати SSH-ключі замість паролів. Якщо у вас ще немає пари ключів, згенеруйте їх на локальній машині:


ssh-keygen -t rsa -b 4096                       # Генеруємо новий SSH-ключ на локальній машині

Потім скопіюйте публічний ключ на сервер:


ssh-copy-id mailuser@ВАШ_IP_СЕРВЕРА           # Копіюємо публічний ключ на сервер для 'mailuser'

Після цього можна відключити автентифікацію за паролем у файлі /etc/ssh/sshd_config, встановивши PasswordAuthentication no та перезапустивши SSH-сервіс.

4. Налаштування файрволу (UFW)

Встановимо та налаштуємо UFW (Uncomplicated Firewall) для захисту сервера. За замовчуванням усі вхідні з'єднання будуть заборонені, крім тих, що ми явно дозволимо.


sudo apt install -y ufw                         # Встановлюємо UFW
sudo ufw default deny incoming                  # Забороняємо всі вхідні з'єднання за замовчуванням
sudo ufw default allow outgoing                 # Дозволяємо всі вихідні з'єднання за замовчуванням
sudo ufw allow ssh                              # Дозволяємо SSH (порт 22)
sudo ufw enable                                 # Вмикаємо файрвол
sudo ufw status                                 # Перевіряємо статус файрволу

На цьому етапі сервер готовий до встановлення Docker та Mailcow.

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

Mailcow працює на Docker, тому першим кроком буде встановлення Docker Engine та Docker Compose. Ми будемо використовувати актуальні версії для 2026 року.

1. Встановлення Docker Engine

Встановимо Docker Engine, використовуючи офіційний репозиторій Docker, щоб завжди отримувати актуальні версії.


# Добавляем GPG ключ Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Добавляем репозиторий Docker в APT
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Устанавливаем Docker Engine, Docker CLI и containerd
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Проверяем установку Docker
sudo docker run hello-world                     # Запускаем тестовый контейнер для проверки установки Docker

Додамо вашого користувача до групи docker, щоб не використовувати sudo з кожною командою Docker:


sudo usermod -aG docker $USER                   # Добавляем текущего пользователя в группу 'docker'
newgrp docker                                   # Применяем изменения группы без перезахода

Тепер Docker встановлено та готово до роботи. Версія Docker Engine буде приблизно 26.x - 27.x, а Docker Compose Plugin 2.24.x - 2.27.x, що є актуальним для 2026 року.

2. Клонування репозиторію Mailcow-Dockerized

Перейдемо до директорії, де ви хочете зберігати файли Mailcow (наприклад, /opt/mailcow-dockerized), і клонуємо офіційний репозиторій Mailcow.


sudo mkdir /opt/mailcow-dockerized              # Создаем директорию для Mailcow
sudo chown $USER:$USER /opt/mailcow-dockerized  # Устанавливаем владельца директории на текущего пользователя
cd /opt/mailcow-dockerized                      # Переходим в созданную директорию
git clone https://github.com/mailcow/mailcow-dockerized . # Клонируем репозиторий Mailcow в текущую директорию

3. Генерація файлу конфігурації Mailcow

Mailcow використовує файл mailcow.conf для своїх налаштувань. Його можна згенерувати за допомогою скрипта.


./generate_config.sh                            # Запускаем скрипт для генерации mailcow.conf

Скрипт поставить кілька запитань:

  • Hostname (FQDN): Введіть повне доменне ім'я вашого поштового сервера, наприклад, mail.yourdomain.com. Це буде основне ім'я, за яким буде доступний ваш сервер.
  • Timezone: Виберіть вашу часову зону.

Після відповіді на запитання буде створено файл mailcow.conf. Відкрийте його та переконайтеся, що всі налаштування відповідають вашим потребам. Особливу увагу приділіть змінним, пов'язаним з портами та мережею, якщо у вас є специфічні вимоги.

4. Налаштування DNS-записів

Це критично важливий крок для роботи поштового сервера. Без правильних DNS-записів ваша пошта не буде доставлятися або потраплятиме в спам. Вам потрібно буде додати наступні записи до панелі керування DNS вашого домену (yourdomain.com):

  • A-запис для Mailcow FQDN:
    • Ім'я/Хост: mail (або ваше FQDN, наприклад, mail.yourdomain.com)
    • Тип: A
    • Значення: ВАШ_IP_СЕРВЕРА
  • AAAA-запис для Mailcow FQDN (якщо використовуєте IPv6):
    • Ім'я/Хост: mail
    • Тип: AAAA
    • Значення: ВАШ_IPV6_АДРЕС_СЕРВЕРА
  • MX-запис: (вказує на ваш поштовий сервер)
    • Ім'я/Хост: @ або yourdomain.com
    • Тип: MX
    • Пріоритет: 10 (або будь-яке число, чим менше, тим вищий пріоритет)
    • Значення: mail.yourdomain.com
  • SPF-запис: (для запобігання підробці відправника)
    • Ім'я/Хост: @ або yourdomain.com
    • Тип: TXT
    • Значення: v=spf1 mx a:mail.yourdomain.com -all
  • DKIM-запис: (для підпису вихідних листів; генерується Mailcow)
    • Після першого запуску Mailcow згенерує DKIM-ключі. Вам потрібно буде скопіювати TXT-запис з веб-інтерфейсу Mailcow (Configuration -> Domains -> Add domain або Edit domain) та додати його до DNS. Формат буде приблизно такий: dkim._domainkey.yourdomain.com TXT v=DKIM1; k=rsa; p=ПУБЛИЧНЫЙ_КЛЮЧ
  • DMARC-запис: (для визначення політики обробки листів, що не пройшли SPF/DKIM)

Переконайтеся, що всі DNS-записи проіндексовані та доступні (може зайняти до кількох годин). Перевірити їх можна за допомогою dig або онлайн-інструментів, наприклад, MXToolbox.


dig A mail.yourdomain.com               # Проверяем A-запись
dig MX yourdomain.com                   # Проверяем MX-запись
dig TXT yourdomain.com                  # Проверяем SPF-запись
dig TXT _dmarc.yourdomain.com           # Проверяем DMARC-запись

5. Запуск Mailcow

Тепер, коли Docker встановлено, конфігурацію згенеровано та DNS налаштовано, можна запустити Mailcow.


cd /opt/mailcow-dockerized                      # Убедитесь, что вы находитесь в директории Mailcow
docker compose pull                             # Загружаем все необходимые Docker-образы (актуальные на 2026)
docker compose up -d                            # Запускаем все контейнеры Mailcow в фоновом режиме

Процес завантаження образів та запуску контейнерів може зайняти деякий час залежно від швидкості вашого інтернет-з'єднання та продуктивності сервера. Після запуску ви можете перевірити статус контейнерів:


docker compose ps                               # Проверяем статус запущенных контейнеров Mailcow

Усі контейнери повинні бути в стані running.

6. Дозвіл портів Mailcow в UFW

Mailcow використовує багато портів. Дозволимо їх у файрволі UFW.


sudo ufw allow 80/tcp                           # HTTP (для Let's Encrypt ACME challenge)
sudo ufw allow 443/tcp                          # HTTPS (для веб-интерфейса и почтовых клиентов)
sudo ufw allow 25/tcp                           # SMTP (для отправки/получения почты)
sudo ufw allow 465/tcp                          # SMTPS (SMTP over SSL/TLS)
sudo ufw allow 587/tcp                          # Submission (SMTP для клиентов с StartTLS)
sudo ufw allow 110/tcp                          # POP3
sudo ufw allow 995/tcp                          # POP3S (POP3 over SSL/TLS)
sudo ufw allow 143/tcp                          # IMAP
sudo ufw allow 993/tcp                          # IMAPS (IMAP over SSL/TLS)
sudo ufw allow 4190/tcp                         # Sieve (фильтрация почты на сервере)
sudo ufw status                                 # Проверяем статус файрвола

Тепер ваш поштовий сервер Mailcow запущено та він доступний за вказаним FQDN.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Після успішного запуску Mailcow, основні налаштування виконуються через веб-інтерфейс. Також важливо переконатися в коректності DNS-записів та роботи TLS.

1. Перший вхід у веб-інтерфейс Mailcow

Відкрийте веб-браузер і перейдіть за адресою вашого FQDN (наприклад, https://mail.yourdomain.com). Ви маєте побачити сторінку входу в Mailcow UI.

Дефолтні облікові дані:

  • Логін: admin
  • Пароль: moohoo

ВАЖЛИВО: Відразу після першого входу змініть пароль адміністратора! Перейдіть до System > Configuration > Admins, виберіть admin та змініть пароль.

2. Додавання домену

Перейдіть до Configuration > Mail Setup > Domains. Натисніть Add domain та введіть ваш домен (наприклад, yourdomain.com). Після додавання домену Mailcow автоматично згенерує записи DKIM. Скопіюйте наданий TXT-запис і додайте його до DNS-записів вашого домену (якщо ви не зробили цього раніше).

Приклад DKIM-запису (який ви скопіюєте з інтерфейсу):


_dkim.yourdomain.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzQ..."

Переконайтеся, що всі DNS-записи (A, AAAA, MX, SPF, DKIM, DMARC) коректно налаштовані та розв'язуються. Ви можете використовувати розділ Configuration > Mail Setup > ARC/DKIM/SPF у Mailcow UI для перевірки статусу ваших DNS-записів.

3. Створення поштових скриньок

Перейдіть до Configuration > Mail Setup > Mailboxes. Натисніть Add mailbox. Введіть ім'я користувача, виберіть домен, встановіть пароль та задайте квоту. Після створення ви зможете використовувати цю поштову скриньку для надсилання та отримання листів.

4. Налаштування TLS/HTTPS з Let's Encrypt

Mailcow використовує acme.sh для автоматичної видачі та оновлення SSL/TLS сертифікатів від Let's Encrypt. При першому запуску Mailcow автоматично спробує отримати сертифікат для вашого FQDN (наприклад, mail.yourdomain.com). Якщо DNS-записи A та AAAA для вашого FQDN коректні та порти 80/443 відкриті, сертифікат буде видано.

Ви можете перевірити статус сертифікатів у System > Configuration > Certificates. Якщо сертифікат не було видано, перевірте логи контейнера acme-mailcow:


docker compose logs acme-mailcow                # Перегляд логів контейнера acme-mailcow

Типові проблеми: неправильні DNS-записи, закриті порти 80/443, або конфлікт з іншим веб-сервером на цих портах (чого не повинно бути на чистому VPS).

5. Перевірка працездатності

Після всіх налаштувань необхідно переконатися, що поштовий сервер функціонує коректно.

Перевірка доступності веб-інтерфейсу:

Відкрийте https://mail.yourdomain.com у браузері. Переконайтеся, що з'єднання захищено (зелений замочок) і використовується сертифікат Let's Encrypt.

Перевірка SMTP/IMAP за допомогою telnet або openssl:

# Перевірка SMTP (порт 25)
telnet mail.yourdomain.com 25                   # Має відповісти 220 mail.yourdomain.com ESMTP Postfix
# Перевірка SMTPS (порт 465)
openssl s_client -connect mail.yourdomain.com:465 -crlf # Має показати інформацію про сертифікат та SMTP-вітання
# Перевірка IMAPS (порт 993)
openssl s_client -connect mail.yourdomain.com:993 -crlf # Має показати інформацію про сертифікат та IMAP-вітання
Надсилання тестового листа:

Створіть поштову скриньку в Mailcow (наприклад, [email protected]) і надішліть з неї лист на зовнішню адресу (наприклад, Gmail). Потім надішліть лист із зовнішньої адреси на [email protected]. Перевірте заголовки отриманих листів на зовнішньому сервісі, щоб переконатися в коректності SPF, DKIM та DMARC записів (зазвичай це показує, що лист пройшов автентифікацію).

Використовуйте онлайн-інструменти, такі як mail-tester.com, щоб надіслати тестовий лист та отримати детальний звіт про якість налаштування вашого поштового сервера, включаючи репутацію IP, правильність DNS-записів та оцінки спаму.

6. Налаштування веб-клієнта (SOGo)

Mailcow постачається з веб-клієнтом SOGo, доступним за тією ж адресою, що й панель адміністратора. Користувачі можуть входити в SOGo, використовуючи свої повні поштові адреси (наприклад, [email protected]) та паролі.

Веб-клієнт SOGo надає доступ до пошти, календаря та контактів. Ви можете налаштувати його зовнішній вигляд та деякі функції через панель адміністратора Mailcow.

Резервне копіювання та обслуговування

Схема: Резервне копіювання та обслуговування
Схема: Резервне копіювання та обслуговування

Надійне резервне копіювання та регулярне обслуговування є ключовими для стабільної роботи будь-якого сервера, особливо поштового. Mailcow зберігає всі свої дані в директорії data/ всередині каталогу встановлення.

1. Що резервувати

Для Mailcow необхідно резервувати наступні компоненти:

  • Директорія data/: Це найважливіша частина. Вона містить усі поштові скриньки, бази даних (MariaDB), конфігурації Rspamd, ClamAV та інші дані контейнерів.
  • Файл mailcow.conf: Містить основні налаштування Mailcow.

2. Простий скрипт авторезервування

Рекомендується використовувати скрипт, який виконуватиме резервне копіювання регулярно, наприклад, щодня через cron. Перед початком резервування бажано зупинити Mailcow, щоб уникнути проблем з цілісністю даних, особливо бази даних. Однак, для більшості випадків, якщо резервування виконується швидко, можна обійтися без зупинки, але це не гарантує 100% консистентності. Mailcow також надає вбудовану утиліту для резервування.


#!/bin/bash

# Шлях до директорії Mailcow
MAILCOW_DIR="/opt/mailcow-dockerized"
# Директорія для зберігання резервних копій
BACKUP_DIR="/var/backups/mailcow"
# Дата для імені файлу резервної копії
DATE=$(date +%Y-%m-%d_%H-%M-%S)
# Ім'я файлу резервної копії
BACKUP_FILENAME="mailcow_backup_${DATE}.tar.gz"
# Кількість днів для зберігання старих резервних копій
RETENTION_DAYS=7

# Створюємо директорію для резервних копій, якщо її немає
mkdir -p "${BACKUP_DIR}"

echo "[$(date)] Запуск резервного копіювання Mailcow..."

# Опціонально: Зупинка Mailcow для консистентності бази даних
# echo "[$(date)] Зупинка контейнерів Mailcow..."
# cd "${MAILCOW_DIR}" && docker compose stop

# Створюємо архів з даними Mailcow
echo "[$(date)] Створення архіву даних Mailcow..."
tar -czf "${BACKUP_DIR}/${BACKUP_FILENAME}" -C "${MAILCOW_DIR}" data mailcow.conf --remove-files

# Опціонально: Запуск Mailcow після резервного копіювання
# echo "[$(date)] Запуск контейнерів Mailcow..."
# cd "${MAILCOW_DIR}" && docker compose start

echo "[$(date)] Резервне копіювання Mailcow завершено: ${BACKUP_DIR}/${BACKUP_FILENAME}"

# Видаляємо старі резервні копії
echo "[$(date)] Очищення старих резервних копій (старших за ${RETENTION_DAYS} днів)..."
find "${BACKUP_DIR}" -type f -name "mailcow_backup_*.tar.gz" -mtime +"${RETENTION_DAYS}" -delete
echo "[$(date)] Очищення завершено."

Збережіть цей скрипт, наприклад, як /usr/local/bin/backup_mailcow.sh, зробіть його виконуваним:


sudo chmod +x /usr/local/bin/backup_mailcow.sh

І додайте його до cron для щоденного виконання (наприклад, о 3 годині ночі):


sudo crontab -e                                 # Відкриваємо crontab для root (або для вашого користувача, якщо він має права)

Додайте рядок:


0 3 * * * /usr/local/bin/backup_mailcow.sh > /var/log/mailcow_backup.log 2>&1

3. Куди зберігати резервні копії

Вкрай важливо зберігати резервні копії поза тим самим сервером, на якому працює Mailcow. У разі збою сервера, локальні резервні копії будуть втрачені разом з ним. Рекомендовані варіанти:

  • Зовнішнє S3-сумісне сховище: Такі сервіси, як AWS S3, Backblaze B2, DigitalOcean Spaces, пропонують надійне та недороге зберігання об'єктів. Використовуйте rclone або aws cli для синхронізації.
  • Окремий VPS: Ви можете використовувати другий, менш потужний VPS як сховище резервних копій, синхронізуючи їх за допомогою rsync через SSH.
  • Локальне мережеве сховище (NAS): Якщо у вас є власне мережеве сховище, можна налаштувати монтування та копіювання туди.

Приклад надсилання резервних копій на S3 за допомогою rclone (після його встановлення та налаштування):


# Додайте до скрипта backup_mailcow.sh після створення архіву:
echo "[$(date)] Завантаження резервної копії на S3..."
rclone copy "${BACKUP_DIR}/${BACKUP_FILENAME}" remote_s3_bucket:mailcow-backups/
echo "[$(date)] Завантаження на S3 завершено."

4. Оновлення: rolling vs maintenance window

Mailcow регулярно випускає оновлення, які включають виправлення безпеки, нові функції та покращення. Оскільки Mailcow базується на Docker, процес оновлення відносно простий.

Процедура оновлення:

cd /opt/mailcow-dockerized                      # Переходимо до директорії Mailcow
git pull                                        # Оновлюємо репозиторій Mailcow-Dockerized до останньої версії
docker compose pull                             # Завантажуємо нові версії Docker-образів Mailcow
docker compose up -d                            # Перестворюємо та запускаємо контейнери з новими образами

Після виконання docker compose up -d Docker Compose порівняє поточну конфігурацію з новою та оновить лише ті контейнери, чиї образи або конфігурації змінилися. Це забезпечує відносно "rolling" оновлення, мінімізуючи час простою.

Maintenance Window:

Хоча процес оновлення Mailcow зазвичай не потребує тривалого простою, для критично важливих поштових систем рекомендується проводити оновлення у заздалегідь визначене "вікно обслуговування" (maintenance window). Це дозволяє повідомити користувачів про можливу короткочасну відсутність доступу до пошти та дає вам час для усунення непередбачених проблем, якщо такі виникнуть.

Перед оновленням завжди рекомендується зробити повне резервне копіювання. Це дозволить швидко відкотитися до попередньої робочої версії у разі серйозних проблем.

Вирішення проблем + FAQ

У цьому розділі ми розглянемо типові проблеми, з якими можна зіткнутися під час встановлення та експлуатації Mailcow, а також відповімо на часті запитання.

Не можу отримати доступ до веб-інтерфейсу Mailcow (https://mail.yourdomain.com)

Що перевірити:

  1. DNS-запис: Переконайтеся, що A-запис (і AAAA, якщо використовуєте IPv6) для вашого FQDN (mail.yourdomain.com) вказує на IP-адресу вашого сервера. Використовуйте dig mail.yourdomain.com.
  2. Файрвол: Перевірте, що порти 80 (HTTP) і 443 (HTTPS) відкриті в UFW (sudo ufw status) та на рівні провайдера VPS.
  3. Статус Docker-контейнерів: Переконайтеся, що контейнери Mailcow запущені: cd /opt/mailcow-dockerized && docker compose ps. Контейнери nginx-mailcow та acme-mailcow мають бути в стані running.
  4. Логи Nginx: Перевірте логи контейнера nginx-mailcow на наявність помилок: docker compose logs nginx-mailcow.
  5. Сертифікати Let's Encrypt: Якщо ви бачите помилку "NET::ERR_CERT_COMMON_NAME_INVALID" або подібну, можливо, не було видано SSL-сертифікат. Перевірте логи acme-mailcow: docker compose logs acme-mailcow. Переконайтеся, що порт 80 відкритий для ACME-челенджу.

Як виправити: Виправте DNS-запис, відкрийте порти у файрволі, перезапустіть Mailcow (docker compose restart), за необхідності вручну запитайте сертифікат через інтерфейс Mailcow або перезапустіть контейнер acme-mailcow.

Листи потрапляють у спам або не доставляються

Що перевірити:

  1. DNS-записи (SPF, DKIM, DMARC, MX): Це найчастіша причина. Використовуйте mail-tester.com або mxtoolbox.com, щоб перевірити всі ваші DNS-записи. Переконайтеся, що MX-запис вказує на ваш FQDN, SPF коректний, DKIM-запис додано і він збігається з тим, що згенерувала Mailcow, і DMARC налаштовано.
  2. Репутація IP-адреси: Ваша IP-адреса може бути в чорних списках. Перевірте її на mxtoolbox.com/blacklists.aspx. Якщо IP в чорному списку, зв'яжіться з провайдером VPS або запитайте його виключення зі списку.
  3. PTR-запис (Reverse DNS): Переконайтеся, що для вашої IP-адреси налаштовано PTR-запис, який вказує на ваш FQDN (mail.yourdomain.com). Це налаштовується в панелі керування вашого VPS-провайдера.
  4. Логи Postfix/Rspamd: Перевірте логи контейнерів postfix-mailcow та rspamd-mailcow на наявність помилок під час надсилання/отримання листів.

Як виправити: Виправте DNS-записи, налаштуйте PTR-запис, якщо IP у чорному списку - зверніться до провайдера або очистіть його. Використовуйте mail-tester.com для покрокового виправлення проблем.

Не можу надсилати/отримувати листи з поштового клієнта (Outlook, Thunderbird)

Що перевірити:

  1. Налаштування клієнта: Переконайтеся, що ви правильно ввели FQDN сервера (mail.yourdomain.com), порти (IMAP 993 SSL/TLS, SMTP 465 SSL/TLS або 587 STARTTLS), повну адресу електронної пошти як логін та коректний пароль.
  2. Файрвол: Перевірте, що порти 465, 587, 993, 143, 110, 995 відкриті в UFW та на рівні провайдера.
  3. Статус контейнерів: Переконайтеся, що контейнери postfix-mailcow (SMTP) та dovecot-mailcow (IMAP/POP3) запущені.
  4. Логи: Перевірте логи postfix-mailcow та dovecot-mailcow на наявність помилок автентифікації або проблем з підключенням.

Як виправити: Скоригуйте налаштування поштового клієнта, перевірте та відкрийте необхідні порти, перезапустіть відповідні контейнери.

Який VPS-конфіг мінімально підійде?

Для невеликої кількості користувачів (1-5) та помірного трафіку мінімальний конфіг повинен включати 2 ядра CPU, 4 ГБ RAM та 50 ГБ SSD. SSD-диск критично важливий для продуктивності. Однак, для більш комфортної роботи та можливості масштабування рекомендується мати 4 ядра CPU, 8 ГБ RAM та 100-200 ГБ SSD. Завжди обирайте провайдера з хорошою репутацією та можливістю отримання "чистої" IP-адреси.

Що обрати — VPS чи dedicated для цього завдання?

Вибір між VPS та виділеним сервером залежить від масштабу вашого завдання. Для більшості індивідуальних користувачів, малих команд (до 20-30 осіб) або невеликих SaaS-проектів VPS з рекомендованими характеристиками буде більш ніж достатньо та економічно вигідно. Виділений сервер стає необхідним, якщо ви плануєте обслуговувати велику кількість користувачів (понад 50-100), обробляти дуже високий обсяг пошти, маєте суворі вимоги до продуктивності та повної ізоляції ресурсів, або вам необхідно зберігати терабайти поштових даних. Виділений сервер надає максимальну продуктивність та контроль, але пов'язаний з вищою вартістю та необхідністю повного керування обладнанням.

Як оновити Mailcow?

Оновлення Mailcow виконується в три кроки: git pull у директорії Mailcow для отримання останніх скриптів та конфігурацій, docker compose pull для завантаження нових Docker-образів, та docker compose up -d для їх розгортання. Рекомендується робити це регулярно, щоб отримувати оновлення безпеки та нові функції. Перед оновленням завжди робіть резервну копію.

Як додати нового користувача або домен?

Усе керування користувачами, доменами, аліасами та групами розсилки здійснюється через веб-інтерфейс Mailcow. Після входу як адміністратор, перейдіть до Configuration > Mail Setup. Там ви знайдете розділи Domains для додавання нових доменів та Mailboxes для створення нових поштових скриньок. Для кожного нового домену обов'язково налаштуйте всі необхідні DNS-записи (A, AAAA, MX, SPF, DKIM, DMARC).

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Вітаємо! Ви успішно встановили та налаштували Mailcow на своєму VPS, отримавши в повне розпорядження потужний та безпечний self-hosted поштовий сервер. Тепер у вас є повний контроль над вашою електронною поштою, що забезпечує приватність, незалежність та гнучкість, недоступні в хмарних рішеннях. Ви освоїли не тільки встановлення, а й базову конфігурацію, а також принципи резервного копіювання та обслуговування.

Щоб максимально ефективно використовувати ваш новий поштовий сервер, рекомендуємо наступні кроки:

  • Оптимизация антиспама: Вивчіть налаштування Rspamd у веб-інтерфейсі Mailcow. Ви можете налаштувати чорні/білі списки, встановити більш агресивні правила фільтрації або інтегрувати додаткові джерела даних для підвищення ефективності боротьби зі спамом.
  • Мониторинг сервера: Налаштуйте базовий моніторинг вашого VPS (наприклад, за допомогою Prometheus/Grafana або Zabbix) для відстеження завантаження CPU, RAM, диска та мережевого трафіку. Це допоможе виявити потенційні проблеми до того, як вони вплинуть на роботу пошти.
  • Додаткові домени та користувачі: Якщо ви плануєте використовувати Mailcow для кількох проектів або команд, додайте нові домени та створіть відповідні поштові скриньки. Переконайтеся, що для кожного нового домену коректно налаштовані всі DNS-записи.
  • Вивчення документації Mailcow: Офіційна документація Mailcow містить багато корисної інформації про розширені функції, інтеграції та вирішення специфічних проблем. Це чудовий ресурс для подальшого освоєння системи.

Поділитися цим записом:

встановлення mailcow на vps: повний гід з self-hosted пошти з
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.