@
- 需求背景
- 具体实现
- 经验&吐槽
- 小结
需求背景
公司准备做一个知识库,我这边调研了几个项目,如下
第一个是我们耳熟能详的confluence,但是好想要收费,先搁置
第二个是mindoc,是一个小型的开源项目,可以docker跑项目,上传文件直接映射到本地,使可以用mysql,有点简陋但也基本够用(可docker)
第三个是看很多人推的Wiki.js,怎么说呢,主要看中了他外观还有一万六千多star,毕竟建立于nodejs基础之上写的,但是有个致命bug,后面会写(可docker)
具体实现
- mindoc
docker pull registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v0.13
// 它容器里面有自带的mysql的其他工具,只需要对外暴露端口就行
docker run --name=mindoc --restart=always -v /data/uploads:/mindoc/uploads -v /data/database:/data/database -e MINDOC_DB_ADAPTER=sqlite3 -e MINDOC_DB_DATABASE=./database/mindoc.db -e MINDOC_CACHE=true -e MINDOC_CACHE_PROVIDER=file -e MINDOC_ENABLE_EXPORT=true -p 8181:8181 -p 3306:3306 -d registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v0.13
- wiki.js
先配置好mysql的数据库,空的即可,名字自定,然后再适当修改docker的命令参数
docker run -d -p 8080:3000 --name wiki --restart unless-stopped -e "DB_TYPE=mysql" -e "DB_HOST=你的db" -e "DB_PORT=你的prot" -e "DB_USER=你的user" -e "DB_PASS=你的password" -e "DB_NAME=你的数据库名" ghcr.io/requarks/wiki:2
经验&吐槽
在这里我要特地花点篇幅介绍下wiki.js的使用经验,因为是国外项目很多操作流程跟咱们就不大一致,可能本来思维方式就不大一样嘛,
首先是到写文章页,摸了半天原来是先进到看文章页
然后再点击右上角的+号
然后要先输入你这个新页面的地址路径
选择哪种编辑器
组织填写信息
首先要诟病的是他上方工具栏可用工具太少了,都没有代码框可以选
然后是他图片处理,都不能直接粘贴图片,非要先上传再选,上传就上传了吧,选的时候还看不到缩略图,真尬
接着是他用户权限那块,理解是好理解的,先分配用户,再给这个用户分配组,再给组分配权限
OK,那我先回管理界面分配权限去
怎么回去,如下图,点击设置
同样,怎么回到页面的界面配置界面点"退出"
怎么配置一个用户能不能看到这个页面呢,就是配置这个页面给不给这个用户组权限,如下图
然后最为致命的地方来了,我用一个用户创建A页面,添加图片,然后给另一个用户的用户组给予所有权限,但是用另一个用户访问A页面文字能出来,但图片一直就出不来,特意在网上找了这个老哥疑问看了下,还是不行,这也是我最后放弃wiki.js的原因.
小结
一开始国产项目看不上,就用用国外的,各种不适应但也算是走过来了,但最后这个致命bug很蛋疼,还有选择图片不能看缩略图很烦,最后想法是前期使用国内开源,后期使用confluence(也不算贵,一年基本一天一块钱,按我们现在规模)