---
title: 实现小说自由！So Novel 小说下载工具（Docker 部署）
description: So Novel 是一款开源的免费小说下载工具，支持按书名或作者搜索，并将小说导出为 epub、txt、html、pdf 等格式。本文以飞牛 NAS 为例，演示用一条 Docker 命令部署 So Novel，并重点讲解配置文件缺失报错时手动上传 config.ini 与 rules 的方法。
outline: deep
category: 教程
date: 2026-10-14
tags:
  - So Novel
  - Docker
  - 小说下载
  - 飞牛NAS
  - epub
readingTime: 8 分钟
---

# 实现小说自由！So Novel 小说下载工具（Docker 部署）

> 📺 本图文教程由视频整理而成，对应的参考视频：[实现小说自由！So Novel](https://www.bilibili.com/video/BV1dqgQ6NE3X)。如需查看更详细、更具体的操作演示，可观看原视频。

> 场景：So Novel 是一款开源、免费的小说下载工具，可以根据书名或作者搜索小说，并导出为 **epub、txt、html、pdf** 等格式，下载后放进任意图书软件即可阅读。本文以飞牛 NAS 为例演示部署流程，其它系统操作一致，只是命令略有差别。

> 提示：本教程配套的操作文档，可在[好用斋官网](https://haoyongzhai.com) → [网盘分享](https://haoyongzhai.com/netdisk)（提取码 577）中下载。

## 第一步：下载配套文件

1. 打开[好用斋官网](https://haoyongzhai.com)，点击「[网盘分享](https://haoyongzhai.com/netdisk)」，输入提取码 **577**。
2. 页面里就是本期的 **So Novel 小说自由**，下方提供了两个网盘分享，选一个下载即可。
3. 将里面的内容全部下载到本地，其中包含一个「官网地址」文档，以及另一个文件夹（内含 `config.ini`、`rules` 规则目录和运行脚本），后续都要用到。

## 第二步：认识项目官网

打开配套的「官网地址」文档，内容分为三部分：**GitHub 官网地址**、**具体的 Docker 命令**、**好用斋官网**，按需取用即可。

进入 So Novel 的 [GitHub 官网](https://github.com/freeok/so-novel)，可以看到项目已有 **7.4K Star**，很受大家欢迎；页面上方就是它的功能说明，想深入了解可以到官网查看，**官网永远是最权威的**。

## 第三步：理解 Docker 命令

配套文档中的命令如下：

```bash
docker run -d \
  --restart always \
  --name sonovel \
  -v /vol1/1000/tools/sonovel/config.ini:/sonovel/config.ini \
  -v /vol1/1000/tools/sonovel/rules:/sonovel/rules \
  -v /vol1/1000/tools/sonovel/downloads:/sonovel/downloads \
  -p 7765:7765 \
  -e JAVA_OPTS='-Dmode=web' \
  ghcr.nju.edu.cn/freeok/sonovel:latest
```

逐段说明：

| 参数                                     | 作用                                             |
| ---------------------------------------- | ------------------------------------------------ |
| `docker run -d`                          | 容器在后台运行                                   |
| `--restart always`                       | 重启策略为 always，最适合飞牛；其它系统一般用 `unless-stopped` |
| `--name sonovel`                         | 容器名称                                         |
| 三条 `-v`                                | 路径映射：分别是配置文件、规则目录、下载目录     |
| `-p 7765:7765`                           | 端口映射，冒号后是容器端口，冒号前是宿主机端口   |
| `-e JAVA_OPTS='-Dmode=web'`              | 环境变量，表示以网页方式打开，照抄即可           |
| `ghcr.nju.edu.cn/freeok/sonovel:latest`  | 具体使用的镜像名称                               |

两个要点：

1. **路径映射中冒号后面不能改**，需要调整时只能修改冒号前面的宿主机路径。
2. **端口映射同理**，若端口 7765 冲突，只修改冒号前面的部分即可。

其中 `downloads`（下载目录）一般是命令行方式才用得到，**用网页方式基本用不到**。

## 第四步：执行命令创建容器

1. 复制这条 Docker 命令。
2. 打开一个系统终端，所有系统操作一致，本文以**飞牛**为例；如果是其它系统，直接到懒人包里找到对应系统的命令即可。
3. 输入 `sudo -i` 并回车，再输入**管理员密码**，此时命令行提示符会从普通用户变为 `root`，说明已获得管理员权限。

```bash
sudo -i
```

4. 在终端中**右键粘贴**刚复制的命令，回车执行，开始拉取镜像；镜像拉取完成后会自动建立容器。

::: warning 注意
输入管理员密码时**屏幕上不会显示任何字符**（既不显示星号也没有光标变化），这是正常的，输入完直接回车即可。
:::

## 第五步：处理配置文件缺失的报错

容器建立完成后会**出现一条报错**，这个和一般运行容器时不太一样。仔细看报错内容会发现，是**配置文件 `.ini` 不存在导致**：程序需要 `config.ini` 和 `rules` 规则文件，而它们目前还没有。

因此必须**手动上传这两个文件**，再重新运行容器，程序才能正常使用：

1. 上传 `config.ini` 配置文件。
2. 上传 `rules` 目录下的所有规则文件。

## 第六步：上传 config.ini 与 rules

1. 打开 **Docker 管理 → 容器**，可以看到此时 So Novel 的状态是「**已创建**」，而不是像其它容器那样「运行中」。
2. 进入 **文件管理**，依次进入 `tools → sonovel` 目录。可以看到映射时 `config.ini` 被**误建成了一个目录**，直接右键删除（可选择彻底删除或移至回收站）。
3. 点击**上传 → 上传文件**，打开配套下载的文件夹，选择其中的 `config.ini` 上传。
4. 再进入 `rules` 目录，同样点击**上传 → 上传文件**，打开配套文件夹下的 `rules` 目录，**全选**里面的所有文件上传。

这样，规则文件和配置文件就都补齐了。

<picture>
  <source type="image/avif" srcset="https://image.haoyongzhai.com/tutorials/577.SoNovel小说自由/01-sonovel-upload-config.avif" />
  <source type="image/webp" srcset="https://image.haoyongzhai.com/tutorials/577.SoNovel小说自由/01-sonovel-upload-config.webp" />
  <img src="https://image.haoyongzhai.com/tutorials/577.SoNovel小说自由/01-sonovel-upload-config.png" alt="在文件管理器中进入 sonovel 目录：将 config.ini（文件）与 rules、downloads 目录放在同一层级" width="960" height="569" loading="lazy" />
</picture>

## 第七步：重新运行容器

回到 **Docker 管理 → 容器**，再次点击运行。由于配置文件已经齐全，这次就**完全正常启动**了。

## 第八步：访问 Web 界面

用「IP 地址 + 端口号」访问即可，在飞牛里也可以直接点击容器后面的**打开**按钮。浏览器中会显示 So Novel 的主界面：顶部是版本号与设置开关，中部是搜索框，下方是已下载书籍列表，整体非常简洁。

<picture>
  <source type="image/avif" srcset="https://image.haoyongzhai.com/tutorials/577.SoNovel小说自由/02-sonovel-webui.avif" />
  <source type="image/webp" srcset="https://image.haoyongzhai.com/tutorials/577.SoNovel小说自由/02-sonovel-webui.webp" />
  <img src="https://image.haoyongzhai.com/tutorials/577.SoNovel小说自由/02-sonovel-webui.png" alt="So Novel 主界面：输入书名或作者即可搜索，下方为已下书籍列表" width="960" height="668" loading="lazy" />
</picture>

## 第九步：搜索与下载小说

1. 在搜索框输入书名或作者（例如输入「西游记」），回车或点击搜索。
2. 下方会出现搜索结果列表，点击对应条目**操作**里的**下载**按钮。
3. 默认下载格式为 **epub**，也可以选择 **txt、html、pdf**，任选一种下载即可。
4. 右上角会显示下载进度，完成后即可通过图书软件打开阅读。

> 小提示：如果书名搜不到，可以改用**作者名**搜索，反之亦然。

## 第十步：已下载书籍与历史记录

- **已下载书籍**：可对已下载的书再次下载，或直接删除。
- **历史记录**：可对某条记录再次搜索，或单条删除，也可以直接清空全部历史记录。

## 第十一步：设置（可选）

点击顶部的**设置**，可以进行一些偏好设置，包括：

1. **默认下载格式**：epub、txt、html、pdf。
2. **书籍内容语言**。
3. **下载并发限制**等。

一般保持默认即可，有特殊需求时再按需调整。

## 总结

1. So Novel 是一款开源免费的小说下载工具，**一条 Docker 命令即可部署**，界面简洁、功能实用。
2. 命令中的**路径映射与端口映射，冒号后面的内容不能改**，只能修改冒号前面的宿主机部分；非飞牛系统建议把 `--restart always` 改为 `unless-stopped`。
3. 最容易踩的坑：容器创建后会有**配置文件缺失报错**，需要手动把 **`config.ini` 与 `rules` 规则目录**上传到映射目录（如 `/vol1/1000/tools/sonovel/`），再重新运行容器。
4. 使用非常简单：搜索书名或作者 → 选择格式（epub/txt/html/pdf）下载 → 用图书软件打开即可。

## 参考视频

- [实现小说自由！So Novel](https://www.bilibili.com/video/BV1dqgQ6NE3X)

## 好用斋官网

- 好用斋官网：https://haoyongzhai.com
- 网盘分享：https://haoyongzhai.com/netdisk
