维护¶
数据目录¶
data/
├── lyra.db SQLite 主库
├── lyra.db-wal WAL
├── lyra.db-shm 共享内存
├── backups/ 写入前备份
├── trash/ 回收站
├── staging/ 写入暂存
└── initial-password.txt 首次启动的随机密码
initial-password.txt 只在首次启动、且没有配置密码时生成。修改密码后可以删除。
备份策略¶
至少备份:
- 配置文件;
- 数据库;
- 需要保留的备份和回收站。
备份前停止写入或执行 WAL checkpoint。推荐:
恢复:
恢复后检查 /api/v1/health 和「设置 → 运行信息」。
数据库迁移¶
迁移在启动时自动执行,版本号记录在 meta.schema_version。迁移前会生成 data/lyra.db.v<旧版本>.<时间>.bak。
迁移失败时:
- 不要反复重启。
- 查看
docker compose logs lyra的错误。 - 保留数据库和
.bak文件。 - 回退镜像版本,或提交 Issue 并附上版本号和错误日志(不要附完整数据库)。
备份目录¶
data/backups/ 保存人工确认写入的完整备份。默认不自动淘汰。
backup_auto_prune = false时,达到容量上限会停止新增写入并告警。- 需要自动清理时,设置
backup_auto_prune = true和backup_max_bytes。 - 清理备份前确认不再需要撤销。
回收站¶
data/trash/ 保存被删除的文件和目录,按批次组织。
- 还原通过界面或整理日志完成。
- 永久删除可以手动清理,也可以在回收站页面操作。
- 回收站不自动清理。
日志与审计¶
- 写入记录在数据库,可在「日志 → 写入」查看。
- 改名记录在
renames表。 - 整理记录在
organize_ops表。 - 监控事件在
watch_log表,自动滚动保留最近记录。 - 容器 stdout 只保留最近的运行日志,不应当作为唯一审计来源。
磁盘空间¶
常见占用:
data/backups/:完整备份;data/trash/:删除的文件;data/staging/:写入暂存,正常完成后会清理;data/lyra.db-wal:WAL,checkpoint 后会缩小。
检查:
性能¶
- 大曲库首次统计会读取所有音频元数据,需要时间。
- 标签扫描受 MusicBrainz 限流影响;公共 API 每秒最多一次请求。
- 需要更快扫描时,自建 MusicBrainz 镜像并降低请求间隔。
- 指纹计算会解码整首音频,只在缺 MBID 或歧义时使用。
安全维护¶
- 定期更新镜像和依赖。
- 不要把
data/或config/提交到 Git。 - 不要把端口直接暴露到公网。
- 定期检查 API 令牌,撤销不再使用的。
- 备份文件包含数据库和配置,按敏感数据保管。