离线维基百科阅读器Kiwix Serve
本文软件是网友
刘源推荐的,因为他已经安装成功了,所以老苏拖拖拉拉的就从去年拖到了现在; 😂
什么是 Kiwix ?
Kiwix是一个用于浏览离线内容的自由开源浏览器,最初用于离线浏览维基百科。Kiwix可以读取以压缩形式存储在ZIM格式文件中的内容,使用户能够在没有网络连接的情况下浏览维基百科及其他支持的内容。目前,Kiwix软件存在macOS、Windows、Linux等多种版本。
什么是 Kiwix-serve ?
Kiwix Serve是一个Zim文件兼容的网络服务器。它允许您在本地网络中通过HTTP协议传送.zim文件。
什么是 Zim ?
Zim是构建于Web Recorder项目愿景之上的网页存档格式,可将网站的全部内容整合并压缩为便于离线分享和存储的单一文件中。
所以你可以使用 Zim格式,将部分教育类资源站点保存下来,供没有网络或者网络不畅的社区或个人使用,实现知识的共享。
准备
需要说明的是,
Kiwix Serve支持通过环境变量设置远程下载,考虑到不同的网络环境,老苏还是建议先下载到本地
需要先准备好 zim 文件,如果容器在启动时找不到文件,会导致容器启动失败
为了演示,老苏在这里 https://download.kiwix.org/zim/wikipedia/?C=S;O=D 下载了一个最小的 wikipedia_zh_chemistry_mini_2022-12.zim,大约 18M

看名字是中文的化学,具体内容只有安装完成才知道
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 kiwix-serve ,选择第一个 kiwix/kiwix-serve,版本选择 latest。
本文写作时,
latest版本对应为3.4.0;

卷
在 docker 文件夹中,创建一个新文件夹 kiwixserve,并在其中建一个个子文件夹 data,并将下载好的 .zim 文件放入 data 目录

| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/kiwixserve/data |
/data |
存放 zim 文件 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
5058 |
8080 |
默认是这样的

老苏删掉了 80 端口

环境
| 可变 | 值 |
|---|---|
DOWNLOAD |
远程 zim 文件地址 |
例如:-e DOWNLOAD=https://download.kiwix.org/zim/wikipedia/wikipedia_zh_chemistry_mini_2022-11.zim,设置了的话,会自己下载

老苏没有用到环境变量,但是命令行需要输入 *.zim,这很重要,是告诉容器搜索数据目录中的所有 ZIM 文件
命令行只有第一次生效,如果忘了只能删了重新来过;

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 kiwixserve 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 kiwixserve 和 子目录 |
运行
在浏览器中输入 http://群晖IP:5058 就能看到主界面

点开 化学维基百科

随便打开一个

也可以搜索,比如搜 二氧化碳

是不是发现和我们之前搭建的 Flask-MDict 异曲同工?
文章传送门:Flask-MDict搭建在线Mdict词典服务
参考文档
Index of /zim/wikipedia
地址:https://download.kiwix.org/zim/wikipedia/?C=S;O=DIndex of /zim
地址:https://download.kiwix.org/zim/kiwix/kiwix-tools: Command line Kiwix tools: kiwix-serve, kiwix-manage, …
地址:https://github.com/kiwix/kiwix-toolsKiwix-serve - Kiwix
地址:https://wiki.kiwix.org/wiki/Kiwix-serve