存储
- 本地磁盘
- 任意 S3:AWS、Cloudflare R2、Backblaze B2、MinIO、Yandex Object Storage 等
- Cloudflare R2 和 Google Drive 通过向导连接,无需手动折腾密钥
- 可选在 R2 前加一层 Cloudflare CDN
- 将 Google Drive 文件夹导入为书籍
服务器 1.0 已发布 · 应用即将上架
Berth 是一款开源有声书服务器,可运行在你自己的 VPS、NAS 或 Docker 中。通过网页后台上传书籍,存放在本地磁盘、任意兼容 S3 的存储或 Google Drive 中,然后在 Android 和 iOS 版 Berth 应用中收听,进度永不丢失。
给仓库点 Star 或 Watch,应用上架时就能收到通知。
问题
大多数自托管服务器通过扫描文件夹来重建书库。一个多余的文件就可能让系列错误合并,把文件挪到 NAS 上还可能清空收听进度。
在锁屏或蓝牙设备上暂停,或在同步完成前打开应用,都可能重置播放位置,这是有声书应用最常见的抱怨。
下载停滞不前、始终无法变成可播放的书,或者曲目播放顺序错乱。
Berth 的设计让这些问题无从发生:数据库是唯一的事实来源,手机自己保存播放位置。
工作原理
Berth 由三部分组成。服务器在数据库中保存书库;音频存放在你选择的存储中;应用负责播放,并记住你停在哪里。
一个服务器,内置网页后台。安装在 VPS、NAS 或 Docker 中,通过简短的网页向导完成设置。
把文件或整个文件夹拖进网页后台:带章节的 m4b 或 mp3 文件夹都行。保存前可编辑元数据。文件夹结构无关紧要。
在后台创建听众并出示二维码。手机扫描二维码或输入代码,书库就出现了。听众无需密码。
Berth 服务器
网页后台 · 数据库
Berth 应用
Android · iOS
你的存储
本地 · S3 · R2 · Google Drive
CDN
可选
使用兼容 S3 的存储时,音频通过短时效签名链接直接从存储或 CDN 串流,服务器不会成为瓶颈。本地磁盘和 Google Drive 则通过服务器串流。
功能
对比
这四款都能从你自己的服务器提供有声书。区别在于书库如何构建、文件可以存放在哪里,以及手机如何连接。
| 方面 | Berth | Audiobookshelf | Plex | Jellyfin |
|---|---|---|---|---|
| 定位 | 有声书 | 有声书和播客 | 通用媒体服务器 | 通用媒体服务器 |
| 书库来源 | 数据库;书籍通过网页后台上传 | 扫描媒体文件夹 | 扫描媒体文件夹 | 扫描媒体文件夹 |
| 文件存放位置 | 本地磁盘、任意 S3、Google Drive | 本地或挂载的文件系统 | 本地或挂载的文件系统 | 本地或挂载的文件系统 |
| 音频分发 | 通过签名链接从存储或 CDN 分发,或通过服务器 | 通过服务器 | 通过服务器 | 通过服务器 |
| 听众登录 | 二维码,无需密码 | 用户名和密码 | Plex 账号 | 用户名和密码,或 Quick Connect |
| 移动应用 | 自有 Android 和 iOS 应用(尚未上架) | 官方 Android 应用;iOS 应用处于 TestFlight 测试阶段 | Plex 应用和第三方有声书播放器 | 第三方有声书播放器 |
| 服务器许可证 | Apache-2.0 | GPL-3.0 | 专有 | GPL-2.0 |
| 成熟度 | 服务器 1.0(2026 年 10 月),应用开发中 | 成熟,社区庞大 | 成熟,商业产品 | 成熟,社区庞大 |
依据截至 2026 年 10 月的公开文档和问题跟踪记录。Audiobookshelf、Plex 和 Jellyfin 都是成熟、广泛使用的项目;Berth 于 2026 年 10 月发布了首个服务器版本,其应用尚未上架。
常见问题
Berth 是一款自托管有声书服务器,自带移动应用。你在自己的硬件上运行服务器,通过网页后台上传书籍,选择文件存放位置,家人在 Android 或 iOS 上收听。
服务器可以:1.0 版本可在 Linux 服务器、NAS 或 Raspberry Pi(amd64 和 arm64)上通过 Docker 运行。移动应用尚未上架,给 GitHub 仓库点 Star 或 Watch,上架时就能收到通知。
Berth 服务器以 Apache-2.0 许可证开源,代码仓库公开在 GitHub 上。其 API 用 OpenAPI 描述,因此可以开发第三方客户端;官方移动应用是一个独立的闭源项目。
Berth 把书库保存在数据库中,而不是靠扫描文件夹重建,因此文件结构、多余的文件或迁移存储都不会破坏书籍或进度。它还能把音频存放在兼容 S3 的存储或 Google Drive 中,而不仅限于本地磁盘。Audiobookshelf 很成熟,支持播客,社区庞大;Berth 是新项目,专注于有声书。
本地磁盘、任意兼容 S3 的存储(AWS S3、Cloudflare R2、Backblaze B2、MinIO、Yandex Object Storage、Wasabi、Hetzner 等)以及 Google Drive。Cloudflare R2 和 Google Drive 可通过引导向导连接。
可以。Berth 以最小的 drive.file 权限连接 Google Drive,因此只能看到它自己创建的文件。来自 Drive 的音频通过你的 Berth 服务器串流和下载。
会。应用每隔几秒在手机上保存每本书的位置,并同步到服务器;只有服务器上的位置更新时,才会替换本地位置。已下载的书可离线播放。
支持,两者都包含在第一个版本中:可以浏览“继续收听”、书库和下载内容,并在车上控制播放。
管理员在网页后台出示二维码;手机扫描二维码或输入短代码(如 BRTH-7K2Q)即可连接。听众无需密码,管理员可以撤销任何设备。
第一个版本支持内嵌章节的 m4b 有声书和 mp3 文件夹。章节和曲目顺序保存在数据库中,而不是从文件名推断。
第一个版本还不行。书籍可通过网页后台上传或导入 Google Drive 文件夹来添加;Audiobookshelf 导入工具考虑在首个版本之后推出。
状态
服务器 1.0 已发布;应用正在收尾。上架日期尚未确定,关注仓库即可获取最新动态。
安装
Berth 可在 Linux 服务器、NAS 或 Raspberry Pi 上通过 Docker 运行。以下命令会在 8080 端口启动它;更新、备份和 HTTPS 的说明见 GitHub 上的 README。
$ mkdir berth && cd berth
$ curl -fsSLO https://raw.githubusercontent.com/joveptesg/berth/main/docker-compose.yml
$ docker compose up -d
$ docker compose logs berth
# 然后打开服务器地址,输入日志中的设置码