环境依赖,需要你有 git 、node 、yarn
1.先安装 ipfs
最新版下载链接: https://dist.ipfs.tech/#kubo
wget https://dist.ipfs.tech/kubo/v0.29.0/kubo_v0.29.0_linux-amd64.tar.gz
tar zxvf kubo_v0.29.0_linux-amd64.tar.gz
cd kubo
./install.sh
2.初始化和配置 ipfs 因为整个维基百科数据库比较大,我们需要使用 ipfs 的一个 filestore 特性,filestore 特性需要 ipfs 目录和添加的文件挂载在一个设备下面。
screen -S ipfs
export IPFS_PATH=/data2/ipfs
ipfs init
ipfs config --json 'Experimental.ShardingEnabled' true
ipfs config --json Experimental.FilestoreEnabled true
ipfs daemon
注意这里用了一个 screen 运行 ipfs ,避免网络掉线。
3.拉取数据和生成页面并添加到 ipfs
git clone https://github.com/ipfs/distributed-wikipedia-mirror
cd distributed-wikipedia-mirror
screen -S wikipedia-mirror
yarn
./mirrorzim.sh -l=zh -w=wikipedia
如果你需要英文版本,可以把 zh 替换成 en 。注意这里用了一个 screen 运行生成程序,避免网络掉线。
最后一个通宵后输出结果为:bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i
现在我们就可以使用各种 ipfs 网关打开这个 ipfs 版本的维基百科了,但是因为才上传,可能速度会比较慢,用的人多了速度就会更快。
我绑定了这个 cid 到 zh-wikipedia.ipfsscan.io 这个域名上。
可以使用我维护的一个网关打开 https://gateway.ipfsscan.io/ipns/zh-wikipedia.ipfsscan.io/
本站的词条 https://gateway.ipfsscan.io/ipns/zh-wikipedia.ipfsscan.io/wiki/V2EX
也可以在 public-gateway-checker 里面寻找其它网关。
你也可以复制一个惰性版本到你本地 ipfs 节点 ipfs files cp $(ipfs resolve -r /ipns/zh-wikipedia.ipfsscan.io) 。
如果你磁盘大于 130gb ,你也可以复制完整版本的到你 ipfs 节点 ipfs refs -r /ipns/zh-wikipedia.ipfsscan.io 。
本镜像维护周期,我一个月左右跟踪一次 kiwix 的最新的维基百科镜像,发现更新就打包,老版本的镜像维护 2 个版本。
其它语言的镜像,看情况有没有需求,如果有我就买一个大容量的 ssd ,你们也可以自己按照这个方法发布。