绿联 NAS 自带 Docker 应用,用其中的「项目」功能(也就是 Docker Compose)可以几分钟内部署好 easy-Reader(简单书房):把 NAS 上的小说文件夹映射进去,就能在电脑、平板和手机的浏览器里阅读 TXT、EPUB、PDF、UMD,阅读进度在各个设备间同步。

本文在 绿联 DH2600(UGOS Pro 1.19) 上实际操作并截图,其他运行 UGOS Pro 的机型菜单相同。

部署前确认

处理器:easy-Reader 镜像同时提供 x86_64 和 ARM64 版本(ARM64 从 1.2.0 开始),拉取时自动选择,Intel、AMD 和 ARM 处理器的绿联 NAS 都可以运行。在「控制面板 → 关于本机 → 常规」的「硬件」一栏可以查看 CPU(截图中是 Intel Celeron N5105)。

控制面板「关于本机」:硬件一栏显示 CPU 为 Intel Celeron N5105

另外需要:

  • 已安装 Docker 应用:在「应用中心」搜索「Docker」安装,安装后桌面上会出现 Docker 图标。
  • 一个空闲端口:本文使用 8080。

第一步:准备文件夹

打开「文件管理」,准备两个文件夹:

用途 示例 说明
书库 共享文件夹下的 books,或已有的电子书文件夹 放 .txt、.epub、.pdf、.umd 文件,可以有子目录
数据 共享文件夹 docker 下的 easy-reader 数据库、封面、听书缓存,升级和迁移时保留它即可

安装 Docker 应用后,「共享文件夹」里会有一个 docker 文件夹。进入它,点工具栏左侧的「+」→「新建文件夹」,建好 easy-reader。书库可以直接用你已经存放电子书的文件夹;要新建一个共享文件夹的话,同样在「+」菜单里选「新建共享文件夹」。

文件管理:共享文件夹 docker 下新建好的 easy-reader 文件夹(旁边的 easy-learner 是学习版用的)

然后查看这两个文件夹在 NAS 上的完整路径:在文件夹上点右键 →「属性」,「位置」一栏就是完整路径,后面要填进配置里。

文件夹属性:位置一栏显示 /volume2/docker/easy-reader

注意路径开头的 /volume1、/volume2 表示存储空间,以「位置」里显示的为准。有多个存储空间时,书库和数据可能在不同的存储空间上,比如截图中的 NAS,书库在 /volume1/data/电子书,数据在 /volume2/docker/easy-reader。

书库文件夹需要可写:扫描时会把 GBK 等编码的 TXT 原地转换为 UTF-8,以后打开不再需要转码。

第二步:创建项目

  1. 打开 Docker 应用,进入左侧的「项目」,点「创建」。
  2. 「项目名称」填 easy-reader。填好名称后,「存放路径」会自动变成 共享文件夹/docker/easy-reader,也就是第一步建的数据文件夹,Compose 配置文件会保存在这里。
  3. 在「Compose配置」中粘贴下面的内容,把两个路径换成第一步查到的完整路径:
services:
  easy-reader:
    image: dls7788/easy-reader:latest
    container_name: easy-reader
    restart: unless-stopped
    ports:
      - "8080:3000"                            # 左边是访问端口,可以改;右边不要改
    volumes:
      - /volume1/books:/app/books              # 书库文件夹
      - /volume1/docker/easy-reader:/app/data  # 数据文件夹
    # 使用 NAS 本机上的 Ollama 本地模型时需要;不用可以删掉这两行
    extra_hosts:
      - "host.docker.internal:host-gateway"

创建项目:项目名称、存放路径和 Compose 配置都已填好

  1. 保持底部「创建完成后立即运行」勾选,点「立即部署」。弹出的「部署日志」会显示拉取镜像和创建容器的过程,第一次拉取镜像需要一两分钟,完成后点「完成」。
  2. 回到「项目」列表,easy-reader 显示「运行中」就部署好了。

项目列表:easy-reader 显示运行中

拉取镜像失败时

镜像发布在 Docker Hub,多数情况下可以直接拉取。如果部署日志一直卡在拉取镜像,或者提示超时,可以给 Docker Hub 配置一个可用的镜像加速地址:「镜像」→「镜像仓库」→ 右上角的齿轮(设置)→「镜像仓库」中 DockerHub 那一行的「加速器配置」。配置好后回到项目重新部署。

镜像仓库设置:DockerHub 一行的「加速器配置」

第三步:登录并导入书籍

  1. 浏览器打开 http://绿联NAS的IP:8080。
  2. 用默认管理员账号 admin、密码 admin123 登录,按提示先修改密码。
  3. 进入「书库」,点右上角的「扫描导入」。扫描在后台进行,书多时需要几分钟。
  4. 扫描结果默认先进入「暂存审核」,确认后才写入书库;重复的书和编码无法识别的书会单独标出。

easy-Reader 书库页:扫描导入后带封面、评分和分类的书籍

导入后点开任意一本就能阅读。手机上用浏览器打开同一个地址,登录同一个账号,会接着上次读到的段落。

升级到新版本

在 Docker 应用的「项目」中点 easy-reader 进入项目详情,切到「Compose配置」,点下方的「重新部署」,在确认框中勾选「拉取最新镜像」,再点「确定部署」。部署日志中显示镜像 Pulled 后,容器会用新镜像重新创建。

确定重新部署:勾选「拉取最新镜像」

书库和数据文件夹不受影响,数据库结构会在启动时自动迁移。项目中的容器不能在「容器」列表里用「版本检测与更新」单独升级,要像上面这样重新部署整个项目。每个版本的变化见更新日志。

同时部署学习版

学习版 easy-learner 在看书版的基础上加入了划线批注、AI 展开知识点、学习导图和笔记整理。它是另一个镜像,可以和看书版同时运行:再创建一个项目,名称填 easy-learner,书库可以和看书版共用同一个文件夹,数据文件夹和端口要分开:

services:
  easy-learner:
    image: dls7788/easy-learner:latest
    container_name: easy-learner
    restart: unless-stopped
    ports:
      - "8081:3000"                             # 与看书版不同的端口
    volumes:
      - /volume1/books:/app/books               # 可与看书版共用书库
      - /volume1/docker/easy-learner:/app/data  # 学习版自己的数据文件夹
    extra_hosts:
      - "host.docker.internal:host-gateway"

部署后访问 http://绿联NAS的IP:8081。学习版的账号、书架和阅读进度与看书版各自独立。学习功能的用法见学习版指南。

外网访问

在外面也想读书,可以用自己的域名和反向代理转发到 8080 端口。经过反向代理访问时,在 Compose 配置中加上:

    environment:
      - TRUST_PROXY=1

这样登录限流会按访问者的真实 IP 计算,不会因为一个人输错密码影响其他人。

常见问题

打开 8080 端口没反应:在 Docker 应用的「项目」中确认 easy-reader 正在运行;8080 被占用时把配置中左边的端口改成其他数字,再到「Compose配置」重新部署。

扫描后书库是空的:多半是书库路径填错了。确认配置中冒号左边是文件夹「属性」里显示的完整路径(注意是 /volume1 还是 /volume2),书文件就在这个文件夹或其子文件夹里。

想用 AI 补全书籍信息、听书:在 easy-Reader 的「设置 → AI 设置」中填写 DeepSeek 或 MiniMax 的 API Key;不配置也能正常阅读,听书会使用浏览器自带的语音。

其他 NAS 和 Linux 服务器的部署方法见通用 Docker Compose 部署教程。

其他教程