wikijs是一个在线多人协作(带git版本管理)的wiki套件
相比于其他wiki的展示功能为主,wikijs将权限管理+多人协作作为了首个要素,其支持富文本编辑器/mardown编辑器/html源码编辑
1.Docker-cli部署
在云服务器安装 https://docs.requarks.io/install/ubuntu
可以跟着官方的指令走,下面节选了最终3个创建容器的命令。
配置密钥
1 2 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
   | 
 
配置数据库
1 2 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
   | 
 
配置主容器
1 2 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
   | 
 
升级伴侣
1 2 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
   | 
 
配置防火墙
1 2 3 4 5
   | sudo ufw allow ssh sudo ufw allow http sudo ufw allow https
  sudo ufw --force enable
   | 
 
运行容器
1 2 3
   | docker start db docker start wiki docker start wiki-update-companion
   | 
 
到这一步,就可以用3000端口访问wikijs了
2.docker-compose部署
官方文档:https://docs.requarks.io/install/docker
docker-compose最好的一点就是方便管理,不需要单独管理上面的3个容器,而是用一条命令就能同时启停容器
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 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
配置证书需要多指定两个环境变量,分别是你的域名以及用于申请证书的邮箱
1 2 3
   | -e "LETSENCRYPT_DOMAIN=wiki.example.com" \ -e "LETSENCRYPT_EMAIL=admin@example.com" \ -p 443:3443
   | 
 
如果不这么做,则需要在nginx反向代理上配置证书
4.超级方便的sqlite(个人推荐)
上面的两个办法,都需要多建一个数据库的容器。对于云服务器来说,内存是及其宝贵的资源。
如果你和我一样,wikijs只作为简单的记录用途,而不是生产用途(比如公司内部协作写文档),则可以使用轻便快捷的sqlite来作为数据库,避免多开一个容器的烦恼!
1 2 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评论系统