wikijs是一个在线多人协作(带git版本管理)的wiki套件
相比于其他wiki的展示功能为主,wikijs将权限管理+多人协作作为了首个要素,其支持富文本编辑器/mardown编辑器/html源码编辑
本文首发于 慕雪的寒舍
1.Docker-cli部署
在云服务器安装 https://docs.requarks.io/install/ubuntu
可以跟着官方的指令走,下面节选了最终3个创建容器的命令
配置密钥
mkdir -p /etc/wiki
# Generate DB secret
openssl rand -base64 32 > /etc/wiki/.db-secret
# Create internal docker network
docker network create wikinet
# Create data volume for PostgreSQL
docker volume create pgdata
配置数据库
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
配置主容器
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
升级伴侣
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
配置防火墙
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw --force enable
运行容器
docker start db
docker start wiki
docker start wiki-update-companion
到这一步,就可以用3000
端口访问了
2.docker-compose部署(推荐)
https://docs.requarks.io/install/docker
docker-compose最好的一点就是方便管理,不需要单独管理上面的3个容器,而是用一条命令就能同时启停容器
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
配置证书需要多指定两个环境变量,分别是你的域名以及用于申请证书的邮箱
-e "LETSENCRYPT_DOMAIN=wiki.example.com" \
-e "LETSENCRYPT_EMAIL=admin@example.com" \
-p 443:3443
如果不这么做,则需要在nginx反向代理上配置证书
4.评论
默认的评论连回复都不支持,也没有一个管理页面和通知,如果要把wiki展示出来,这样就非常不方便
建议配置一下artalk评论系统 教程