wikijs是一个在线多人协作(带git版本管理)的wiki套件
相比于其他wiki的展示功能为主,wikijs将权限管理+多人协作作为了首个要素,其支持富文本编辑器/mardown编辑器/html源码编辑
1.Docker-cli部署
在云服务器安装 https://docs.requarks.io/install/ubuntu
可以跟着官方的指令走,下面节选了最终3个创建容器的命令。
配置密钥
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | mkdir -p /etc/wiki
 
 openssl rand -base64 32 > /etc/wiki/.db-secret
 
 
 docker network create wikinet
 
 
 docker volume create pgdata
 
 | 
配置数据库
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | docker create \--name=db \
 -e POSTGRES_DB=wiki \
 -e POSTGRES_USER=wiki \
 -e POSTGRES_PASSWORD_FILE=/etc/wiki/.db-secret \
 -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro \
 -v pgdata:/var/lib/postgresql/data \
 --restart=unless-stopped \
 -h db \
 --network=wikinet \
 postgres:11
 
 | 
配置主容器
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | docker create --name=wiki \-e DB_TYPE=postgres \
 -e DB_HOST=db \
 -e DB_PORT=5432 \
 -e DB_PASS_FILE=/etc/wiki/.db-secret \
 -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro \
 -e DB_USER=wiki \
 -e DB_NAME=wiki \
 -e UPGRADE_COMPANION=1 \
 --restart=unless-stopped \
 -h wiki \
 --network=wikinet \
 -p 3000:3000 -p 3443:3443 \
 ghcr.io/requarks/wiki:2
 
 | 
升级伴侣
| 12
 3
 4
 5
 6
 7
 
 | docker create \--name=wiki-update-companion \
 -v /var/run/docker.sock:/var/run/docker.sock:ro \
 --restart=unless-stopped \
 -h wiki-update-companion \
 --network=wikinet \
 ghcr.io/requarks/wiki-update-companion:latest
 
 | 
配置防火墙
| 12
 3
 4
 5
 
 | sudo ufw allow sshsudo ufw allow http
 sudo ufw allow https
 
 sudo ufw --force enable
 
 | 
运行容器
| 12
 3
 
 | docker start dbdocker start wiki
 docker start wiki-update-companion
 
 | 
到这一步,就可以用3000端口访问wikijs了
2.docker-compose部署
官方文档:https://docs.requarks.io/install/docker
docker-compose最好的一点就是方便管理,不需要单独管理上面的3个容器,而是用一条命令就能同时启停容器
| 12
 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
 28
 29
 30
 31
 32
 
 | version: "3"services:
 
 db:
 image: postgres:11-alpine
 environment:
 POSTGRES_DB: wiki
 POSTGRES_PASSWORD: wikijsrocks
 POSTGRES_USER: wikijs
 logging:
 driver: "none"
 restart: unless-stopped
 volumes:
 - db-data:/var/lib/postgresql/data
 
 wiki:
 image: ghcr.io/requarks/wiki:2
 depends_on:
 - db
 environment:
 DB_TYPE: postgres
 DB_HOST: db
 DB_PORT: 5432
 DB_USER: wikijs
 DB_PASS: wikijsrocks
 DB_NAME: wiki
 restart: unless-stopped
 ports:
 - "80:3000"
 
 volumes:
 db-data:
 
 | 
3.配置证书let’s encrpy
配置证书需要多指定两个环境变量,分别是你的域名以及用于申请证书的邮箱
| 12
 3
 
 | -e "LETSENCRYPT_DOMAIN=wiki.example.com" \-e "LETSENCRYPT_EMAIL=admin@example.com" \
 -p 443:3443
 
 | 
如果不这么做,则需要在nginx反向代理上配置证书
4.超级方便的sqlite(个人推荐)
上面的两个办法,都需要多建一个数据库的容器。对于云服务器来说,内存是及其宝贵的资源。
如果你和我一样,wikijs只作为简单的记录用途,而不是生产用途(比如公司内部协作写文档),则可以使用轻便快捷的sqlite来作为数据库,避免多开一个容器的烦恼!
| 12
 3
 4
 5
 6
 
 | docker run -d \-p 8080:3000 \
 --name wiki \
 --restart unless-stopped \
 -e "DB_TYPE=sqlite" \
 requarks/wiki
 
 | 
一条命令搞定,不需要弄什么第二个数据库,怎么样,是不是很爽?
参考 https://b4d.sablun.org/blog/2021-02-07-instant-wikijs-with-docker/
注意:请确认您不是在生产环境下使用sqlite。相比于其他数据库,sqlite的主要优势是方便,其性能是不如mysql等数据库的!
对于个人而言,sqlite也绰绰有余了,完全不用担心性能问题。
4.评论
默认的评论连回复都不支持,也没有一个管理页面和通知,如果要把wiki展示出来,这样就非常不方便!
如果有需要的话,建议配置一下artalk评论系统 在wikijs上使用artalk评论系统