Tropic Host

VPS 上的 Audiobookshelf:属于你自己的有声书与播客资料库

阅读约需 10 分钟
Tropic
VPS 上的 Audiobookshelf:属于你自己的有声书与播客资料库

Audiobookshelf:如何搭建自己的有声书与播客服务器

在电脑上开始听一本书,在手机上从同一位置继续,出行前将其下载到设备,并在更换设备后仍然保留收听进度——这些功能并不一定要依赖又一个付费服务。Audiobookshelf 可以把你自己的音频文件收藏变成一个整洁的在线资料库,包含封面、章节、应用程序,以及供全家人使用的独立账户。

它既不是商店,也不提供免费书籍。用户需要自行添加通过合法途径获得、且没有不兼容 DRM 保护的音频文件。作为回报,书籍、收听历史和设置都会保留在用户自己的服务器上。

什么是 Audiobookshelf

Audiobookshelf 是一款免费、开源的自托管有声书与播客服务器。它会扫描存放媒体文件的文件夹,按作者和系列整理资料库,获取元数据与封面,然后让你通过浏览器或移动应用收听整个收藏。

从使用方式来看,它就是一个由你自己建立目录的私人流媒体服务。服务器负责保存资料库和收听进度,手机、平板电脑或计算机则作为客户端。因此,你可以在一台设备上暂停一本书,再在另一台设备上从保存的位置继续收听。

Audiobookshelf 可以运行在家中的 NAS 或迷你电脑上。如果你希望从任何网络访问,又不想一直开着家用电脑、不想配置端口转发,也不想依赖家庭网络,那么 VPS 会更加方便。

Audiobookshelf 能做什么

在不同设备之间同步进度

每位用户的收听位置、历史记录和书签都会单独保存。系统提供 Web 界面、渐进式 Web 应用(PWA),以及适用于 Android 和 iOS 的官方移动客户端。你还可以提前把书下载到手机,在没有网络时继续收听。

创建独立账户

一台服务器可以创建多个用户,并且不会混合彼此的收听进度。管理员可以设置资料库访问权限和其他权限,必要时还可以按标签限制内容。每个人都会保留自己的在听书目、历史记录和书签。

整理资料库

该服务可以从外部来源获取书名、简介、作者和封面,按作者与系列对书籍进行分组,并允许修正章节和音轨顺序。多个 MP3 文件可以合并成一个 M4B 文件,封面和元数据也可以嵌入文件中。在修改原始文件之前,最好先备份资料库。

自动下载播客

你可以通过名称、RSS 链接或 OPML 文件添加播客,然后按计划自动下载新节目。该服务不会直接串流播放节目:文件会先保存到服务器。这样可以归档可能会消失的节目,但同时也需要占用磁盘空间。

将电子书与有声书放在一起

你可以把 EPUB、PDF、CBR、CBZ、AZW3 或 MOBI 文件放进书籍文件夹,使音频和文本可以从同一张书籍卡片中打开。这里的阅读器功能较为基础,不能替代 Calibre-Web 或 Kavita。

Audiobookshelf 适合哪些人

该服务在以下几种场景中特别实用:

  • 你已经拥有 MP3、M4B、M4A 或其他常见格式的有声书收藏;
  • 你会在多台设备上收听,并希望同步进度;
  • 多名家庭成员共同使用资料库;
  • 你需要保存自己的播客归档;
  • 你希望自行控制文件、用户账户和备份;
  • 普通云端文件夹已经不够方便,因为它没有封面、章节和收听历史。

如果你只在一部手机上听一两本书,那么单独部署服务器可能没有必要。当收藏不断增长,或需要持续的远程访问时,Audiobookshelf 才能充分发挥价值。

Audiobookshelf 需要怎样的服务器

该项目没有统一的官方最低配置:负载取决于资料库大小、用户数量、文件扫描频率,以及是否需要对音频进行转码。对于小型个人收藏,可以参考以下起步配置:

使用场景CPURAM磁盘
1–2 名用户,小型资料库1 vCPU1 GB30–40 GB 起
家庭使用及多个同时连接2 vCPU2 GB60–100 GB 起
大型资料库、频繁扫描和处理文件2–4 vCPU4 GB按收藏规模决定

这只是实际使用中的参考,而不是官方最低配置。最重要的资源是磁盘空间。一部时长十小时、码率为 64–128 Kbit/s 的有声书大约占用 0.3–0.6 GB,因此一百本书大约需要 30–60 GB,而且还未计入播客和备份。更合理的做法是从可随时扩容的小型 VPS 开始。

如何通过 Docker Compose 安装 Audiobookshelf

Docker 是开发者推荐的安装方式。下面假设 Ubuntu 或 Debian 上已经安装了 Docker 和 Compose 插件。

创建项目目录和数据文件夹:

mkdir -p /opt/audiobookshelf/{config,metadata,audiobooks,podcasts}
cd /opt/audiobookshelf

