如何使用 Listmonk 建立自己的電子報

如何使用 Listmonk 建立自己的電子報

Listmonk 是一款簡單、一體化的 Linux 自寄通訊和郵件清單解決方案。與傳統的郵件清單程式不同,它擅長提供輕量級且快速的精實平台。在這裡,我們向您展示如何在 Ubuntu 上使用 Docker 安裝 Listmonk,以及如何開始使用它來發送電子報。

使用Listmonk的優點

Listmonk的最大賣點之一是它可以與互聯網上幾乎任何外部郵件傳遞伺服器一起工作。這表示您可以使用 Gmail 等託管郵件提供者或您自己的自架郵件設定來傳送新聞通訊。

顯示新 Listmonk 實例概覽的螢幕截圖。

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 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 = ""

儲存新的設定文件,然後建立 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

鍵入“Y”,然後Enter在建置腳本要求您擦除正在執行的資料庫上的任何現有資料時按按。這將確保您的 Listmonk 容器在啟動時是乾淨的。

終端機顯示 Listmonk Docker 容器的資料庫清除提示。

傳回實例資料庫的 SSH 會話,然後按Ctrl+C正常結束會話。

顯示臨時資料庫正常關閉的終端。

最後,使用正確的設定重新啟動 Listmonk 的所有 Docker 容器:

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 / {
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 實例的位址。這將打開一個帶有登入按鈕的簡單網頁。

顯示 Listmonk 登入畫面的螢幕截圖。

按一下「登入」按鈕,然後在「使用者名稱」和「密碼」欄位中輸​​入「listmonk」。

顯示憑證提示的螢幕截圖。

這樣做將載入 Listmonk 實例的主儀表板。點擊頁面左側欄上的“設定”選項。

螢幕截圖突出顯示

將「Root URL」文字方塊的值替換為 Listmonk 實例的完整位址。

螢幕截圖突出顯示

點擊頁面右上角的“儲存”以儲存新設定。

將 Gmail 帳號連結到 Listmonk

登入您的 Gmail 帳戶,然後點擊頁面右上角的使用者圖示。

突出顯示 Gmail 中的使用者圖示的螢幕截圖。

點選「管理您的 Google 帳戶」。

螢幕截圖突出顯示

點選頁面左側邊欄上的「安全性」類別。選擇安全子頁面內的「兩步驟驗證」選項。

螢幕截圖突出顯示

向下捲動到頁面底部,然後按一下「應用程式密碼」按鈕。

螢幕截圖顯示

這將彈出一個提示,詢問您要連結的應用程式的名稱。輸入“listmonk”,然後按一下“建立”。

然後頁面會彈出一個小窗口,其中有 16 個隨機字符,四人一組。將其複製到文字文件,然後按一下“完成”。

顯示範例應用程式密碼的螢幕截圖。

返回 Listmonk 儀表板頁面,然後點擊頁面左側邊欄上的「設定」選項。

選擇頁面上方欄上的「SMTP」標籤。按一下「身份驗證協定」下拉方塊下方的「Gmail」連結。

反白 Gmail 範本連結的螢幕截圖。

在「使用者名稱」欄位中輸​​入您的 Gmail 帳戶的完整電子郵件地址。

點擊「密碼」字段,然後輸入您從 Gmail 網站複製的 16 個字母的字串(不含空格)。

顯示完整 Gmail 連結的螢幕截圖。

按一下「儲存」以應用新的 SMTP 設定。

螢幕截圖突出顯示

最後,前往「常規」選項卡,然後將「預設’寄件者’地址」文字方塊的值替換為您的 Gmail 帳戶的地址。

建立新的 Listmonk 時事通訊

前往 Listmonk 儀表板頁面,按一下「清單」類別,然後按一下「所有清單」選項。

螢幕截圖突出顯示

選擇頁面右上角的「新建」按鈕。

螢幕截圖突出顯示

填寫新郵件列表的詳細信息,然後按一下「儲存」。

顯示基本公共新聞通訊清單的螢幕截圖。

就是這樣。您已完成 Listmonk 的安裝。

託管您自己的電子報只是創建您自己的數位平台的一部分。了解如何透過使用 Ghost 在 Linux 中託管部落格使用 Kanboard 運行您自己的網頁看板來擴展此功能。

圖片來源:電子報​​ – 由 123RF 在舊打字機上撰寫。所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *