image-wcMw.webp最近收拾出来家里那台 2016 年的老电脑,性能早就跟不上日常办公节奏。
扔了可惜,留着又占地方,前段时间索性给它装上了飞牛 NAS 系统。

没想到,这一步直接把它“盘活”了。

它现在既是家里的私有云存储,也是我所有数字内容的中枢——
尤其是那几百上千本一直没人管的电子书,终于有了一个像样的归宿。


囤书容易,管书太难

说实话,我算不上什么重度阅读爱好者,但有个毛病一直没改:
看到感兴趣的书就顺手存下来

几年下来,漫画、EPUB、PDF、TXT越堆越多,问题也越来越明显:

  • 想找严歌苓的《芳华》,要在「小说合集」「经典读物」「未分类」等众多文件夹里来回翻

  • 《大明王朝》手机上读到第三十章,电脑端却还停在第一页

  • 电子阅读器里的进度,和电脑、手机完全不同步

  • 一些日文漫画文件名乱码,根本分不清是哪一部,最后只能吃灰

我也试过不少工具,要么像办公系统一样复杂,要么只管“存文件”,完全不考虑阅读体验。
直到把 BookLore 跑在 NAS 上,这件事才算真正顺了。


为什么选择 BookLore

选 BookLore,其实原因很简单。

它并不追求功能堆砌,而是非常明确地盯着三件事:

  • 怎么把书存好

  • 怎么把书找快

  • 怎么让你愿意继续读

对“书虫”来说,这三点比什么都重要。

再加上飞牛 NAS 对 Docker 的支持非常友好,部署门槛不高,即便不是技术党,照着我的教程也能跑起来,这对大家来说是个轻松事。


智能书架,比文件夹分类靠谱得多

以前我也很爱建文件夹:

  • 小说 / 已读

  • 小说 / 未读

  • 漫画合集

  • 职场干货

但书一多,分类反而成了负担。
读完一本书,忘了挪位置,后面再找又得重新翻。

BookLore 的智能书架,彻底改变了这个习惯。

你只需要设定规则,比如:

  • 最近新增的书

  • 未读完的作品

  • 某个作者的所有书

  • 阅读进度低于 20% 的书

规则设一次,之后就不用再管了。

在电子阅读器上读了一半的书,会自动出现在“未读完”;
哪天读完,它又会自动从这个书架里消失。
整个过程不需要你手动干预,比自己分类省心得多。
甚至它还支持多用户,以及创建家庭和群组,每个人都可以拥有自己的阅读进度。


自动整理,才是最省心的地方

真正让我留下来的,是 BookLore 的自动整理能力。

以前整理一本书,要做的事不少:

  • 改文件名

  • 找高清封面

  • 填作者、出版社

  • 有译者的还要反复确认

现在流程简单到几乎没有成本:
文件扔进 BookDrop 文件夹,剩下的交给系统。

不管是中文小说、外文译本,还是文件名一团糟的旧资源,BookLore 几乎都能自动识别并补全信息:

  • 封面

  • 作者

  • 出版信息

  • 书籍内容简介

  • 甚至于评分

有一次我一次性丢了五十多本漫画进去,等我倒杯水回来,系统已经按系列整理完成,卷数也没有出错。
那一刻是真的体会到什么叫“人不用参与”。


多设备同步,用过就回不去

以前我看书,总得想着这本书我看到哪来着?

现在完全不用。

晚上用 电子阅读器 看《盗墓笔记》一直到凌晨两点,实在熬不住了强迫自己睡觉。
第二天早上地铁上用手机打开 BookLore,直接打开从昨晚的那一页继续看;
回家用电脑打开,进度依然保持一致。

而且 BookLore 支持 OPDS 协议,常用阅读器均支持连接,不管用什么设备,阅读进度都能保持同步。

一旦习惯了这种状态,你就再也不想回到“手动找页码”的时代。


对 NAS 用户来说,最重要的是掌控感

对 NAS 玩家来说,功能多不多是一回事,
数据是不是完全在自己手里,才是核心。

BookLore 的所有数据——

  • 电子书文件

  • 阅读进度

  • 注解和标记

全部存放在自己的 NAS 上,不依赖任何第三方云服务。

它是开源项目,没有订阅费,没有广告,也不用担心哪天平台关停导致数据丢失,用起来非常安心。


写在最后

现在,我那几百上千本电子书终于各归其位:

  • 搜书快

  • 续读顺

  • 整理基本不用操心

如果你也有一堆电子书躺在硬盘里,又刚好在用NAS,
那 BookLore 基本属于那种 “装上就不会卸载” 的项目。

它不追求炫技,却把每个核心需求都做得很扎实,
让电子书真正变成了一种可以长期管理、随时取用的个人资产。

为此我单独写了一篇
飞牛 NAS 部署 BookLore 的完整实操教程

如果你也正被电子书管理问题困扰,这个组合,确实值得一试。


