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评论系统