版本 1.2.1
概览
版本 1.2.1 是一个小版本发布,引入了对备份通知管理的重大增强,改进了审计日志记录功能,修复了下次运行/逾期检测的边缘情况,并添加了数据库备份和还原功能。该版本专注于改进用户的通知设置体验。
新功能
提升的备份通知管理
- 服务器级默认值和继承系统:在服务器级配置默认的其他目标(通知事件、电子邮件和 NTFY 主题),所有备份都可以自动继承这些默认值。备份可以在需要时覆盖这些默认值,并且有明确的视觉指示器显示继承状态。
- 改进的视觉层次:备份现在按服务器分组,具有明显的服务器标题行。继承的值用链接图标标记,覆盖的值可以轻松地恢复到继承。
- 批量操作:"同步到全部" 按钮清除所有备份覆盖,使所有备份继承服务器默认值。"全部清除" 按钮清除所有其他目标,同时保持继承结构。
- 测试功能:在备份通知设置页面直接添加了测试电子邮件和测试通知按钮。测试按钮适用于个别备份设置和批量编辑操作,允许您在应用更改之前验证通知交付。
- QR 码支持:为 NTFY 主题添加了 QR 码按钮,方便与移动设备共享通知主题。
通知模板增强
- 新
{log_text}变量:在通知模板中添加了{log_text}变量,提供对日志文本消息的访问,以便在通知消息中使用。该变量包含警告和错误的全文,格式为纯文本,每个项目一行。 - 自动模板迁移:系统包括一个延迟升级机制,当旧默认模板首次被读取后自动检测和更新。自定义模板保持不变。
数据库管理
- 数据库备份功能:管理员现在可以从数据库维护设置页面创建整个数据库的备份。支持二进制 (.db) 和 SQL 文本 (.sql) 格式,以提供灵活性。
- 数据库还原功能:从以前创建的备份文件还原数据库,具有自动安全备份创建、完整性验证和失败回滚。所有会话在还原后都会被清除,以确保安全。
主密钥检测
- 自动主密钥更改检测:登录后,系统会自动检查
.duplistatus.key文件是否已更改。如果检测到,所有加密密码都会被清除,并且会弹出一个模态窗口,通知用户需要重新配置密码。这可以防止在从备份还原或迁移到新系统时发生错误。
备份监控改进
- 增强的 CSV 导出:在备份监控设置中,"下载 CSV" 按钮生成的 CSV 文件添加了 "上次备份时间戳 (DB)" 列。这样,用户可以将实际的上次备份时间戳从数据库与配置的 "上次备份" 时间戳进行比较。
- 下次运行工具提示:在每行中悬停在 "下次运行" 值上,现在会显示一个工具提示,显示数据库中的上次备份时间戳,格式与 "下次运行" 显示相同。
审计日志记录增强
- 个别通知审计条目:每个通知和电子邮件现在都会生成一个单独的审计日志条目,包含有关渠道、配置和结果(成功或失败)的详细信息。这包括测试通知,提供更好的通知送达跟踪能力。
- 健壮的失败日志记录:所有通知失败的审计日志记录操作现在都被try-catch块包围,以防止审计日志记录错误破坏通知流程。系统尝试在记录电子邮件失败时检索SMTP配置,如果它不立即可用。
- 改进的配置更新审计日志记录:
email_config_updated和ntfy_config_updated审计日志条目现在只在配置实际发生变化时记录。当检测到更改时,审计日志包括每个修改字段的旧值和新值,使得跟踪具体发生了什么变化变得更容易。
文档改进
- 文档风格已更新以与应用程序的外观和感觉相符。侧边栏也已修订以提高可见性并使导航更容易。
🐛 错误修复
- 修复审计日志时间戳:审计日志查看器中的时间戳现在正确地显示在用户的浏览器时区中,而不是GMT。SQLite时间戳(以UTC存储)现在正确解析为UTC并转换为浏览器的本地时区进行显示。
- 更正"下次运行"计算和逾期检测:备份监控设置中的"下次运行"列现在可以准确计算和显示下一个预期备份日期,考虑到备份计划和上次备份时间戳。这适用于计划备份和手动运行的备份作业,从而实现更可靠的逾期检测。
🚀 迁移说明
从版本 1.1.x
升级到版本 1.2.1 时:
-
通知模板:系统将自动更新默认通知模板以包含新的
{log_text}变量,在升级后首次访问时。如果您想在自己的模板中使用新的{log_text}变量,您需要更新它们或手动还原默认模板。 -
主密钥更改:如果您从备份中恢复或迁移到具有不同
.duplistatus.key文件的新系统,系统将自动检测到这一点并提示您重新配置加密密码(SMTP密码和Duplicati服务器密码)。 -
数据库备份/还原:新的数据库备份和还原功能可在数据库维护设置页面中使用。建议在升级之前创建备份,尽管此版本不需要任何数据库架构更改。
-
无需数据库迁移: 此版本不需要任何数据库模式更改。
API 端点
以下 API 端点在此版本中引入。
身份验证和安全端点
GET /api/auth/admin-must-change-password- 检查管理员用户是否必须更改密码
数据库管理端点
GET /api/database/backup- 创建数据库备份(二进制或SQL格式)POST /api/database/restore- 从备份文件还原数据库
备份管理端点
GET /api/backups/last-timestamps- 获取所有服务器-备份组合的上次备份时间戳
支持
获取帮助
报告错误
报告错误时,请包括:
- 版本: 1.2.1
- 操作系统和版本
- Docker/podman 版本
- 容器类型(Docker 或 podman/Pod)
- 错误消息和日志
- 重现步骤
更新日志
版本 1.2.1 更改
- 添加: 服务器级别的默认值和继承系统用于备份通知
- 添加: 测试电子邮件和测试通知功能在备份通知设置中
- 添加: NTFY 主题的二维码按钮
- 添加: "上次备份时间戳(DB)"列到备份监控 CSV 导出中
- 添加: 提示工具到 "下次运行" 文本在备份监控设置中
- 添加: 个别审计日志条目用于每个通知和发送的电子邮件
- 添加: 加强审计日志记录的健壮性用于通知失败
- 添加:
{log_text}变量到通知模板中,具有自动模板迁移 - 添加: 自动检测主密钥文件更改
- 添加: 数据库备份功能(二进制和 SQL 格式)
- 添加: 数据库还原功能,具有安全备份和完整性验证
- 添加: API 端点
GET /api/auth/admin-must-change-password用于检查管理员密码更改要求 - 添加: API 端点
GET /api/database/backup用于创建数据库备份 - 添加: API 端点
POST /api/database/restore用于从备份还原数据库 - 添加: API 端点
GET /api/backups/last-timestamps用于检索上次备份时间戳 - 更改: 改进审计日志记录用于电子邮件和 NTFY 配置更新(仅记录实际更改)
- 更改: 密码更改表单不再需要确认时显示未屏蔽的密码。
- 更改: 密码从内存中安全清除,当密码更改表单关闭时。
- 更改: 包含密码视图切换在收集备份表单中。
- 更改:
{server_alias}变量现在显示服务器名称在括号中 - 更改: 文档更新,样式与应用程序对齐,侧边栏重构。
- 修复: 审计日志时间戳显示在 GMT 而不是浏览器时区
- 修复: 电子邮件和 NTFY 失败审计日志记录
- 修复: "下次运行" 显示在备份监控设置中显示不正确的日期
许可
该项目在 Apache License 2.0 下许可。
Copyright 2025 Waldemar Scudeller Jr.