Listmonk を使って独自のニュースレターを作成する方法
Listmonk は、シンプルでオールインワンの Linux 用自己ホスト型ニュースレターおよびメーリング リスト ソリューションです。従来のメーリング リスト プログラムとは異なり、軽量で高速な無駄のないプラットフォームを提供することに優れています。ここでは、Ubuntu で Docker を使用して Listmonk をインストールする方法と、それを使用してニュースレターを送信し始める方法を説明します。
Listmonk を使用する利点
Listmonkの最大のセールス ポイントの 1 つは、インターネット上のほぼすべての外部メール配信サーバーと連携できることです。これは、Gmail などのホスト型メール プロバイダーまたは独自のセルフホスト型メール設定を使用してニュースレターを送信できることを意味します。
Listmonk には、プログラム可能な電子メール テンプレートを作成する機能も備わっています。これにより、ユーザーがメッセージを受信するコンテキストに応じて調整できるカスタム電子メールを作成できるようになります。
最後に、Listmonk には、プログラム内で実行されているすべてのニュースレターを追跡するための直感的な分析モジュールが付属しています。各メッセージが獲得したクリック数と、メーリング リスト全体が一定期間内に達成した全体的なビューの両方を追跡できます。
Listmonkのインストール
Docker と Docker Compose の取得
前提:この記事は、常時接続の VPS 上で Listmonk を実行していることを前提としています。さらに、VPS を指す A および PTR レコードを持つドメイン名がすでにあることも前提としています。
まず、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
次のコマンドを実行して、Ubuntu システム全体を更新およびアップグレードします。
sudo apt update && sudo apt upgrade
Docker Compose およびそのコンポーネントの依存関係とともに Docker エンジンをインストールします。
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 = ""
新しい構成ファイルを保存し、Listmonk インスタンスの docker-compose.yml を作成します。
nano. /docker-compose.yml
次のコード ブロックを新しいファイル内に貼り付けます。yml ファイル。これは、タイムゾーンで動作するように変更した Listmonk のデフォルトの docker-compose.yml ファイルです。
---
version: "3.7"
x-app-defaults:
restart: unless-stopped
image: listmonk/listmonk:latest
ports:
- 9000:9000
networks:
- listmonk
environment:
- 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
Listmonk Docker コンテナのデプロイ
次の Docker コマンドを実行して、インスタンスのデータベース ファイルを生成します。
docker compose up db
新しい SSH 接続を開き、Docker コンテナ内で「listmonk」バイナリを実行して Listmonk のビルド プロセスを開始します。
docker compose run --rm app. /listmonk --install
Enterビルド スクリプトで実行中のデータベース上の既存のデータを消去するかどうかを尋ねられたら、「Y」と入力し、キーを押します。これにより、Listmonk コンテナーの起動時にクリーンな状態が保たれます。
インスタンスのデータベースの SSH セッションに戻り、Ctrl+ を押してCセッションを正常に終了します。
最後に、Listmonk のすべての Docker コンテナを適切な設定で再起動します。
docker compose up -d app db
Nginx リバースプロキシの作成
Listmonk が Docker インスタンス上で実行を開始しても、それにリンクするリバース プロキシを構成するまでは、Listmonk にパブリックにアクセスすることはできません。Nginx リバース プロキシを構成するには、以下の手順に従ってください。
Listmonk インスタンスの新しいサイト構成ファイルを作成します。
sudo nano /etc/nginx/sites-available/listmonk
次のコード ブロックを新しいサイト構成ファイル内に貼り付けます。
server {
server_name listmonk.myvpsserver.top;
location / {
proxy_pass http://127.0.0.1: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 証明書をインストールすることです。
コア スナップ デーモンがシステムで実行されていることを確認します。
sudo snap install core
電子フロンティア財団 (EFF) から certbot snap パッケージをインストールします。このユーティリティを使用すると、サーバーがホスト間の接続を暗号化するために使用できる SSL 証明書を要求できます。
sudo snap install certbot --classic
certbot パッケージを EFF に登録して、適切に実行されているかどうかをテストします。
sudo certbot register --agree-tos -m you@your-email.invalid
次のコマンドを実行して、Listmonk インストール用の新しい SSL 証明書を取得します。
sudo certbot --nginx -d listmonk.myvpsserver.top
Listmonk へのアクセスと構成
Web ブラウザを開き、Listmonk インスタンスのアドレスに移動します。これにより、ログイン ボタンのあるシンプルな Web ページが表示されます。
「ログイン」ボタンをクリックし、ユーザー名とパスワードの両方のフィールドに「listmonk」と入力します。
これにより、Listmonk インスタンスのメイン ダッシュボードがロードされます。ページの左側のサイドバーにある「設定」オプションをクリックします。
「ルート URL」テキストボックスの値を、Listmonk インスタンスの完全なアドレスに置き換えます。
ページの右上隅にある「保存」をクリックして、新しい設定を保存します。
Gmail アカウントを Listmonk にリンクする
Gmail アカウントにログインし、ページの右上隅にあるユーザーのアイコンをクリックします。
「Google アカウントを管理」をクリックします。
ページの左側のサイドバーにある「セキュリティ」カテゴリをクリックします。「セキュリティ」サブページ内の「2 段階認証」オプションを選択します。
ページの一番下までスクロールし、「アプリ パスワード」ボタンをクリックします。
これにより、リンクするアプリケーションの名前を尋ねるプロンプトが表示されます。「listmonk」と入力し、「作成」をクリックします。
次に、ページには、16 個のランダムな文字が 4 つにグループ化された小さなウィンドウがポップアップ表示されます。これをテキスト ファイルにコピーし、「完了」をクリックします。
Listmonk ダッシュボード ページに戻り、ページの左側のサイドバーにある [設定] オプションをクリックします。
ページ上部のバーにある「SMTP」タブを選択します。「認証プロトコル」ドロップダウンボックスの下にある「Gmail」リンクをクリックします。
「ユーザー名」フィールドに Gmail アカウントの完全なメール アドレスを入力します。
「パスワード」フィールドをクリックし、Gmail Web サイトからコピーした 16 文字の文字列をスペースを入れずに入力します。
「保存」をクリックして新しい SMTP 設定を適用します。
最後に、[全般] タブに移動し、[デフォルトの送信元アドレス] テキストボックスの値を Gmail アカウントのアドレスに置き換えます。
新しい Listmonk ニュースレターの作成
Listmonk ダッシュボード ページに移動し、「リスト」カテゴリをクリックして、「すべてのリスト」オプションをクリックします。
ページの右上隅にある「新規」ボタンを選択します。
新しいメーリング リストの詳細を入力し、[保存] をクリックします。
それでおしまい。Listmonkのインストールが完了しました。
独自のニュースレターをホストすることは、独自のデジタル プラットフォーム作成の一部にすぎません。Ghost を使用して Linux でブログをホストすることでこれを拡張し、Kanboard を使用して独自の Web カンバン ボードを実行する方法を学びます。
画像クレジット:ニュースレター – 123RF が古いタイプライターで書いたもの。すべての変更とスクリーンショットは Ramces Red によるものです。
コメントを残す