部署教程

  1. 演示在飞牛NAS上部署,其他系统请安装好Docker和docker compose

  2. 打开飞牛NAS的系统设置--SSH--SSH功能--启用

  3. 使用终端软件通过SSH连接到NAS,并切换到root状态下。

  4. 演示在飞牛NAS上创建一个docker文件夹,作为部署所有项目的总文件夹(其他NAS系统可自行创建一个docker文件夹)

    打开飞牛的文件管理,点击docker共享文件夹--右键详细信息--常规--位置,复制该文件夹原始路径。

  5. 在终端软件内进入该文件夹位置

    # 将 /vol1/1000/docker 换成你实际的文件夹路径
    
    cd /vol1/1000/docker
  6. 创建并进入项目文件夹

    mkdir booklore && cd booklore
  7. 创建所需的子文件夹

    mkdir -p data books bookdrop mariadb/config
  8. 创建后目录结构应为:

    booklore/
    ├── data/
    ├── books/
    ├── bookdrop/
    └── mariadb/
        └── config/
  9. 编辑docker-compose.yml项目文件

    vi docker-compose.yml
  10. 按字母i键进入编辑模式,复制并粘贴下面的模板代码,按Esc键退出编辑模式,输入:wq保存并退出。
    (按需修改下面的模板代码)

    services:
      booklore:
        image: booklore/booklore:latest
        # 国内访问 GitHub 慢,可优先用 Docker Hub
        # image: ghcr.io/booklore-app/booklore:latest
        container_name: booklore
    
        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}
          - BOOKLORE_PORT=${BOOKLORE_PORT}
    
        depends_on:
          mariadb:
            condition: service_healthy
    
        ports:
          - "${BOOKLORE_PORT}:${BOOKLORE_PORT}"
    
        volumes:
          # BookLore 程序数据
          - ./data:/app/data    # 可将 ./data 换成完整的文件夹路径
          # 正式书库目录(长期保存)
          - ./books:/books    # 可将 ./books 换成完整的文件夹路径
          # 自动导入目录(BookDrop)
          - ./bookdrop:/bookdrop    # 可将 ./bookdrop 换成完整的文件夹路径
    
        healthcheck:
          test: wget -q -O - http://localhost:${BOOKLORE_PORT}/api/v1/healthcheck
          interval: 60s
          retries: 5
          start_period: 60s
          timeout: 10s
    
        restart: unless-stopped
    
    
      mariadb:
        image: lscr.io/linuxserver/mariadb:11.4.5
        container_name: mariadb
    
        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 数据持久化目录
          - ./mariadb/config:/config    # 可将 ./mariadb 换成完整的文件夹路径
    
        restart: unless-stopped
    
        healthcheck:
          test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
          interval: 5s
          timeout: 5s
          retries: 10
  11. 编辑.env文件

    vi .env
  12. 按字母i键进入编辑模式,复制并粘贴下面的模板代码,按Esc键退出编辑模式,输入:wq保存并退出。
    (按需修改下面的模板代码)

    ########################################
    # 🎯 BookLore Application Settings
    ########################################
    
    # 容器内进程用户(飞牛 NAS 用 root 最省心)
    APP_USER_ID=0
    APP_GROUP_ID=0
    
    # 时区:上海(强烈建议这样改)
    TZ=Asia/Shanghai
    
    # BookLore Web 访问端口,可自行修改。
    BOOKLORE_PORT=6060
    
    
    ########################################
    # 🗄️ Database Connection (BookLore)
    ########################################
    
    # ⚠️ mariadb 是 docker-compose 中的服务名,不要改成 IP
    DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore
    
    # BookLore 使用的数据库账号
    DB_USER=booklore
    DB_PASSWORD=ChangeMe_BookLoreApp_2025!
    
    
    ########################################
    # 🔧 MariaDB Container Settings
    ########################################
    
    # linuxserver/mariadb 推荐使用 1000
    DB_USER_ID=1000
    DB_GROUP_ID=1000
    
    # MariaDB root 密码(只在容器内部使用)
    MYSQL_ROOT_PASSWORD=ChangeMe_MariaDBRoot_2025!
    
    # 默认创建的数据库名
    MYSQL_DATABASE=booklore
  13. 执行命令创建项目容器

    docker compose up -d
    
    或
    
    docker-compose up -d
  14. 查看项目容器的实时日志,按Ctrl+C中断查看。

    docker compose logs -f
    
    或
    
    docker-compose logs -f

访问BookLore

初始化账户

  1. 打开浏览器,以NAS的IP地址+设置的端口进行访问
    以本机为例:http://192.168.88.130:6060
    根据提示创建一个管理员账户(默认是英文页面,可以自行打开浏览器翻译)

  2. 输入你创建的管理员账户然后登录

新手指引

  1. 点击创建一个自己的图书馆

  2. 这个图书馆就是你手动设置的书籍分类,演示就默认混合在一起,不做分类。
    根据提示进行设置,然后点击下一步继续前往目录。

  3. 点击添加书籍目录

  4. 因为演示选择的全部书籍混合在一个分类里,所以直接选择bookdrop文件夹(自动识别放入的书籍)
    如果你有分类的需求,可以选择下面的books文件夹(需自行在NAS上的books文件夹内创建好分类文件夹,然后在这里再添加)。

  5. 选择好文件夹之后点击创建库

  6. 书籍库已经创建完成

导入书籍

  1. 把你下载好的书籍文件放入到NAS上的文件夹内(根据你的需求放入 books / bookdrop 文件夹内)

  2. 刷新一下页面即可看到自动识别到符合格式的书籍

  3. 随意点开一个可以看到书籍详情

  4. 点击进入阅读(PC页面)

  5. 移动端的适配做的也挺好的

  6. 在设置中还有更多自定义功能任你选择,这里就不再演示,大家自己点击看看即可。

  7. 唯一的遗憾是该项目暂未适配中文,但内容处理是支持中文的。而且我们上传的资源基本都是中文命名,使用起来问题不大。

  8. 如果你找不到免费的书籍下载地址,可以关注下方微信公众号,回复 书籍下载 自助获取免费书籍下载地址。微信公众号--白数.webp

相关地址