用于管理和阅读书籍的BookLore

简介

什么是 BookLore ?

BookLore 是一个自托管的 web 应用程序。 用于组织和管理个人书籍收藏。它允许用户查看 PDFs 和 电子书,并跟踪阅读进度,提供了一个直观的界面来浏览和管理个人图书馆。

主要特点

  • 现代响应式用户界面 – 提供流畅、高度响应的界面,带来无缝的阅读体验。
  • 有序的书籍管理 – 通过库和书架对书籍进行分类,以便更好地组织。
  • 智能元数据处理 – 自动从 GoodreadsAmazonGoogle Books 等来源获取书籍详细信息,或手动编辑。
  • 多用户支持 – 管理员可以创建用户账户,分配图书馆,并管理元数据编辑、上传和下载的权限。
  • 强大的电子书和 PDF 阅读器 – 提供丰富的阅读功能,支持 PDFsePub,具有用户进度跟踪和可定制的阅读设置。
  • 持续改进和新功能 – 项目将不断改进并开发令人兴奋的新功能。

使用场景

  • 个人图书管理: 帮助个人用户整理和管理自己的书籍收藏,告别混乱的纸质或电子书堆。
  • 阅读跟踪和回顾: 跟踪阅读进度,记录阅读笔记,方便回顾和反思。
  • 读书俱乐部: 可以作为读书俱乐部成员分享书籍和阅读体验的平台 (需要进行定制开发)。
  • 小型图书馆管理: 可以作为小型图书馆或个人书房的简化管理系统。
  • 学习和研究: 可以用来管理学习资料、文献等,方便查阅和记录。

BookLore 旨在提供一个简单易用、功能全面的图书管理和阅读跟踪解决方案。它帮助用户更好地组织书籍,跟踪阅读进度,并发现新的书籍。通过集成外部 API,它可以简化书籍信息的添加过程,并提供丰富的书籍信息。

BookLore 仍处于早期开发阶段,无论是你有功能想法、错误报告还是代码贡献,都可以去给作者反馈。

安装

在群晖上以 Docker 方式安装。

涉及到两个容器,采用 docker-compose 安装

env.txt

将下面的内容保存为 env.txt 文件。

基于官方的 .env 文件修改,源文件:https://github.com/adityachandelgit/BookLore#2%EF%B8%8F%E2%83%A3-create-a-env-file

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Docker image version (Replace with latest version found at https://github.com/adityachandelgit/BookLore/releases)
BOOKLORE_IMAGE_TAG=latest

# User and timezone settings
PUID=1000
PGID=1000
TZ=Asia/Shanghai

# Database credentials (Replace with a secure password)
MYSQL_ROOT_PASSWORD=cprqLkQjF5F3VyHFXM

# Paths for Docker volumes (Update these paths as per your system)
BOOKLORE_DATA_PATH=/volume1/docker/booklore/data
BOOKLORE_BOOKS_PATH=/volume1/docker/booklore/books
MARIADB_CONFIG_PATH=/volume1/docker/booklore/config
可变 说明
BOOKLORE_IMAGE_TAG latest Docker 镜像的版本
PUID 1000 用户 ID,用于指定容器内的用户,确保容器可以访问主机上的文件。
PGID 1000 ID,与 PUID 一起使用,确保容器内的用户具有适当的组权限。
TZ Asia/Shanghai 时区设置,定义容器内的时间设置,以确保时间正确显示。
MYSQL_ROOT_PASSWORD cprqLkQjF5F3VyHFXM 数据库根用户的密码,确保数据库的安全性,建议使用强密码。
BOOKLORE_DATA_PATH /volume1/docker/booklore/data Docker 卷的路径,用于存储 BookLore 应用程序的数据,主要是封面。
BOOKLORE_BOOKS_PATH /volume1/docker/booklore/books 存储书籍文件的路径,确保容器访问和管理书籍文件。
MARIADB_CONFIG_PATH /volume1/docker/booklore/config MariaDB 配置文件的路径,确保数据库的配置文件可访问。

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
services:
booklore:
image: ghcr.io/adityachandelgit/booklore-app:${BOOKLORE_IMAGE_TAG}
container_name: booklore-app
env_file:
- env.txt
depends_on:
mariadb:
condition: service_healthy
ports:
- "6060:6060"
volumes:
- ${BOOKLORE_DATA_PATH}:/app/data
- ${BOOKLORE_BOOKS_PATH}:/books

mariadb:
image: linuxserver/mariadb:11.4.5
container_name: booklore-db
restart: unless-stopped
env_file:
- env.txt
volumes:
- ${MARIADB_CONFIG_PATH}:/config
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 booklore 和 子目录
mkdir -p /volume1/docker/booklore/{books,config,data}

# 修改目录权限
chmod a+rw books

# 进入 booklore 目录
cd /volume1/docker/booklore

# 将 docker-compose.yml 放入当前目录

# 一键启动数据库
docker-compose --env-file env.txt up -d mariadb

# 一键启动
docker-compose --env-file env.txt up -d

不能启动的太快,否则可能会遇到错误

1
2
ERROR: for booklore  Container "099aed8522b6" is unhealthy.
ERROR: Encountered errors while bringing up the project.

需要等 mariadb 的状态转为 healthy 才行。有 portainer 就简单了,因为可以直接查看容器的状态

必须等状态转成 healthy 才行

不然的话,只能多等一会儿

运行

在浏览器中输入 http://群晖IP:6060 就能看到登录界面

下面 👇是默认的管理员账号和密码。首次登录时会提示更改默认密码,以确保更好的安全性

  • Username: admin
  • Password: admin123

登录成功后的主界面

Add a Library 创建库

  • 需要给 Library 设置一个图标
  • 如果启用了 Monitor Folder,会监控指定的文件夹,无论是添加或者删除书籍,都会触发

这里显示的是容器内的目录,选择 /books

接下来就可以上传书籍了

网页上传

需要指定 Library 和目录

但是发现 epub 不行,而 pdf 可以,从浏览器日志中看显示为不支持的格式,感觉应该是个 bug

1
Invalid file format, only pdf and epub are supported

上传成功后

FileStation 中查看

FileStation 上传

另外一种更简单的方法是直接在 FileStation 中上传

相对来说,直接通过 FileStation 更简单,而且不受网页的大小限制

1
Invalid file size, maximum upload size is 100.000 MB.

把硬盘里能找到的电子书都丢进去了,也不知道啥时候下的,反正从来看过

calibre 方便

元数据的识别也很准,支持手动调整

还可以直接在浏览器中打开,进行阅读

所有的电子书仅用于软件测试

参考文档

adityachandelgit/BookLore: BookLore is a web app for hosting and managing books on a home server. It allows users to view PDFs, eBooks, and track reading progress. With features like metadata management and reading stats, BookLore provides an easy way to organize and explore your personal library.
地址:https://github.com/adityachandelgit/BookLore

BookLore is Now Open Source: A Self-Hosted App for Managing and Reading Books 🚀 : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1j9xqsy/booklore_is_now_open_source_a_selfhosted_app_for/

Introducing BookLore: A Self-Hosted Application for Managing and Reading Books : r/selfhosted
地址:https://sh.reddit.com/r/selfhosted/comments/1ikoje2/introducing_booklore_a_selfhosted_application_for/