@
- 需求背景
- 具體實現
- 經驗&吐槽
- 小結
需求背景
公司準備做一個知識庫,我這邊調研了幾個專案,也看了篇別人的經驗文章傳送門,如下
第一個是我們耳熟能詳的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(也不算貴,一年基本一天一塊錢,按我們現在規模)