Grimmory 是一款开源自托管数字图书馆,是 Booklore 的社区分支。内置阅读器支持 EPUB/PDF/漫画,内嵌批注和高亮追踪,自动从 Google Books 抓取元数据,支持 Kobo 设备同步与 Kindle 推送,Docker 一键部署,AGPL-3.0 完全免费。
🎤 引言
Calibre-Web、Readarr、Bookshelf……自托管电子书方案一搜一大把,但大多数偏向"书库管理",阅读体验、批注同步、硬件设备联动做得并不好。
Grimmory 是 Booklore 的社区独立分支,GitHub 3.5k stars、241 forks,定位是"认真对待阅读的人的自托管数字图书馆"。支持漫画(CBZ/CBR)、EPUB、PDF、内嵌阅读器带批注和高亮、阅读进度追踪;设备联动方面支持 Kobo 硬件同步和 Kindle 一键推送;部署全靠 Docker,三行命令跑起来。
⭐ 核心功能
📚 格式支持
Grimmory 支持的格式覆盖主流电子书和漫画:
| 类型 | 格式 |
|---|---|
| 电子书 | EPUB, MOBI, AZW, AZW3, FB2 |
| 文档 | |
| 漫画 | CBZ, CBR, CB7 |
| 有声书 | M4B, M4A, MP3, OPUS |
基本上囊括了个人数字阅读会遇到的全部格式,不用转格式直接导入。
🖥 内置阅读器
阅读体验是 Grimmory 的亮点:
- 浏览器内阅读:不用下载到本地,直接在网页端打开 EPUB/PDF/漫画
- 批注与高亮:阅读时随手划线标注,支持高亮颜色分类
- 阅读进度追踪:自动记录看到第几页,关掉再打开从断点继续
- 阅读进度多设备同步:Kobo 设备或 KOReader 上读一半,手机打开网页版无缝衔接
🔍 元数据自动抓取
手动给每本书填信息太累,Grimmory 支持从以下来源自动抓取:
- Google Books:封面、简介、作者、出版社
- Open Library:更全的图书馆数据
- Amazon:商品详情(部分地区可用)
抓取后元数据全部可编辑,手动微调完全自由。
📂 Smart Shelves 与 BookDrop
Smart Shelves 是 Grimmory 的智能书架功能,支持:
- 规则过滤(按格式、语言、作者、标签)
- 全文搜索
- 动态书架:满足条件的书自动归入,书库更新后书架内容跟着变
BookDrop 是"甩进去就完事"的懒人功能:
- 把书扔进监控文件夹
- Grimmory 自动识别格式、提取元数据、排队等待导入
- 你去后台看一眼,确认导入
整个流程自动化,批量导书省心。
📡 设备同步与推送
- Kobo 设备同步:Grimmory 内置 Kobo 官方 sync 协议,接入后阅读进度和批注自动双向同步
- OPDS 兼容:任何 OPDS 协议的阅读 App 都能连接 Grimmory 获取书库
- KOReader 同步:KOReader 用户也能接入
- Kindle 推送:一键把书推送到 Kindle 邮箱,格式自动转换(EPUB → MOBI/AZW3)
👥 多用户支持
Grimmory 支持多账号,每个用户有:
- 独立书架
- 独立阅读进度
- 独立偏好设置
认证方式支持本地账号和 OIDC(OpenID Connect),适合家庭或小团队搭建共用书库。
📥 安装使用
Docker Compose 部署(推荐)
Step 1:创建目录
mkdir grimmory && cd grimmoryStep 2:编写 .env
APP_USER_ID=1000
APP_GROUP_ID=1000
TZ=Etc/UTC
DATABASE_URL=jdbc:mariadb://mariadb:3306/grimmory
DB_USER=grimmory
DB_PASSWORD=ChangeMe_Grimmory_2025!
API_DOCS_ENABLED=false
DISK_TYPE=LOCAL
MYSQL_ROOT_PASSWORD=ChangeMe_MariaDBRoot_2025!
MYSQL_DATABASE=grimmoryStep 3:编写 docker-compose.yml
services:
grimmory:
image: grimmory/grimmory:latest
container_name: grimmory
environment:
- USER_ID=${APP_USER_ID}
- GROUP_ID=${APP_GROUP_ID}
- TZ=${TZ}
- DATABASE_URL=${DATABASE_URL}
- DATABASE_USERNAME=${DB_USER}
- DATABASE_PASSWORD=${DB_PASSWORD}
- API_DOCS_ENABLED=${API_DOCS_ENABLED}
- DISK_TYPE=${DISK_TYPE}
depends_on:
mariadb:
condition: service_healthy
ports:
- "6060:6060"
volumes:
- ./data:/app/data
- ./books:/books
- ./bookdrop:/bookdrop
healthcheck:
test: wget -q -O - http://localhost:6060/api/v1/healthcheck
interval: 60s
retries: 5
start_period: 60s
timeout: 10s
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.5
environment:
- PUID=${DB_USER_ID}
- PGID=${DB_GROUP_ID}
- TZ=${TZ}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- ./mariadb/config:/config
restart: unless-stopped
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10Step 4:启动
docker compose up -d打开 http://localhost:6060,创建管理员账号,开始建库。
BookDrop 配置(懒人导入)
在 docker-compose.yml 的 volumes 里加上:
volumes:
- ./bookdrop:/bookdrop然后把书扔进 bookdrop 文件夹,等着就行。
🎯 适用场景
- 家庭共用书库:多用户各看各的,进度互不干扰,Kindle 推送功能给老人小孩用方便
- 漫画收藏爱好者:CBZ/CBR 直接导入,内置阅读器支持放大缩小,整理比 Calibre 更适合亚洲读者
- Kobo 深度用户:Kobo 官方 sync 协议支持,批注直接同步到 Grimmore 网页端
- 技术向阅读者:有 API 文档(
API_DOCS_ENABLED=true),可以二次开发或集成到其他工具 - 有声书爱好者:M4B/MP3/OPUS 有声书支持,有声书党的需求也能覆盖
🔍 对比/替代方案
| 工具 | 阅读器 | 设备同步 | Kobo | Kindle | 多用户 | 协议 |
|---|---|---|---|---|---|---|
| Grimmory | ✅ | ✅ OPDS | ✅ | ✅ | ✅ | AGPL-3.0 |
| Calibre-Web | ✅ | ❌ | ❌ | ❌ | ❌ | GPL-3.0 |
| Readarr | ❌ | ✅ Radarr 生态 | ❌ | ❌ | ✅ | MIT |
| Kavita | ✅ | ✅ OPDS | ❌ | ❌ | ✅ | GPL-3.0 |
| Booksonic | ✅ (音频) | ✅ | ❌ | ❌ | ✅ | GPL-3.0 |
Grimmory 最大的差异化是 Kobo 官方 sync + Kindle 推送,这在同类开源项目里很少见。Calibre-Web 轻量但功能少;Kavita 更偏漫画和多媒体;Grimmory 是综合体验最均衡的方案。
⚠️ 注意事项
- 需要 Docker:没有 Docker 基础的用户部署门槛略高,但文档写得很清楚,照抄就行
- AGPL-3.0:基于此协议修改代码需要开源,如果拿来商业使用注意合规
- Kobo sync 需要官方固件:部分越狱/修改版固件可能不兼容
- 不支持 WebDAV:目前没有 WebDAV 导出,对习惯用 NAS 做书库的人不够友好
- 没有内置格式转换:Kindle 推送时 Grimmory 会自动转换格式,但本地若有 EPUB→PDF 需求还是要靠 Calibre 预处理
✅ 总结
Grimmory 是那种"上手之后就不想换"的工具——Docker 装好、书扔进去、Kobo 连上,一套流程走完很舒服。
优点:
- Kobo + Kindle 设备联动完整,阅读进度和批注无缝同步
- BookDrop 懒人导入,全自动元数据抓取
- 内置阅读器支持批注高亮,浏览器直接看不用开 App
- 支持漫画格式 CBZ/CBR,有声书格式 M4B/MP3
- 社区活跃(Discord + Weblate 翻译),不是僵尸项目
缺点:
- Docker 部署对纯新手有门槛
- AGPL-3.0 协议修改代码要开源
- 没有 WebDAV
- 不支持自动格式转换
适合谁:有 Kobo 设备、想要多设备同步批注、习惯自托管的技术用户。
不适合谁:纯小白用户(Calibre-Web 更简单),不需要设备联动的人。
GitHub:https://github.com/grimmory-tools/grimmory,官网 https://grimmory.org/,有中文文档。