一、安装wikijs和数据库
安装docker这些就不讲了,教程一堆。wiki相关的安装教程也可以去官网看,只是没那么详细,尤其是有关数据库的配置:Docker 部署 Wiki.js
pull wiki镜像:
docker pull ghcr.io/requarks/wiki
如果是arm的机器,也可以加相应的tag,官网提供了arm架构的镜像。
有了wiki的镜像之后,我们还需要数据库,首推的是postgresql,那我们就用这个就行了,数据库也可以单独再创建一个容器,只需要拉取postgres等就可以了。
以下是数据库的两种安装方式:
1、手动安装postgresql
sudo apt install postgresql
安装好数据库之后,先进行配置,使其能够在docker容器中进行使用:
sudo vim /etc/postgresql/<version>/main/postgresql.conf
找到以下内容并进行修改:
#listen_addresses = 'localhost'
修改为所有IP可登录:
listen_addresses = '*'
再打开以下文件:
sudo vim /etc/postgresql/<version>/main/pg_hba.conf
在文件末添加一行:
host all all 0.0.0.0/0 md5
修改完以上两个文件之后,就支持远程IP登录数据库了,别忘了重启下服务
sudo service postgresql restart
然后我们创建一个用户和表用于wiki使用,postgres 是安装之后默认创建的管理用户:
sudo -u postgres psql
进入之后就可以创建用户和数据库表了,一般创建用户、表和授予权限就行了:
创建新用户:CREATE USER username WITH PASSWORD 'password';
创建新数据库:CREATE DATABASE database_name;
授予用户对数据库的访问权限:GRANT ALL PRIVILEGES ON DATABASE database_name TO username;
修改用户密码:ALTER USER username WITH PASSWORD 'new_password';
2、 使用数据库容器
docker pull postgres
docker network create --subnet=192.168.5.0/24 --gateway=192.168.5.1 wiki-network
docker run -d --name postgresql -e TZ=Asia/Shanghai --net wiki-network --ip 192.168.5.10 -v /home/feng/test/docker/postgresql:/var/lib/postgresql/data -e POSTGRES_PASSWORD=fc123123 postgres:latest
查看docker容器的IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' postgresql
我这里将容器的数据挂载到/home/feng/test/docker/postgresql下了,到时候可以启动新容器映射这个文件,相当于恢复数据。同时固定了容器的IP,以便于重启后wiki容器也可以访问,不然docker会每次启动时动态分配IP,docker网络可以在主机通过sudo docker network ls查看。
进入容器修改配置使其能支持外部IP登录,然后创建用户,按照上面的方法改就行,不过路径不在/etc下面,在/var/lib/postgresql/data/下。容器中大概率没有安装vim,可以先自行安装:
#进入容器
docker exec -it postgresql bash
#进入数据库
psql -U postgres
我在配置好之后,wiki容器一直在退出,查看log是无法创建表,怎么添加都没用,我就直接把wiki用户升级为超级管理员用户了,由于我对数据库不太熟,这种做法不太推荐:
ALTER USER wiki WITH SUPERUSER;
一切准备就绪之后,就可以启动wiki容器了,如果自定义了网络记得也要--net设置:
未设置IP和映射:
docker run -d -p 8888:3000 --name wiki --restart unless-stopped -e TZ=Asia/Shanghai -e "DB_TYPE=postgres" -e "DB_HOST=192.168.5.10" -e "DB_PORT=5432" -e "DB_USER=wiki" -e "DB_PASS=fc123123" -e "DB_NAME=wiki" ghcr.io/requarks/wiki:2
设置IP以及映射:
docker run -d -p 8888:3000 --name wiki --restart unless-stopped --net wiki-network --ip 192.168.5.20 -e TZ=Asia/Shanghai -v /home/mobileos/data/docker_containers/wiki:/data -e "DB_TYPE=postgres" -e "DB_HOST=192.168.5.10" -e "DB_PORT=5432" -e "DB_USER=wiki" -e "DB_PASS=lz123123" -e "DB_NAME=wiki" ghcr.io/requarks/wiki
其中映射端口8888可以自定义,
--name wiki也可以自定义,
DB_HOST就是数据库所在的服务器IP,可以是宿主机,也可以是别的机器,
DB_PORT是数据库端口,一般不用改,
DB_USER是之前创建的用户,
DB_PASS是用户密码,
DB_NAME是创建的数据库表名。
启动容器之后,如果出现异常,可以使用docker logs <docker-name> 查看日志,根据具体错误信息进行处理。
启动容器之后就可以进行访问了,在宿主机输入127.0.0.1:8888:
二、配置wikijs
1、设置中文:
下载——设置——应用即可
2、创建组
创建组的目的主要是便于权限的管理:
注意要编辑页面规则,不然默认还是不能创建页面,wiki的权限管理还是很强的,可以制定很多不同的权限规则,具体按照自己所需进行设置:
3、管理页面
在wikijs里面,实际上没有文件夹的说法,都是以文件、路径来进行文件管理,所以如果我们要按类别将文档分类,要以页面的创建方式:
如图,我直接在根目录下创建二级页面,就会自动创建一个虚拟目录了: