Как установить Listmonk на Ubuntu 25.04
Дата публикации: 2025-05-19T13:58:25
Теги: ["self-hosted", "ubuntu", "newsletter"]
[Listmonk](https://listmonk.app/) — это автономный, самостоятельный, информационный бюллетень и менеджер списков рассылки. Он быстрый, многофункциональный и упакован в один бинарный файл, и единственная зависимость — это база данных Postgres. В этой статье мы узнаем, как установить Listmonk на Ubuntu 25.04. Итак, приступим.
<!--more-->
Предпосылки
- Сервер с Ubuntu 25.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Конвенции
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo. $ - данные команды должны выполняться от имени обычного пользователя
Шаг 1. Обновите систему
Свежая установка Ubuntu 25.04 требует обновления пакетов до последних доступных версий.
sudo apt update -y && sudo apt upgrade -y
Шаг 2. Установите PostgreSQL
Установите пакет Postgres вместе с пакетом contrib, который добавляет некоторые дополнительные утилиты и функции.
sudo apt install postgresql postgresql-contrib
После установки запустите и включите службу PostgreSQL.
sudo systemctl enable postgresql.service && sudo systemctl start postgresql.service
Шаг 3. Создание базы данных
Нам нужно создать базу данных для Listmonk для работы.
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. Создайте пользователя для запуска
sudo useradd -s /usr/sbin/nologin -r -M listmonk
Шаг 5. Установите Listmonk
Загрузите последний бинарный файл со страницы релизов на [GitHub](https://github.com/knadh/listmonk/releases).
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/
Создайте новый файл конфигурации с помощью следующей команды
sudo mkdir -p /etc/listmonk/
listmonk --new-config
sudo mv config.toml /etc/listmonk/ sudo chown listmonk:listmonk /etc/listmonk/
Отредактируйте файл `config.toml`, чтобы он соответствовал вашим данным, включая ваше имя пользователя и безопасный пароль.
[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.
listmonk --install
После этого выполните следующую команду, чтобы запустить его.
listmonk
Затем перейдите в браузере по адресу `http://localhost:9000` чтобы получить доступ к listmonk.
Шаг 6. Настройте службу systemd для запуска Listmonk
sudo nano /etc/systemd/system/listmonk.service
[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 при загрузке.
sudo systemctl start listmonk.service sudo systemctl enable listmonk.service
Все, что осталось, — это войти в систему, используя учетные данные администратора, которые мы установили в файле `config.toml`, и ввести все наши пользовательские настройки на вкладке «Настройки».
Шаг 7. Настройте Nginx в качестве обратного прокси
$ sudo apt-get -y install nginx
Создайте обратный конфигурацию прокси-сервера для Listmonk.
$ sudo nano /etc/nginx/sites-available/listmonk.conf
Заполните файл следующей конфигурацией.
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;
}
}
Включите конфигурацию обратной прокси-сервера
$ sudo ln -s /etc/nginx/sites-available/listmonk.conf /etc/nginx/sites-enabled/listmonk.conf
Наконец, мы можем проверить, не имеет ли наш файл nginx никакой ошибки.
$ sudo nginx -t $ sudo systemctl restart nginx.service
Шаг 8. Получите сертификат TLS от Let's Encrypt
Мы будем использовать Let's Encrypt для получения SSL-сертификата бесплатно. Пожалуйста, убедитесь, что вы указали свой поддомен на IP-адрес сервера. Шаги, приведенные ниже, будут работать только в том случае, если вы обслуживаете интерфейс управления с помощью Nginx.
$ sudo apt install python3-certbot-nginx
Запрос на Let’s Encrypt SSL.
$ sudo certbot certonly --nginx -d news.example.com
Проверьте SSL
Откройте следующую ссылку в вашем веб-браузере для проверки.
https://news.example.com
Следующая команда гарантирует, что Certbot может проверить ваш поддомен с помощью вашей конфигурации.
$ sudo certbot renew --dry-run
Если пробный запуск прошел без ошибок, все готово. Теперь процесс продления будет автоматизирован.
Он автоматически настраивает `/etc/nginx/sites-available/listmonk.conf` для включения SSL.
Обновление Listmonk
Загрузите последний бинарный выпуск с [GitHub](https://github.com/knadh/listmonk/releases) и извлеките его содержимое и замените бинарный файл.
Выполните следующую команду для обновления.
listmonk --upgrade
Затем посетите веб-сайт по адресу `https://news.example.com` для доступа.
Завершение
Собственно на этом всё, теперь вы можете создавать кампании и отправлять сообщения всем своим подписчикам обо всех ваших выгодных предложениях.
Если вам понравился этот пост о том, как установить Listmonk на Ubuntu 25.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.