listmonk:优秀的开源自托管邮件营销平台Docker安装教程

意外富翁 · 8个月前 · 技术 · 41 · 0

正在寻找一款强大、免费且能完全掌控数据的邮件营销工具?Listmonk 是一款高性能的开源自托管通讯(Newsletter)和邮件列表管理器。告别昂贵的月费,立即部署您的专属邮件平台。

Listmonk 是什么?

Listmonk 是一款现代、功能强大的开源自托管邮件营销平台。与 Mailchimp、Sendinblue 等云服务不同,Listmonk 是完全免费的软件,您可以将其部署在自己的服务器上。这意味着您对订阅者数据、邮件列表和营销活动拥有 100% 的控制权,无需按订阅人数或邮件发送量支付昂贵的月费。

它采用 Go 语言和 PostgreSQL 数据库构建,打包成一个轻量、高效的独立二进制文件,确保了极高的性能和简便的部署。

为什么选择 Listmonk?核心优势概览

对于开发者、技术型营销人员和任何希望摆脱商业邮件服务束缚的组织而言,Listmonk 提供了无可比拟的优势。

  • 完全免费与开源:Listmonk 遵循 AGPLv3 许可证,无任何隐藏费用。您可以自由地使用、审查、修改和分发该软件。
  • 数据归您所有 (Data Ownership):通过自托管,所有订阅者信息和营销数据都存储在您自己的基础设施上,彻底解决了数据隐私和第三方数据滥用的担忧。
  • 极具成本效益 (Cost-Effective):您唯一的开销是服务器和邮件发送服务(如 Amazon SES, SendGrid, Mailgun 等 SMTP 中继)的费用,这通常远低于商业 SaaS 工具的订阅费,尤其是在订阅列表规模庞大时。
  • 高性能与高效率:基于 Go 语言的并发特性,Listmonk 能以极低的资源占用高效处理数百万级别的订阅者和邮件发送任务。
  • 强大的API支持:Listmonk 采用 API 优先的设计理念,其所有功能都通过清晰的 RESTful API 暴露,极易与您的网站、CRM 或其他系统进行深度集成。

Listmonk 的主要功能

Listmonk 不仅是 Mailchimp 的免费替代品,它还提供了一整套专业级的邮件营销功能:

功能模块 详细说明
订阅者管理 支持列表分段、自定义字段、批量导入导出以及订阅者状态管理(已确认、未确认、已退订)。
邮件活动 (Campaigns) 可视化编辑器与Markdown支持,允许您轻松创建、排程和发送精美的邮件通讯。
自动化与事务性邮件 通过强大的模板语言,您可以发送由API触发的事务性邮件,如欢迎邮件、密码重置、订单确认等。
性能分析与追踪 内置仪表盘提供关键指标的实时追踪,包括打开率、点击率、退订率等,帮助您优化营销策略。
模板管理 可重复使用的邮件模板库,支持复杂的逻辑判断和变量替换,实现高度个性化的邮件内容。

谁最适合使用 Listmonk?

  • 开发者与技术爱好者:希望对自己的工具栈有完全控制,并享受定制和集成乐趣的人。
  • 中小型企业:希望以极低成本运行专业邮件营销,同时保障数据安全的企业。
  • 拥有大型邮件列表的组织:当订阅者数量超过数万时,商业工具的费用会急剧上升,自托管的 Listmonk 能为您节省巨额开销。
  • 注重隐私的个人与非营利组织:不希望将用户数据托管在第三方商业平台的用户。

如何开始使用 Listmonk

部署Listmonk非常灵活,最常见的方式是:

  1. 使用 Docker(推荐):官方提供随时可用的 Docker 镜像,只需简单的 docker-compose 命令即可在几分钟内启动并运行一个完整的实例。
  2. 二进制文件部署:直接从 GitHub Releases 页面下载对应您操作系统的二进制文件,搭配 PostgreSQL 数据库即可手动部署。

Docker 安装 Listmonk

官方文档介绍的是用 docker-compose 安装,默认配置也将安装 Postgres DB,Postgres 是必须的,许多 Docker 项目都依赖 Postgres 数据库,所以建议独立安装 Postgres,让许多服务连接同一个数据库容器,以下教程也是在已经有 Postgres 服务的基础上安装 Listmonk,如果你想要安装 Listmonk 和 Postgres,可以使用官方的命令一键安装

官方一键安装命令:

# Download the compose file to the current directory.
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml

# Run the services in the background.
docker compose up -d

使用已有数据库安装与官方文档不同的是,需要先将数据库初始化——导入表结构和一些demo数据。

首先需要创建 listmonk 目录,并在目录下创建配置文件 config.toml

[app]
# 默认localhost,Docker网桥方式部署则侦听'0.0.0.0'地址
address = "0.0.0.0:9000"

# 管理仪表板的BasicAuth认证。留空的话将禁用管理员的认证。
admin_username = ""
admin_password = ""

# Database.
[db]
host = "172.17.0.1"
port = 5432
user = "user"
password = "password"

# 确保该数据库已在 Postgres 中创建。
database = "listmonk"
ssl_mode = "disable"
max_open = 10
max_idle = 10
max_lifetime = "300s"

然后,根据配置创建一个临时 listmonk 容器以生成数据库初始数据(这一步是必须的否则报错):

docker run -it -v /data/listmonk/config.toml:/listmonk/config.toml:ro  --rm listmonk/listmonk:latest ./listmonk --install

注:/data/listmonk/config.toml 是上一步创建的配置文件路径

控制台将提示是否擦除数据库数据?输入 y 并回车确认。

image.png

安装正式容器:

docker run -d --restart always --name listmonk  \
  -v /data/listmonk/config.toml:/listmonk/config.toml:ro \
  -v /data/listmonk/uploads:/listmonk/uploads \
  -p 9000:9000 \
  listmonk/listmonk:latest

也可以使用 docker-compose

version: '3.8'

services:
  listmonk:
    image: listmonk/listmonk:latest
    container_name: listmonk 
    restart: on-failure
    ports:
      - "9000:9000"
    volumes:
      - /data/listmonk/config.toml:/listmonk/config.toml:ro
      - /data/listmonk/uploads:/listmonk/uploads

局域网内访问设备IP:9000即可访问管理面板,外网环境下需要分别启用端口映射和https反向代理。

via:https://nigzu.com/listmonk-newsletter/

已复制到剪贴板

评论 0 条

暂无评论,来种下第一颗种子。