Установка ПО · 7 min read · Sep 30, 2025
Как установить программное обеспечение для рассылки Mailtrain на Ubuntu 18.04

Mailtrain — это бесплатное, с открытым исходным кодом и саморазмещаемое приложение для рассылки, построенное на Node.js, которое поддерживает базы данных MySQL/MariaDB. Mailtrain позволяет вам добавлять подписчиков вручную, через API или импортировать из CSV-файла. Mailtrain предлагает богатый набор функций, включая редакторы шаблонов, автоматизацию, пользовательские поля, кампании RSS, редактор HTML-кода и многое другое. Если у вас длинный список подписчиков и вы хотите легко им управлять, то Mailtrain — лучший выбор для вас.
В этом руководстве мы покажем вам, как установить приложение для рассылки Mailtrain с помощью Docker на сервере Ubuntu 18.04.
Требования
- Сервер с установленной Ubuntu 18.04.
- Действительное доменное имя, указывающее на IP-адрес вашего сервера.
- Пароль root, настроенный на вашем сервере.
Начало работы
Перед началом вам нужно обновить вашу систему до последней версии. Вы можете сделать это, выполнив следующую команду:
apt-get update -y
apt-get upgrade -yЗатем перезагрузите вашу систему, чтобы применить изменения.
Установка Docker и Docker Compose
По умолчанию последняя версия Docker недоступна в стандартном репозитории Ubuntu 18.04. Поэтому вам нужно будет добавить репозиторий Docker в вашу систему.
Сначала установите необходимые пакеты с помощью следующей команды:
apt-get install curl git apt-transport-https ca-certificates -yЗатем загрузите и добавьте PGP-ключ Docker с помощью следующей команды:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -Далее добавьте репозиторий Docker CE, отредактировав файл /etc/apt/sources.list:
nano /etc/apt/sources.listДобавьте следующую строку в конец файла:
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stableСохраните и закройте файл, когда закончите. Затем обновите репозиторий и установите Docker CE с помощью следующих команд:
apt-get update -y
apt-get install docker-ce -yПосле успешной установки вы можете проверить статус службы Docker с помощью следующей команды:
systemctl status dockerВы должны увидеть следующий вывод:
Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-24 16:15:25 UTC; 21min ago
Docs: https://docs.docker.com
Main PID: 1402 (dockerd)
Tasks: 45
CGroup: /system.slice/docker.service
?? 1402 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
??10312 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.18.0.4 -container-port 3000
Oct 24 16:23:04 ubuntu1804 dockerd[1402]: time="2019-10-24T16:23:04.817021656Z" level=info msg="Layer sha256:b875b006eb8ffb0434ce3a26cb04c9017c
Oct 24 16:24:09 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:09.879265134Z" level=info msg="ignoring event" module=libcontainerd namespace=
Oct 24 16:24:10 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:10.065610315Z" level=warning msg="20676b10252b4a484e32a7d7534b3b386cc2a1e5efd1
Oct 24 16:25:52 ubuntu1804 dockerd[1402]: time="2019-10-24T16:25:52.649551513Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Oct 24 16:26:47 ubuntu1804 dockerd[1402]: time="2019-10-24T16:26:47.428865652Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Oct 24 16:27:41 ubuntu1804 dockerd[1402]: time="2019-10-24T16:27:41.603287585Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Далее установите последнюю версию docker compose с помощью команды pip, как показано ниже:
apt-get install python-pip
apt-get install docker-composeПосле завершения установки вы можете перейти к следующему шагу.
Установка Mailtrain с помощью Docker
Сначала загрузите последнюю версию Mailtrain из репозитория Git с помощью следующей команды:
git clone git://github.com/Mailtrain-org/mailtrain.gitЗатем перейдите в директорию mailtrain и переименуйте файл docker-compose по умолчанию:
cd mailtrain
mv docker-compose.override.yml.tmpl docker-compose.override.ymlДалее запустите контейнеры Mailtrain с помощью следующей команды:
docker-compose up -dЭта команда загрузит и запустит контейнеры mailtrain, mysql и redis, как показано ниже:
Creating network "mailtrain_default" with the default driver
Creating volume "mailtrain_mailtrain-node-config" with default driver
Creating volume "mailtrain_mailtrain-node-data" with default driver
Creating volume "mailtrain_mailtrain-redis-data" with default driver
Creating volume "mailtrain_mailtrain-node-reports" with default driver
Creating volume "mailtrain_mailtrain-mysq-data" with default driver
Pulling redis (redis:3.0)...
3.0: Pulling from library/redis
f5cc0ee7a6f6: Pull complete
5fc25ed18e87: Pull complete
e025bc8872f6: Pull complete
77c68b51b836: Pull complete
7c403ece3755: Pull complete
0a653bd338f4: Pull complete
31531fd948c6: Pull complete
Digest: sha256:730b765df9fe96af414da64a2b67f3a5f70b8fd13a31e5096fee4807ed802e20
Status: Downloaded newer image for redis:3.0
Pulling mysql (mysql:5.7)...
5.7: Pulling from library/mysql
80369df48736: Pull complete
e8f52315cb10: Pull complete
cf2189b391fc: Pull complete
cc98f645c682: Pull complete
27a27ac83f74: Pull complete
fa1f04453414: Pull complete
d45bf7d22d33: Pull complete
c7d49ffebc56: Pull complete
511a8052b204: Pull complete
5d5df4c12444: Pull complete
d482603a2922: Pull complete
Digest: sha256:44b33224e3c406bf50b5a2ee4286ed0d7f2c5aec1f7fdb70291f7f7c570284dd
Status: Downloaded newer image for mysql:5.7
Building mailtrain
:
:
Removing intermediate container 20676b10252b
---> 0abdb4121f54
Step 6/9 : COPY . /app
---> c8af7560e844
Step 7/9 : EXPOSE 3000
---> Running in 3ff55179a229
Removing intermediate container 3ff55179a229
---> d83b49d4b24b
Step 8/9 : ENTRYPOINT ["bash", "/app/docker-entrypoint.sh"]
---> Running in e5baf6a1ea2e
Removing intermediate container e5baf6a1ea2e
---> c4f899a0f8f9
Step 9/9 : CMD ["node", "index.js"]
---> Running in fe94519d2bd3
Removing intermediate container fe94519d2bd3
---> 2808c2972f20
Successfully built 2808c2972f20
Successfully tagged mailtrain:latest
WARNING: Image for service mailtrain was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating mailtrain_redis_1 ... done
Creating mailtrain_mysql_1 ... done
Creating mailtrain_mailtrain_1 ... done
Теперь вы можете проверить все запущенные контейнеры с помощью следующей команды:
docker psВы должны увидеть следующий вывод:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e837c586c39 mailtrain:latest "bash /app/docker-en…" About a minute ago Up 55 seconds 0.0.0.0:3000->3000/tcp mailtrain_mailtrain_1
49a4e69a09c6 mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp mailtrain_mysql_1
a1449b64a196 redis:3.0 "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp mailtrain_redis_1
Доступ к веб-интерфейсу Mailtrain
Контейнер Mailtrain теперь запущен и слушает на порту 3000. Далее откройте ваш веб-браузер и введите URL http://your-server-ip:3000. Вы должны увидеть панель управления Mailtrain на следующей странице:

