Listmonk — это простое универсальное решение для самостоятельного размещения информационных бюллетеней и списков рассылки для Linux. В отличие от традиционных программ списков рассылки, он обеспечивает простую, легкую и быструю платформу. Здесь мы покажем вам, как установить Listmonk с помощью Docker в Ubuntu и как начать использовать его для отправки информационных бюллетеней.
Преимущества использования Listmonk
Одним из главных преимуществ Листмонк является то, что он может работать практически с любым внешним сервером доставки почты в Интернете. Это означает, что вы м
Contents
Преимущества использования Listmonk
ни через поставщика услуг электронной почты, например Gmail или ваша собственная настройка электронной почты .Listmonk также имеет возможность создавать программируемые шаблоны электронной почты. Это позволяет создавать собственные электронные письма, которые могут настраиваться в зависимости от контекста, в котором пользователь получает сообщение.
Наконец, Listmonk поставляется с интуитивно понятным аналитическим модулем, позволяющим отслеживать каждый информационный бюллетень, запущенный внутри программы. Он может отслеживать как количество кликов, полученных каждым сообщением, так и общее количество просмотров всего списка рассылки за определенный период времени.
Установка Listmonk
Получение Docker и Docker Compose
Предположение: В этой статье предполагается, что вы используете Listmonk на постоянно включенном VPS. Кроме того, предполагается, что у вас уже есть доменное имя с записью A и PTR, указывающей на ваш VPS.
Для начала получите ключ репозитория для пакетов Docker и Docker Compose:
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 и Docker Compose:
sudo nano /etc/apt/sources.list.d/docker.list
Напишите следующую строку кода внутри нового файла репозитория:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stableУстановка
Получение Docker и Docker Compose
нив следующую команду:sudo apt update && sudo apt upgradeУстановите Docker Engine вместе с Docker Compose и зависимостями его компонентов:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git curlУбедитесь, что у вашего текущего пользователя есть необходимые разрешения на доступ к двоичным файлам Docker:
sudo usermod -aG docker ramcesНастройка и развертывание Listmonk
Создайте новую папку для файлов Docker в домашнем каталоге текущего пользователя:
mkdir ~/listmonk && cd ~/listmonkСоздайте новый файл конфигурации для вашего экземпляра Listmonk:
nano ./config.tomlВставьте следующий код в новый файл конфигурации:
[app] address = "0.0.0.0:9000" admin_username = "listmonk" admin_password = "listmonk" [db] host = "listmonk_db" port = 5432 user = "listmonk" password = "INSERT_RANDOM_PASSWORD_HERE" database = "listmonk" ssl_mode = "disable" max_open = 25 max_idle = 25 max_lifetime = "300s" params = ""Примечание. Вы можете легко создать случайный пароль с помощью команды:
cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1
Сохраните новый файл конфигурации, затем создайте docker-compose.yml вашего экземпляра Listmonk:
nano ./docker-compose.ymlВставьте следующий блок кода в новый файл.yml. Это файл docker-compose.yml по умолчанию для Listmonk, который я изменил для работы с моим часовым поясом:
--- version: "3.7" x-app-defaults: restart: unless-stopped image: listmonk/listmonk:latest ports: - 9000:9000 networks: Настройка и развертывание Listmonk>: - TZ=Asia/Manila x-db-defaults: image: postgres:13 ports: - 9432:5432 networks: - listmonk environment: - POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE - POSTGRES_USER=listmonk - POSTGRES_DB=listmonk restart: unless-stopped healthcheck: test: - CMD-SHELL - pg_isready -U listmonk interval: 10s timeout: 5s retries: 6 services: db: image: postgres:13 ports: - 9432:5432 networks: - listmonk environment: - POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE - POSTGRES_USER=listmonk - POSTGRES_DB=listmonk restart: unless-stopped healthcheck: test: - CMD-SHELL - pg_isready -U listmonk interval: 10s timeout: 5s retries: 6 container_name: listmonk_db volumes: - type: volume source: listmonk-data target: /var/lib/postgresql/data app: restart: unless-stopped image: listmonk/listmonk:latest ports: - 9000:9000 networks: - listmonk environment: - TZ=Asia/Manila container_name: listmonk_app depends_on: - db volumes: - ./config.toml:/listmonk/config.toml networks: listmonk: null volumes: listmonk-data: nullРазвертывание Docker-контейнера Listmonk
Выполните следующую команду Docker, чтобы создать файл базы данных вашего экземпляра:
docker compose up dbОткройте новое SSH-соединение, затем запустите процесс сборки Listmonk, запустив двоичный файл «listmonk» внутри его контейнера Docker:
docker compose run --rm app ./listmonk --installВведите «Y», затем нажмите Enter, когда сценарий сборки попросит вас стереть все существующие данные в работающей базе данных. Это гарантирует, что ваш контейнер Listmonk будет чистым при запуске.
Вернитесь к сеансу SSH для базы данных вашего экземпляра, затем нажмите Ctrl+ C, чтобы корректно завершить сеанс.
И наконец, перезапустите все контейнеры Docker для Listmonk с правильными настройками:
docker compose up -d app db
Создание обратного прокси-сервера Nginx
Несмотря на то, что Listmonk начал работать на экземпляре Docker, он не доступен публично, пока вы не настроите обратный прокси для ссылки на него. Следуйте инструкциям ниже, чтобы настроить обратный прокси-сервер Nginx.
Создайте новый файл конфигурации сайта для вашего экземпляра Listmonk:
sudo nano /etc/nginx/sites-available/listmonkВставьте следующий блок кода в файл конфигурации нового сайта:
server { server_name listmonk.myvpsserver.top; location / {Развертывание Docker-контейнера Listmonk
an>9000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; } }Свяжите новый файл конфигурации из /etc/nginx/sites-available с /etc/nginx/sites-enabled:
sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/Перезапустите демон сервера Nginx, выполнив следующую команду:
sudo systemctl reload nginx
Установка SSL-сертификата
После настройки обратного прокси-сервера ваш сайт станет общедоступным. Однако это небезопасно, поскольку отсутствует сертификат SSL. Таким образом, следующим шагом будет установка SSL-сертификата.
Убедитесь, что в вашей системе запущен демон core snap:
sudo snap install coreУстановите пакет оснастки certbot от Electronic Frontier Foundation (EFF). Эта утилита позволит вам запросить сертификат SSL, который ваш сервер сможет использовать для шифрования соединений между хостами.
sudo snap install certbot --classicПроверьте, правильно ли работает ваш пакет certbot, зарегистрировав его в EFF:
sudo certbot register --agree-tos -m you@your-email.invalidПолучите новый сертификат SSL для вашей установки Listmonk, выполнив следующую команду:
sudo certbotСоздание обратного прокси-сервера Nginxserver.top Доступ к Listmonk и его настройка
Откройте веб-браузер, затем перейдите по адресу вашего экземпляра Listmonk. Откроется простая веб-страница с кнопкой входа в систему.
Нажмите кнопку «Войти», затем введите «listmonk» в полях «Имя пользователя» и «Пароль».
При этом загрузится главная панель управления вашего экземпляра Listmonk. Нажмите кнопку «Настройки» на левой боковой панели страницы.
Замените значение текстового поля «Корневой URL-адрес» полным адресом вашего экземпляра Listmonk.
Нажмите «Сохранить» в правом верхнем углу страницы, чтобы сохранить новые настройки.
Примечание. Не забудьте изменить имя пользователя и пароль по умолчанию.
Привязка учетной записи Gmail к Listmonk
Войдите в свою учетную запись Gmail, затем щелкните значок своего пользователя в правом верхнем углу страницы.
Нажмите «Управление учетной записью Google».
Установка SSL-сертификатаle-account-highlight.png" alt="Скриншот, на котором выделена ссылка «Управление» для учетной записи Gmail.">Нажмите категорию «Безопасность» на левой боковой панели страницы. Выберите опцию «Двухэтапная аутентификация» на подстранице «Безопасность».
Прокрутите страницу вниз и нажмите кнопку «Пароли приложений».
Появится запрос на название приложения, которое вы хотите связать. Введите «listmonk» и нажмите «Создать».
На странице появится небольшое окно с 16 случайными символами, сгруппированными по четыре. Скопируйте это в текстовый файл и нажмите «Готово».
Вернитесь на страницу панели управления Listmonk и нажмите кнопку «Настройки» на левой боковой панели страницы.
Выберите вкладку «SMTP» на верхней панели страницы. Нажмите ссылку «Gmail» под раскрывающимся списком «Протокол аутентификации».
Доступ к Listmonk и его настройкаСкриншот, на котором выделена ссылка на шаблон Gmail.">Введите полный адрес электронной почты вашей учетной записи Gmail в поле «Имя пользователя».
Нажмите на поле «Пароль», затем введите 16-значную строку, скопированную с веб-сайта Gmail, без пробелов.
Нажмите «Сохранить», чтобы применить новые настройки SMTP.
Наконец, перейдите на вкладку «Общие» и замените значение текстового поля «Адрес отправителя по умолчанию» на адрес вашей учетной записи Gmail.
Создание нового информационного бюллетеня Listmonk
Перейдите на страницу панели управления Listmonk, выберите категорию «Списки», затем выберите параметр «Все списки».
Нажмите кнопку «Создать» в правом верхнем углу страницы.
Заполните данные нового списка рассылки, затем нажмите «Сохранить».
Вот и все. Вы завершили установку Listmonk.
Размещение собственного информационного бюллетеня — это лишь часть создания собственной цифровой платформы. Узнайте, как продлить это действие на Привязка учетной записи Gmail к Listmonkстинг блога в Linux с использованием Ghost и запустите собственную веб-доску Канбан с помощью Kanboard .
Изображение предоставлено: Информационный бюллетень, написанный на старой пишущей машинке. от 123RF. Все изменения и скриншоты Рамсеса Реда.
Создание нового информационного бюллетеня Listmonk