【Docker】配置wiki js

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 "[email protected]" \
-p 443:3443

如果不这么做,则需要在nginx反向代理上配置证书

4.超级方便的sqlite(个人推荐)

上面的两个办法,都需要多建一个数据库的容器。对于云服务器来说,内存是及其宝贵的资源。

如果你和我一样,wikijs只作为简单的记录用途,而不是生产用途(比如公司内部协作写文档),则可以使用轻便快捷的sqlite来作为数据库,避免多开一个容器的烦恼!

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等数据库的!

我主要还是自己使用wikijs,文档数量也不是很多,sqlite足够了

4.评论

默认的评论连回复都不支持,也没有一个管理页面和通知,如果要把wiki展示出来,这样就非常不方便

建议配置一下artalk评论系统 教程

猜你喜欢

转载自blog.csdn.net/muxuen/article/details/130334313