Теперь нажмите кнопку Войти. Вы должны увидеть следующую страницу:

Введите имя пользователя и пароль по умолчанию admin/admin и нажмите кнопку Войти. Вы должны увидеть панель управления Mailtrain на следующей странице:

Настройка Nginx как обратного прокси для Mailtrain
Далее вам нужно будет создать Nginx как обратный прокси для Mailtrain на порту 3000. Для этого сначала установите веб-сервер Nginx, выполнив следующую команду:
apt-get install nginx -yЗатем создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:
nano /etc/nginx/sites-available/mailtrain.confДобавьте следующие строки:
upstream mailtrain {
server 127.0.0.1:3000 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name example.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://mailtrain/;
}
}
Сохраните и закройте файл, когда закончите. Затем проверьте Nginx на наличие синтаксических ошибок с помощью следующей команды:
ginx -tВы должны увидеть следующий вывод:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Далее включите файл виртуального хоста Nginx с помощью следующей команды:
ln -s /etc/nginx/sites-available/mailtrain.conf /etc/nginx/sites-enabled/Наконец, перезапустите веб-сервер Nginx, чтобы применить конфигурацию:
systemctl restart nginxЗащита Mailtrain с помощью Let’s Encrypt
Далее вам нужно будет установить клиент Certbot, чтобы защитить Mailtrain с помощью бесплатного SSL Let’s Encrypt. По умолчанию последняя версия Certbot недоступна в стандартном репозитории Ubuntu 18.04. Поэтому добавьте репозиторий Certbot, выполнив следующую команду:
add-apt-repository ppa:certbot/certbotЗатем обновите репозиторий и установите Certbot с помощью следующей команды:
apt-get update -y
apt-get install certbot python-certbot-nginx -yПосле установки выполните следующую команду, чтобы загрузить бесплатный SSL Let’s Encrypt для вашего домена example.com и настроить Nginx для использования этого сертификата.
certbot --nginx -d example.comВведите свой адрес электронной почты и согласитесь с Условиями обслуживания. После успешной установки сертификата вы должны увидеть следующий вывод:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Поздравляем! Вы успешно включили https://example.com
Вы должны протестировать вашу конфигурацию на:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ВАЖНЫЕ ЗАМЕТКИ:
- Поздравляем! Ваш сертификат и цепочка были сохранены по адресу:
/etc/letsencrypt/live/example.com/fullchain.pem
Ваш файл ключа был сохранен по адресу:
/etc/letsencrypt/live/example.com/privkey.pem
Ваш сертификат истечет 22 января 2020 года. Чтобы получить новую или измененную
версию этого сертификата в будущем, просто снова запустите certbot
с опцией "certonly". Чтобы не взаимодействуя обновить *все*
ваши сертификаты, выполните "certbot renew"
- Ваши учетные данные аккаунта были сохранены в вашем каталоге конфигурации Certbot
по адресу /etc/letsencrypt. Вам следует сделать
безопасную резервную копию этой папки сейчас. Этот каталог конфигурации также будет
содержать сертификаты и закрытые ключи, полученные Certbot, поэтому
регулярное создание резервных копий этой папки является идеальным.
- Если вам нравится Certbot, пожалуйста, подумайте о поддержке нашей работы:
Пожертвовать ISRG / Let's Encrypt: https://letsencrypt.org/donate
Пожертвовать EFF: https://eff.org/donate-le
Теперь вы можете безопасно получить доступ к вашему приложению Mailtrain, используя URL https://example.com.
Заключение
В приведенном выше руководстве мы узнали, как установить Mailtrain с помощью docker на сервере Ubuntu 18.04. Мы также узнали, как настроить Nginx как обратный прокси для Mailtrain и защитить Mailtrain с помощью бесплатного SSL Let’s Encrypt. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.
Get new posts in your inbox
No spam. Unsubscribe anytime.