Listmonk — это автономный, самостоятельный, информационный бюллетень и менеджер списков рассылки. Он быстрый, многофункциональный и упакован в один бинарный файл, и единственная зависимость — это база данных Postgres. В этой статье мы узнаем, как установить Listmonk на Ubuntu 25.04. Итак, приступим.

Предпосылки

  • Сервер с Ubuntu 25.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя

Шаг 1. Обновите систему

Свежая установка Ubuntu 25.04 требует обновления пакетов до последних доступных версий.

1
sudo apt update -y && sudo apt upgrade -y

Шаг 2. Установите PostgreSQL

Установите пакет Postgres вместе с пакетом contrib, который добавляет некоторые дополнительные утилиты и функции.

1
sudo apt install postgresql postgresql-contrib

После установки запустите и включите службу PostgreSQL.

1
sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service

Шаг 3. Создание базы данных

Нам нужно создать базу данных для Listmonk для работы.

1
2
3
sudo -u postgres psql -c "CREATE USER listmonk WITH PASSWORD 'yourpassword';"
sudo -u postgres psql -c "CREATE DATABASE listmonk_db OWNER listmonk;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE listmonk_db TO listmonk;"

Шаг 4. Создайте пользователя для запуска

1
sudo useradd -s /usr/sbin/nologin -r -M listmonk

Шаг 5. Установите Listmonk

Загрузите последний бинарный файл со страницы релизов на GitHub.

1
2
3
4
5
wget https://github.com/knadh/listmonk/releases/download/v5.0.0/listmonk_5.0.0_linux_amd64.tar.gz
wget https://github.com/knadh/listmonk/releases/download/v5.0.0/listmonk_5.0.0_checksums.txt
shasum -a 256 -c listmonk_5.0.0_checksums.txt
tar -xvf listmonk_5.0.0_linux_amd64.tar.gz
sudo mv listmonk /usr/local/bin/

Создайте новый файл конфигурации с помощью следующей команды

1
sudo mkdir -p /etc/listmonk/
1
listmonk --new-config
1
2
sudo mv config.toml /etc/listmonk/
sudo chown listmonk:listmonk /etc/listmonk/

Отредактируйте файл config.toml, чтобы он соответствовал вашим данным, включая ваше имя пользователя и безопасный пароль.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[app]
address = "0.0.0.0:9000"
admin_username = "listmonk"
admin_password = "StrongPassword"

# Database.
[db]
host = "localhost"
port = 5432
user = "listmonk"
password = "yourpassword"
database = "listmonk_db"
ssl_mode = "disable"
max_open = 25
max_idle = 25
max_lifetime = "300s"

Сохраните и закройте файл.

Используйте следующую команду для установки таблиц PostgreSQL.

1
listmonk --install

После этого выполните следующую команду, чтобы запустить его.

1
listmonk

Затем перейдите в браузере по адресу http://localhost:9000 чтобы получить доступ к listmonk.

Шаг 6. Настройте службу systemd для запуска Listmonk

1
sudo nano /etc/systemd/system/listmonk.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[Unit]
Description=ListMonk - mailing list and newsletter manager
Requires=network.target
After=network.target
After=postgresql.service

[Service]
Type=simple
User=listmonk
Group=listmonk
WorkingDirectory=/etc/listmonk/
EnvironmentFile=/etc/listmonk/config.toml
ExecStart=/usr/local/bin/listmonk --config /etc/listmonk/config.toml
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target

Включите и запустите listmonk при загрузке.

1
2
sudo systemctl start listmonk.service
sudo systemctl enable listmonk.service

Все, что осталось, — это войти в систему, используя учетные данные администратора, которые мы установили в файле config.toml, и ввести все наши пользовательские настройки на вкладке «Настройки».

Шаг 7. Настройте Nginx в качестве обратного прокси

1
$ sudo apt-get -y install nginx

Создайте обратный конфигурацию прокси-сервера для Listmonk.

1
$ sudo nano /etc/nginx/sites-available/listmonk.conf

Заполните файл следующей конфигурацией.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
server {
    server_name     news.example.com;
    listen          80;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Включите конфигурацию обратной прокси-сервера

1
$ sudo ln -s /etc/nginx/sites-available/listmonk.conf /etc/nginx/sites-enabled/listmonk.conf

Наконец, мы можем проверить, не имеет ли наш файл nginx никакой ошибки.

1
2
$ sudo nginx -t
$ sudo systemctl restart nginx.service

Шаг 8. Получите сертификат TLS от Let’s Encrypt

Мы будем использовать Let’s Encrypt для получения SSL-сертификата бесплатно. Пожалуйста, убедитесь, что вы указали свой поддомен на IP-адрес сервера. Шаги, приведенные ниже, будут работать только в том случае, если вы обслуживаете интерфейс управления с помощью Nginx.

1
$ sudo apt install python3-certbot-nginx

Запрос на Let’s Encrypt SSL.

1
$ sudo certbot certonly --nginx -d news.example.com

Проверьте SSL

Откройте следующую ссылку в вашем веб-браузере для проверки.

1
https://news.example.com

Следующая команда гарантирует, что Certbot может проверить ваш поддомен с помощью вашей конфигурации.

1
$ sudo certbot renew --dry-run

Если пробный запуск прошел без ошибок, все готово. Теперь процесс продления будет автоматизирован.

Он автоматически настраивает /etc/nginx/sites-available/listmonk.conf для включения SSL.

Обновление Listmonk

Загрузите последний бинарный выпуск с GitHub и извлеките его содержимое и замените бинарный файл.

Выполните следующую команду для обновления.

1
listmonk --upgrade

Затем посетите веб-сайт по адресу https://news.example.com для доступа.

Завершение

Собственно на этом всё, теперь вы можете создавать кампании и отправлять сообщения всем своим подписчикам обо всех ваших выгодных предложениях.

Если вам понравился этот пост о том, как установить Listmonk на Ubuntu 25.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.