docs: Audiobookshelf v11.0 — 完整部署记录 + 决策经验固化
- TIMELINE: v11.0 有声书服务上线 + 音频归档体系 - CHANGELOG: v1.3.0 Audiobookshelf 部署 + 踩坑记录 - DECISION_LOG: O-2026-06-20 x3 (归档分层/章节排序/部门拆分) - README: 新增 ebook-library + Audiobookshelf 条目 - 服务清单: 新增 podcast.xybkwd.top + 音频归档
This commit is contained in:
57
TIMELINE.md
57
TIMELINE.md
@ -125,13 +125,15 @@
|
||||
| Caddy(反代) | 各域名 | 80/443 | ✅ 运行中 |
|
||||
| Gitea | gitea.xybkwd.top | 3000 | ✅ 运行中 |
|
||||
| Memos | memo.xybkwd.top | 5230 | ✅ 运行中 |
|
||||
| Beast Dashboard | dashboard.xybkwd.top | 9000 | ✅ dry-run 运行中 |
|
||||
| Dashboard | dashboard.xybkwd.top | 9000 | ✅ dry-run 运行中 |
|
||||
| AI Chat | chat.xybkwd.top | 8900 | ✅ 运行中 |
|
||||
| Todo Server | nav.xybkwd.top/api | 9001 | ✅ 运行中 |
|
||||
| 每日要闻 | brief.xybkwd.top | 静态 | ✅ 运行中 |
|
||||
| 栖云导航 | nav.xybkwd.top | 静态 | ✅ 运行中 |
|
||||
| **Audiobookshelf** | **podcast.xybkwd.top** | **13378** | **✅ 运行中** |
|
||||
| 灵感收集器 | — | cron | ✅ 每日 22:00 运行 |
|
||||
| 系统备份 | — | cron | ✅ 每日 04:00 运行 |
|
||||
| 音频归档 | D://服务器备份//有声书// | — | ✅ 手动同步 |
|
||||
|
||||
---
|
||||
|
||||
@ -186,3 +188,56 @@
|
||||
|
||||
**安全铁律**:
|
||||
- 严禁取消 basicauth,任何调试通过 localhost 不改 Caddyfile
|
||||
|
||||
---
|
||||
|
||||
### 2026-06-20 — Audiobookshelf 有声书服务上线 + 音频归档体系
|
||||
|
||||
**v11.0 — 有声书 & 播客服务**
|
||||
|
||||
**部署内容**:
|
||||
- Docker 部署 `ghcr.io/advplyr/audiobookshelf:latest`,端口 13378
|
||||
- Caddy 反代到 `podcast.xybkwd.top`
|
||||
- docker-compose 管理:`/home/ubuntu/audiobookshelf/docker-compose.yml`
|
||||
- 数据目录:`config/` `metadata/` `audiobooks/` `podcasts/`
|
||||
- 手机端通过希声 App 同步收听
|
||||
|
||||
**核心工作流**:
|
||||
```
|
||||
B站/YouTube → yt-dlp 下载(带 upload_date) → 转 MP3
|
||||
→ 按源端发布时间排序 → 加 01-N 前缀(完整保留标题)
|
||||
→ 放入 audiobooks/节目名/
|
||||
→ Audiobookshelf watcher 自动检测 → 希声自动同步
|
||||
```
|
||||
|
||||
**技术突破 — 章节排序三层同步铁律**:
|
||||
Audiobookshelf 章节排序依赖三层数据,只改文件名不生效:
|
||||
| 层 | 位置 | 关键字段 | 规则 |
|
||||
|:---|:---|:---|:---|
|
||||
| ① 文件系统 | 文件名 | `01-标题.mp3` | 数字前缀确保字母序 |
|
||||
| ② books 表 | `chapters` JSON | `start`(秒) | 必须连续递增 |
|
||||
| ③ books 表 | `audioFiles` JSON | `index` | 必须顺序 1→2→3→... |
|
||||
|
||||
**滚动淘汰 + 本地归档体系**:
|
||||
- 每节目服务器只保留最新 3 集(节省磁盘)
|
||||
- 淘汰的旧集 → `archive_pending/` 暂存 → `sync_archive.sh` SCP 到本地
|
||||
- 本地归档:`D:/服务器备份/有声书/<节目名>/`(D 盘 392G 可用)
|
||||
- 服务器脚本:`/home/ubuntu/audiobookshelf/scripts/archive_old_audio.sh`
|
||||
- 本地脚本:`D:/服务器备份/有声书/sync_archive.sh`
|
||||
|
||||
**踩坑记录**:
|
||||
1. 数据库误删 — 必须问用户再动手(血的教训)
|
||||
2. 章节排序 — 不是靠文件名字母序,是靠 chapters[].start 时间戳
|
||||
3. SCP 中文路径 — 含空格的目录需临时路径中转
|
||||
4. 容器无需频繁重启 — watcher 自动检测文件变化
|
||||
5. B站无纯音频流 — 用 `-f worstvideo+worstaudio/worst` 最小化下载量
|
||||
|
||||
**当前有声书内容**:
|
||||
| 节目 | 集数 | 来源 |
|
||||
|:---|:---|:---|
|
||||
| 渤海小吏·八王之乱 | 5集 | B站 |
|
||||
| 纵横四海 | 3集 | B站 |
|
||||
| 翟东升 | 3集 | YouTube |
|
||||
| Elon Musk | 99集 | 本地导入 |
|
||||
|
||||
**意义**:从碎片化的通勤时间利用,升级为一套完整的"内容获取 → 整理归档 → 移动收听"流水线。个人知识输入的又一条通道。
|
||||
|
||||
Reference in New Issue
Block a user