listmonk 邮件列表系统升级指南
前言
listmonk 是一款功能强大的开源邮件列表和通讯管理系统。随着项目的不断迭代更新,用户需要定期升级以获取新功能和安全性改进。本文将详细介绍 listmonk 系统的升级流程、注意事项以及常见问题的解决方案。
升级前的准备工作
重要提示:在执行任何升级操作前,请务必备份您的 PostgreSQL 数据库。这是升级过程中最关键的安全措施,可以防止数据丢失。
备份数据库的常用命令:
pg_dump -h 主机名 -p 端口 -U 用户名 -W 数据库名 > 备份文件名.sql
二进制安装方式的升级
标准升级流程
-
停止运行中的 listmonk 实例
- 如果作为服务运行:
sudo systemctl stop listmonk
- 如果直接运行:
pkill -9 listmonk
- 如果作为服务运行:
-
获取最新版本
- 下载最新版本的 listmonk 二进制文件
- 覆盖旧版本的二进制文件
-
执行数据库升级
./listmonk --upgrade
- 此命令会升级数据库架构
- 升级操作是幂等的,多次运行不会有副作用
-
重新启动服务
./listmonk
或作为服务启动:
sudo systemctl start listmonk
常见问题处理
如果遇到权限问题,可能需要:
chmod +x listmonk
Docker 容器化部署的升级
新版 docker-compose 升级
docker compose down app
docker compose pull
docker compose up app -d
旧版 docker-compose 升级
docker-compose down
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
注意:新版和旧版 docker-compose 文件格式有所不同,请根据您使用的版本选择正确的升级方式。
版本回滚操作
在某些情况下,您可能需要回滚到之前的版本。以下是标准回滚流程:
- 停止 listmonk 服务
- 恢复升级前的数据库备份
psql -h 127.0.0.1 -p 端口 -U 用户名 drop schema public cascade; create schema public; \q psql -h 127.0.0.1 -p 端口 -U 用户名 -W 数据库名 < 备份文件.sql
- 修改 docker-compose.yml 文件
- 将
listmonk:latest
改为特定版本,如listmonk:v2.4.0
- 将
- 重新启动服务
升级到 v4.x.x 版本的注意事项
v4 是一个重大版本更新,引入了多项重要变更:
主要变更点
-
多用户支持:v4 首次实现了完整的用户管理系统,取代了之前简单的 BasicAuth 认证方式
-
登录界面变化:
- 升级后,管理员仪表盘将不再显示浏览器原生登录提示
- 新的登录界面将通过 listmonk 渲染,访问路径为
/admin/login
-
API 凭证管理:
- 升级后,需要通过"设置 -> 用户"创建专门的 API 用户
- 原有的 TOML 配置文件中的凭证将不再适用于 API 调用
-
配置清理:
- 升级完成后,建议从配置文件中移除
admin_username
和admin_password
字段 - 系统会在管理员界面提示这些遗留配置的警告信息
- 升级完成后,建议从配置文件中移除
升级建议
- 在升级前确保所有 API 客户端都已准备好切换到新的认证方式
- 升级后立即创建新的 API 用户并更新所有集成
- 确认所有功能正常后再移除旧配置
升级后的验证
完成升级后,建议进行以下检查:
- 登录功能是否正常
- 邮件发送功能测试
- API 集成测试
- 检查系统日志是否有异常
总结
listmonk 的升级过程相对简单,但需要特别注意数据备份和版本兼容性问题。特别是从 v3 升级到 v4 这样的重大版本更新时,需要充分了解变更内容并做好相应的准备工作。遵循本文的指导,您可以安全、顺利地完成 listmonk 系统的升级。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考