BookLore 是一个功能强大的自托管数字图书馆应用
BookLore 详细部署教程
BookLore 是一个功能强大的自托管数字图书馆应用,支持智能书架、自动元数据抓取、设备同步、BookDrop 自动导入以及内置阅读器等功能。本教程将引导你通过 Docker Compose 完成 BookLore 的完整部署。
一、部署前提
在开始之前,请确保你的服务器满足以下条件:
- 已安装 Docker 和 Docker Compose
- 拥有一个用于存放应用数据和图书文件的目录
- (可选)如需外网访问,准备好域名和 SSL 证书
BookLore 官方提供两个镜像仓库,你可以任选其一:
- GitHub Container Registry:
ghcr.io/booklore-app/booklore - Docker Hub:
booklore/booklore
二、创建配置文件
首先,创建一个用于存放部署文件的目录,例如 /opt/booklore,然后进入该目录:
1 | mkdir -p /opt/booklore |
1. 创建 .env 文件
在目录中创建 .env 文件,用于集中管理环境变量。你可以直接复制以下内容,然后根据实际情况修改:
1 | # 应用程序设置 |
关键说明:
APP_USER_ID和APP_GROUP_ID应设置为宿主机上用于运行容器的用户 ID。你可以通过id -u和id -g命令查看当前用户 ID。DB_PASSWORD和MYSQL_ROOT_PASSWORD是数据库的敏感信息,强烈建议修改为强密码。DISK_TYPE默认为LOCAL,适用于本地磁盘。如果你的图书文件存放在 NAS 或网络存储上,需要设置为NETWORK(详见第六节)。
2. 创建 docker-compose.yml 文件
在同一目录下创建 docker-compose.yml 文件:
1 | services: |
目录映射说明:
./data:存放 BookLore 的应用数据,建议定期备份。./books:你的图书库,所有导入的图书文件都会存放在这里。./bookdrop:将电子书文件放入此目录,BookLore 会自动检测并处理。./mariadb/config:MariaDB 数据库的持久化数据,非常重要,请定期备份。
三、启动 BookLore
配置完成后,使用以下命令启动所有服务:
1 | docker compose up -d |
该命令会后台启动 BookLore 和 MariaDB 两个容器。首次启动时,MariaDB 需要初始化数据库,BookLore 会等待数据库就绪后才开始运行。
你可以通过以下命令查看启动日志,确认服务是否正常运行:
1 | docker compose logs -f |
当看到 BookLore 日志显示应用已启动后,在浏览器中访问:
1 | http://你的服务器IP:6060 |
首次访问时,系统会引导你创建管理员账户。设置完成后,你就可以开始构建自己的数字图书馆了。
四、BookDrop 自动导入
BookDrop 是 BookLore 的一项特色功能,能够实现“零操作”导入:你只需将电子书文件(EPUB、PDF、漫画等)放入 bookdrop 目录,BookLore 就会自动:
- 监控该目录
- 检测并解析新文件
- 抓取元数据(封面、简介等)
- 将文件排队等待你审核后导入书库
这一功能极大地简化了批量导入图书的流程。
五、配置 HTTPS(可选但推荐)
如果你需要通过公网访问,强烈建议配置 HTTPS。最推荐的方式是使用 Nginx 反向代理。你可以在 Nginx 配置中添加如下 server 块:
1 | server { |
注意: 如果 Nginx 和 BookLore 在不同的 Docker 网络中,你需要创建一个共享网络,并将两个容器都连接到该网络。
六、网络存储(NAS / NFS / SMB)的重要说明
BookLore 的文件操作功能(如元数据写入、文件重命名、文件组织)仅针对本地文件系统设计和测试。官方明确表示不支持网络附加存储(NAS、NFS、SMB/CIFS 挂载、云备份 FUSE 等),因为网络延迟、缓存和文件系统语义差异可能导致文件损坏、写入不完整或文件丢失等问题。
如果你的图书文件存放在网络存储上,必须在 .env 文件中设置:
1 | DISK_TYPE=NETWORK |
这会将 BookLore 置于网络存储模式,该模式会禁用所有文件写入和重组功能。元数据仅存储在数据库中,你的原始文件永远不会被修改。这是官方唯一支持的网络存储配置。
七、常用维护命令
1 | # 查看容器状态 |
八、数据备份建议
定期备份以下目录至关重要:
./mariadb/config:包含所有图书元数据、用户信息、阅读进度等核心数据。./data:应用配置和缓存。./books:你的原始图书文件。
建议设置定时任务将上述目录备份到其他存储位置。
九、进阶功能配置
BookLore 还支持许多进阶功能,部署完成后可以按需配置:
- Kobo / KOReader 同步:在 BookLore 设置中找到同步服务器地址,在设备端配置即可实现阅读进度同步。
- OPDS 支持:任何支持 OPDS 协议的阅读器(如 KOReader、Moon+ Reader)都可以通过 BookLore 的 OPDS 端点浏览和下载图书。
- 多用户管理:管理员可以在设置中创建多个用户账户,每个用户拥有独立的书架和阅读进度。
- 邮件发送:配置 SMTP 后,可以一键将图书发送到 Kindle 或他人邮箱。
部署完成后,你就可以通过浏览器访问 BookLore,开始整理、阅读和同步你的个人数字图书馆了。如果在部署过程中遇到问题,建议先查看 docker compose logs 的输出,通常能从中找到线索。



