不用数据库也能建电子书库?Bookhoarder 让我把 EPUB 全搬进群晖
简介
什么是 Bookhoarder ?
Bookhoarder是一个开源的EPUB电子书库,无需数据库,仅使用对象存储即可持久化所有数据。它可以帮助用户在一台设备上集中管理EPUB收藏,并在浏览器中直接阅读。
主要特点
- 浏览器内阅读:基于
epub.js的在线阅读器,支持按用户记录阅读进度、评分和书架。 - 元数据管理:通过
Open Library自动查询书籍元数据和封面,也支持手动编辑;可为每本书添加标签和系列信息,并支持标签过滤。 - 智能书架:自动计算「未读」「正在阅读」「已完成」「五星」等智能书架,方便快速筛选。
- 多用户支持:支持
admin/reader多角色,可为每个用户设置独立密码。 - 推送与下载:支持通过
SMTP将书籍发送到电子阅读器,并提供OPDS目录源(/opds),可直接从兼容OPDS的阅读器应用浏览和下载。 - 一键备份:管理员可在设置中一键备份,默认仅导出元数据,也可完整导出包含所有
EPUB和封面。 - PWA 支持:可安装为
PWA,从手机或桌面主屏幕快速访问。 - 可插拔存储:存储驱动支持本地磁盘或
S3兼容对象存储(MinIO、Cloudflare R2、Backblaze B2),并支持目录前缀以便共享存储桶。 - 开源免费:基于
AGPL-3.0协议开源,可免费使用和修改。
应用场景
- 个人电子书收藏:集中管理本地
EPUB文件,上传后即可在浏览器中阅读,无需额外阅读器。 - 家庭共享书库:多用户 + 角色权限,家庭成员可共用一套书库,各人阅读进度互不干扰。
- 电子阅读器联动:通过
OPDS目录或SMTP推送,把书直接传到Kindle等设备上阅读。 - 开发者测试:官方提供
docker compose up一键启动(含本地MinIO),开发人员可以快速搭建测试环境。

Bookhoarder 是一个「上传即读、无需数据库」的轻量级 EPUB 电子书库。
安装
在群晖上以 Docker 方式安装。
本文写作时, 官方预构建镜像
ghcr.io/bookhoard/bookhoarder的latest版本对应为v0.20.0;

提示:该项目包含多个服务,建议使用
docker-compose进行部署,可以自动处理服务间的依赖关系。app(Bookhoarder本体)+minio(本地S3存储)+minio-init(自动创建存储桶)。其中minio-init会在minio健康检查通过后自动创建bookhoard存储桶,app服务会等存储桶就绪后才启动。
docker-compose 安装
采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件:
1 | version: '3.8' |
注意:如果
docker-compose的版本支持,建议将
1 | depends_on: |
改为
1 | depends_on: |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 bookhoarder 和 子目录 |

运行
在浏览器中访问 http://<群晖IP>:3278 即可进入 Web 界面

MinIO管理界面可通过http://<群晖IP>:19001访问(账号bookhoard/ 密码bookhoard123)。

首次使用会创建第一个用户(Profile),该用户自动成为管理员,如果觉得看着不爽,可以改显示的名字

进入 Library 上传 EPUB 文件

上传完成之后

在书库中点击书籍即可在线阅读

或通过 OPDS 目录(/opds)在电子阅读器应用中浏览下载

注意事项
- 数据持久化:
MinIO的数据目录./data/minio已挂载到宿主机;如果删除该目录,所有书籍和元数据都会丢失,请注意备份。 - 端口冲突:默认占用
3278(Web)、19000(S3 API)、19001(MinIO管理界面)三个端口,如被占用需修改映射。 - 默认凭据:
MinIO默认账号密码为bookhoard/bookhoard123,生产环境建议修改,并同步更新app服务中的S3_ACCESS_KEY、S3_SECRET_KEY。 - 复用现有 S3:如果已经有
MinIO、Cloudflare R2或Backblaze B2,可以去掉minio和minio-init服务,只保留app并把S3_ENDPOINT指向你的存储服务。 - Open Library 限流:建议设置
OPENLIBRARY_CONTACT为邮箱或联系URL,元数据和封面查询的速率限制可提升3倍(3 req/svs1 req/s)。 - 许可证:项目采用
AGPL-3.0,自托管使用没有问题;如果修改后作为网络服务对外提供,需向用户开放修改后的源码。 - 安全建议:为每个用户设置独立密码,管理员账号不要使用弱密码。
参考文档
bookhoard/bookhoarder: Self-hosted EPUB library — no database, just object storage
地址:https://github.com/bookhoard/bookhoarderBookhoarder - 官方网站
地址:https://bookhoarder.devBookhoarder - 官方文档
地址:https://docs.bookhoarder.devDeploy with Docker | Bookhoarder
地址:https://docs.bookhoarder.dev/deployment/dockerStorage backends - Local disk | S3 | Cloudflare R2
地址:https://docs.bookhoarder.dev/storageminio/minio - Docker 镜像
地址:https://hub.docker.com/r/minio/minio