创建 compose.yml 文件:

services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    ports:
      - "13378:80"
    volumes:
      - ./config:/config
      - ./metadata:/metadata
      - ./audiobooks:/audiobooks
      - ./podcasts:/podcasts
    environment:
      - TZ=UTC
    restart: unless-stopped

启动容器:

docker compose up -d

启动后,管理面板暂时可以通过以下地址访问:

http://SERVER_IP:13378

首次进入时,请创建根管理员账户,然后添加一个类型为 Books 的资料库,并指定 /audiobooks 目录。对于播客,请创建一个单独的资料库,并将路径设置为 /podcasts

如何正确整理有声书文件夹

在 Audiobookshelf 中,一本书通常对应一个文件夹。最清晰的结构如下:

/audiobooks/
  作者/
    系列/
      01 - 书名/
        01 - 章节.mp3
        02 - 章节.mp3
        cover.jpg

对于单本书,可以省略系列这一层。单个 M4B 文件也可以放在自己的书籍文件夹中。

文件结构非常重要:如果把同一作者的多本书放进一个公共文件夹,扫描器可能会将它们合并成同一张书籍卡片。最好在第一次完整扫描之前整理好文件。将书籍从一个资料库移动到另一个资料库会被视为创建新对象,因此它的元数据和进度不会自动迁移。

如何安全地从互联网访问资料库

不建议长期把管理面板直接暴露在开放的 HTTP 端口 13378 上。若要远程访问,最好配置域名、HTTPS 证书,以及基于 Nginx、Caddy 或 Traefik 的反向代理。

Audiobookshelf 使用 WebSocket,因此需要在代理中启用相应支持。完成 HTTPS 配置后,可以让容器端口只绑定到本地接口:

ports:
  - "127.0.0.1:13378:80"

请使用独立且唯一的密码,为每位收听者创建单独账户,及时更新容器,并且不要授予不必要的管理员权限。

关于备份需要了解什么

Audiobookshelf 的内置备份会保存数据库和部分元数据,其中包括 metadata 目录中的封面。此类备份不会包含有声书、播客,以及与媒体文件存放在一起的封面。

因此,可靠的备份方案由两部分组成:

  1. 使用内置功能自动备份数据库和元数据;
  2. audiobookspodcasts 目录单独复制到其他磁盘或远程存储中。

/config 目录包含 SQLite 数据库。开发者建议将它保存在同一台服务器的本地磁盘上,而不是通过网络挂载:网络存储可能降低性能,并导致数据库损坏。

在 tropic.host 的 VPS 上运行 Audiobookshelf

对于个人资料库来说,最重要的不是最高计算性能,而是持续可用、足够的磁盘空间和稳定的连接。在 VPS 上,Audiobookshelf 可以全天候运行,并能从手机、电脑或平板访问,不受家庭网络状态影响。

对于小型收藏,可以从一台基础的 tropic.host 服务器开始,安装 Docker,配置域名和 HTTPS,然后随着资料库增长逐步增加资源。选择套餐时,首先应估算音频文件的总体积,并为新书和播客预留空间。

最好提前了解的限制

Audiobookshelf 不提供书籍目录,也不能移除 DRM 保护。它只处理用户自行添加且有权保存的文件。

移动应用仍在积极开发,官方也继续将其标记为测试版,因此 Web 界面或 PWA 仍然是实用的备用方案。电子书支持较为基础,而要整齐导入大型收藏,则需要遵循文件夹结构,并偶尔手动修正元数据。

对于有声书而言,该服务提供了普通云端文件夹所缺少的功能:章节、系列、进度、离线下载、用户档案,以及播客管理。

简要总结

Audiobookshelf 可以把音频文件变成适用于多台设备和多名用户的个人媒体库。通过 Docker Compose 安装并不复杂,但要想稳定运行,仍需整齐的文件夹结构、HTTPS,以及对媒体文件进行独立备份。

FAQ

Audiobookshelf 免费吗?

是的。服务器和官方客户端均以开源软件形式发布。只有在使用硬件、VPS、域名或额外存储时,才需要为这些资源付费。

Audiobookshelf 会提供免费的有声书吗?

不会。它只是用于管理个人收藏的服务器和播放器。你需要通过合法方式自行获得音频文件,并将其添加到资料库中。

可以在没有网络时听书吗?

可以。移动应用允许提前将书籍下载到设备。下载完成后,收听本身不需要连接服务器。

Audiobookshelf 需要多少内存?

对于小型资料库和一两名用户,1 GB RAM 是合理的起点。如果有多名收听者、需要大规模扫描或处理文件,最好选择 2–4 GB。

必须把 Audiobookshelf 安装在 VPS 上吗?

不必。它也可以运行在家庭服务器、NAS 或兼容的计算机上。当你需要从不同网络全天候访问,又不想配置家用路由器或依赖家庭网络时,VPS 会更方便。