离线维基百科阅读器Kiwix Serve

本文软件是网友 刘源 推荐的,因为他已经安装成功了,所以老苏拖拖拉拉的就从去年拖到了现在; 😂

什么是 Kiwix ?

Kiwix 是一个用于浏览离线内容的自由开源浏览器,最初用于离线浏览维基百科。Kiwix 可以读取以压缩形式存储在 ZIM 格式文件中的内容,使用户能够在没有网络连接的情况下浏览维基百科及其他支持的内容。目前,Kiwix 软件存在 macOSWindowsLinux等多种版本。

什么是 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
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
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
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
# 新建文件夹 kiwixserve 和 子目录
mkdir -p /volume2/docker/kiwixserve/data

# 在 data 中拷入 zim 文件
# 【注意】:如果没有 zim 文件会导致容器无法启动

# 进入 kiwixserve 目录
cd /volume2/docker/kiwixserve

# 运行容器
docker run -d \
--restart unless-stopped \
--name kiwixserve \
-p 5058:8080 \
-v $(pwd)/data:/data \
kiwix/kiwix-serve \
*.zim

# 运行容器(带自动下载的示例)
docker run -d \
--restart unless-stopped \
--name kiwixserve \
-p 5058:8080 \
-v $(pwd)/data:/data \
-e DOWNLOAD=https://download.kiwix.org/zim/wikipedia/wikipedia_zh_chemistry_mini_2022-11.zim
kiwix/kiwix-serve \
*.zim

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'

services:
kiwixserve:
image: kiwix/kiwix-serve
container_name: kiwixserve
restart: unless-stopped
ports:
- 5058:8080
volumes:
- ./data:/data
command: '*.zim'

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 kiwixserve 和 子目录
mkdir -p /volume2/docker/kiwixserve/data

# 在 data 中拷入 zim 文件
# 【注意】:如果没有 zim 文件会导致容器无法启动

# 进入 kiwixserve 目录
cd /volume2/docker/kiwixserve

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5058 就能看到主界面

点开 化学维基百科

随便打开一个

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

是不是发现和我们之前搭建的 Flask-MDict 异曲同工?

文章传送门:Flask-MDict搭建在线Mdict词典服务

参考文档

Index of /zim/wikipedia
地址:https://download.kiwix.org/zim/wikipedia/?C=S;O=D

Index of /zim
地址:https://download.kiwix.org/zim/

kiwix/kiwix-tools: Command line Kiwix tools: kiwix-serve, kiwix-manage, …
地址:https://github.com/kiwix/kiwix-tools

Kiwix-serve - Kiwix
地址:https://wiki.kiwix.org/wiki/Kiwix-serve