Самостоятельно размещенный
Установка
Требования
Перед запуском скрипта установки убедитесь, что у вас есть следующее:
- Операционная система: Сервер на базе Linux (например, Ubuntu 22.04+).
- Ресурсы: 1 vCPU и 2 ГБ ОЗУ
- Доступ с правами root: Административные привилегии для выполнения команд.
- Доменное имя: Пользовательский домен, готовый к настройке DNS.
- Чистый IP: Убедитесь, что ваш сервер имеет чистый IP-адрес без предыдущей репутации спама, проверив черные списки. Дополнительная информация здесь.
[!TIP] Посмотрите наш список потрясающие поставщики почтовых серверов
Cloud-init / Пользовательские данные
Большинство поставщиков облачных услуг поддерживают конфигурацию cloud-init для случаев, когда предоставляется виртуальный частный сервер (VPS). Это отличный способ заранее задать некоторые файлы и переменные среды для использования в начальной настройке скриптов, что позволит обойти необходимость запрашивать дополнительную информацию во время работы скрипта.
Параметры
EMAIL
-EMAIL
переменная окружения, используемая для напоминаний об истечении срока действия certbotDOMAIN
- пользовательский домен, используемый для настройки собственного хостингаAUTH_BASIC_USERNAME
- имя пользователя, используемое при первой настройке для защиты сайтаAUTH_BASIC_PASSWORD
- пароль, используемый при первой настройке для защиты сайта/root/.cloudflare.ini
- (только для пользователей Cloudflare)файл конфигурации cloudflare, используемый certbot для настройки DNS. Он требует, чтобы вы установили свой API-токен черезdns_cloudflare_api_token
. Читать далее здесь.
Пример:
#cloud-config
write_files:
- path: /root/.cloudflare.ini
content: |
dns_cloudflare_api_token = "xxx"
owner: root:root
permissions: '0600'
- path: /etc/profile.d/env.sh
content: |
export EMAIL="test@myemail.com"
export DOMAIN="mydomain.com"
runcmd:
- chmod +x /etc/profile.d/env.sh
Установить
Выполните следующую команду на своем сервере, чтобы загрузить и выполнить установочный скрипт:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Отладочный скрипт установки
Добавьте DEBUG=true перед скриптом установки для подробного вывода:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Подсказки
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Начальная настройка: Загрузите последнюю версию кода пересылки электронной почты, настройте среду, запросите свой пользовательский домен и установите все необходимые сертификаты, ключи и секреты.
- Настройка резервного копирования: Настроит cron для резервного копирования mongoDB и redis с использованием хранилища, совместимого с S3, для безопасного удаленного хранения. Отдельно будет выполняться резервное копирование sqlite при входе в систему, если есть изменения для безопасного зашифрованного резервного копирования.
- Установка обновления: Настройте cron для поиска ночных обновлений, которые безопасно перестроят и перезапустят компоненты инфраструктуры.
- Продлить сертификаты: Certbot / lets encrypt используется для SSL-сертификатов, а ключи истекают каждые 3 месяца. Это обновит сертификаты для вашего домена и поместит их в нужную папку для использования соответствующими компонентами. Смотреть важные пути к файлам
- Восстановить из резервной копии: Запустит mongodb и redis для восстановления из резервной копии данных.
Начальная настройка (вариант 1)
Выбрать вариант 1. Initial setup
для начала.
После завершения вы должны увидеть сообщение об успешном завершении. Вы даже можете запустить docker ps
чтобы увидеть компоненты раскручиваются. Более подробная информация о компонентах ниже.
Услуги
Название услуги | Порт по умолчанию | Описание |
---|---|---|
Веб | 443 | Веб-интерфейс для всех административных взаимодействий |
API | 4000 | Уровень API для абстрагирования баз данных |
Бри | Никто | Фоновое задание и исполнитель задач |
SMTP | 465/587 | SMTP-сервер для исходящей электронной почты |
SMTP Бри | Никто | Фоновое задание SMTP |
MX | 2525 | Обмен почтой для входящей электронной почты и переадресация электронной почты |
IMAP | 993/2993 | IMAP-сервер для входящей электронной почты и управления почтовыми ящиками |
POP3 | 995/2995 | POP3-сервер для входящей электронной почты и управления почтовыми ящиками |
SQLite | 3456 | Сервер SQLite для взаимодействия с базами данных SQLite |
SQLite Бри | Никто | Фоновое задание SQLite |
CalDAV | 5000 | Сервер CalDAV для управления календарем |
МонгоБД | 27017 | База данных MongoDB для большинства задач управления данными |
Редис | 6379 | Redis для кэширования и управления состоянием |
SQLite | Никто | База данных SQLite для зашифрованных почтовых ящиков |
Важные пути к файлам
Примечание: Путь к хосту ниже относительно /root/forwardemail.net/self-hosting/
.
Компонент | Путь к хосту | Путь контейнера |
---|---|---|
МонгоБД | ./mongo-backups | /backups |
Редис | ./redis-data | /data |
SQLite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Файл Env | ./.env | /app/.env |
SSL-сертификаты/ключи | ./ssl | /app/ssl/ |
Закрытый ключ | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Сертификат полной цепочки | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
Сертифицированные центры сертификации | ./ssl/cert.pem | /app/ssl/cert.pem |
Закрытый ключ DKIM | ./ssl/dkim.key | /app/ssl/dkim.key |
[!ВАЖНО] Сохраните
.env
файл надежно. Это важно для восстановления в случае сбоя. Вы можете найти это в/root/forwardemail.net/self-hosting/.env
.
Конфигурация
Первоначальная настройка DNS
В выбранном вами DNS-провайдере настройте соответствующие записи DNS. Обратите внимание на все, что находится в скобках (<>
) является динамическим и его необходимо обновлять с учетом вашего значения.
Тип | имя | Содержание | TTL |
---|---|---|---|
A | "@", "." или пусто | <ip_адрес> | авто |
CNAME | апи | <имя_домена> | авто |
CNAME | калдав | <имя_домена> | авто |
CNAME | fe-отскоки | <имя_домена> | авто |
CNAME | IMAP | <имя_домена> | авто |
CNAME | мх | <имя_домена> | авто |
CNAME | поп3 | <имя_домена> | авто |
CNAME | SMTP-протокол | <имя_домена> | авто |
MX | "@", "." или пусто | mx.<имя_домена> (приоритет 0) | авто |
TXT | "@", "." или пусто | "v=spf1 a -все" | авто |
Обратная запись DNS/PTR
Обратные DNS (rDNS) или записи обратного указателя (записи PTR) необходимы для серверов электронной почты, поскольку они помогают проверить легитимность сервера, отправляющего электронное письмо. Каждый поставщик облачных услуг делает это по-разному, поэтому вам нужно будет поискать, как добавить «Обратный DNS» для сопоставления хоста и IP с соответствующим именем хоста. Скорее всего, в сетевом разделе провайдера.
Порт 25 заблокирован
Некоторые интернет-провайдеры и поставщики облачных услуг блокируют порт 25, чтобы избежать злоумышленников. Вам может потребоваться подать заявку в службу поддержки, чтобы открыть порт 25 для SMTP / исходящей почты.
Адаптация
-
Откройте целевую страницу Перейдите на https://<domain_name>, заменив <domain_name> на домен, настроенный в настройках DNS. Вы должны увидеть целевую страницу Forward Email.
-
Войдите в систему и подключите свой домен
- Войдите, используя действительный адрес электронной почты и пароль.
- Введите доменное имя, которое вы хотите настроить (оно должно соответствовать конфигурации DNS).
- Следуйте инструкциям, чтобы добавить необходимые MX а также TXT записи для проверки.
- Полная настройка
- После проверки перейдите на страницу «Псевдонимы», чтобы создать свой первый псевдоним.
- При желании можно настроить SMTP для исходящей электронной почты в Настройки домена. Для этого требуются дополнительные записи DNS.
[!ПРИМЕЧАНИЕ] Никакая информация не отправляется за пределы вашего сервера. Вариант с самостоятельным размещением и начальная учетная запись предназначены только для входа администратора и веб-просмотра для управления доменами, псевдонимами и связанными конфигурациями электронной почты.
Тестирование
Создание вашего первого псевдонима
- Перейдите на страницу псевдонимов Откройте страницу управления псевдонимами:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Добавить новый псевдоним
- Нажмите Добавить псевдоним (вверху справа).
- Введите псевдоним и при необходимости измените настройки электронной почты.
- (Необязательно) Включить IMAP/POP3/CalDAV поддержки, установив флажок.
- Нажмите Создать псевдоним.
- Установить пароль
- Нажмите Создать пароль чтобы создать надежный пароль.
- Этот пароль потребуется для входа в ваш почтовый клиент.
- Настройте свой почтовый клиент
- Используйте почтовый клиент, например Thunderbird.
- Введите псевдоним и сгенерированный пароль.
- Настройте IMAP а также SMTP настройки соответственно.
Настройки почтового сервера
Имя пользователя: <alias name>
Тип | Имя хоста | Порт | Безопасность соединения | Аутентификация |
---|---|---|---|---|
SMTP | smtp.<имя_домена> | 465 | SSL / TLS | Обычный пароль |
IMAP | imap.<имя_домена> | 993 | SSL / TLS | Обычный пароль |
Отправка/получение вашего первого электронного письма
После настройки вы сможете отправлять и получать электронную почту на свой только что созданный и размещенный на собственном сервере адрес электронной почты!
Обслуживание
How do I backup my data
Следуйте за установить скрипт и выбирай option 2
в подсказке.
How do I renew my certificates
Следуйте за установить скрипт и выбирай option 3
в подсказке.
How do I upgrade to the latest forward email code
Следуйте за установить скрипт и выбирай option 4
в подсказке.
How do I restore from a backup
Следуйте за установить скрипт и выбирай option 6
в подсказке.
Поиск неисправностей
Why is the certbot acme challenge failing
Наиболее распространенной ошибкой является то, что certbot / letsencrypt иногда запрашивает 2 проблемы. Вам нужно обязательно добавить BOTH txt-записи.
Пример: Вы можете увидеть два вызова, подобных этому: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
Также возможно, что распространение DNS не завершено. Вы можете использовать такие инструменты, как: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. Это даст вам представление о том, следует ли отражать изменения в вашей записи TXT. Также возможно, что локальный кэш DNS на вашем хосте все еще использует старое, устаревшее значение или не отразил последние изменения.
Другой вариант — использовать автоматизированные изменения DNS с помощью cerbot, установив /root/.cloudflare.ini
файл с токеном api в вашем cloud-init / user-data при начальной настройке VPS или создайте этот файл и запустите скрипт снова. Это автоматически будет управлять изменениями DNS и обновлениями вызовов.
What is the basic auth username and password
Для самостоятельного размещения мы добавляем всплывающее окно первоначальной аутентификации браузера с простым именем пользователя (admin
) и пароль (случайно генерируется при первоначальной настройке). Мы просто добавляем это в качестве защиты на случай, если автоматизация/скрейперы каким-то образом опередят вас при первой регистрации в веб-опыте. Вы можете найти этот пароль после первоначальной настройки в вашем .env
файл под AUTH_BASIC_USERNAME
а также AUTH_BASIC_PASSWORD
.
How do I know what is running
Вы можете запустить docker ps
чтобы увидеть все работающие контейнеры, которые запускаются из docker-compose-self-hosting.yml
файл. Вы также можете запустить docker ps -a
чтобы увидеть все (включая неработающие контейнеры).
How do I know if something isn't running that should be
Вы можете запустить docker ps -a
чтобы увидеть все (включая контейнеры, которые не запущены). Вы можете увидеть журнал выхода или примечание.
How do I find logs
Вы можете получить больше журналов через docker logs -f <container_name>
. Если что-то и вышло, то это, скорее всего, связано с .env
файл настроен неправильно.
В веб-интерфейсе вы можете просматривать /admin/emails
а также /admin/logs
для журналов исходящей электронной почты и журналов ошибок соответственно.
Why are my outgoing emails timing out
Если вы видите сообщение типа Connection timed out при подключении к MX-серверу..., вам, возможно, следует проверить, не заблокирован ли порт 25. Обычно интернет-провайдеры или поставщики облачных услуг блокируют его по умолчанию, и вам, возможно, придется обратиться в службу поддержки или подать тикет, чтобы его открыть.
What tool(s) should I use to test email configuration best practices and IP reputation
Взгляните на наш Часто задаваемые вопросы здесь.
инструменты почтового мастера google
Используйте IP-адрес вашего сервера для проверки следующих сайтов на наличие их в черном списке. К сожалению, у распространенных облачных провайдеров нередко возникают проблемы с репутацией IP из-за использования спама по электронной почте. Если вы видите свой IP в черном списке, рекомендуется запустить новый сервер и проверить новый IP-адрес.