不知道有沒有人和我一樣,覺得自建的東西是網際網路上的“自留地”、私人空間,有一種自己的一畝三分地隨心所欲的痛快。
比如自建的部落格想寫什麼隨筆就寫什麼,不用取悅讀者可以自娛自樂;再比如自建的 wiki 有不會的知識點就可以直接記錄,不用擔心被嘲笑低階。拋開共建這塊不聊,Wiki 不同於部落格的隨性,記錄的內容更注重知識點和分類,可以用來構建自己的知識網路。
如果把部落格比作“日記本”,那 wiki 就是“筆記本”它用來記錄知識點,方便用時查閱和更新,有清晰的目錄而且一個知識點還可以關聯到其它知識點,逐步擴充成“百科全書”。
一、介紹
知識在於積累,還不能忘記梳理。
今天,我們要介紹的開源專案是專門用來構建 wiki 平臺,助你梳理知識點的 wiki.js
它是一款輕量級、功能強大的 wiki 開源專案,擁有評論、Markdown 編輯器、圖片上傳、標籤、全域性搜尋、協同編輯、編輯歷史、使用者管理、谷歌分析等功能,而且支援高度自定義。
用到的技術棧也不同於老舊的 wiki 系統,它採用了 Node.js、PostgreSQL、Vue.js、Docker 等技術。基於 Docker 實現的一鍵部署,頗有 WordPress 之風,不要太爽!
重點是支援中文,而且介面簡潔還不失美感,這點足以讓它在眾多同類專案中脫穎而出。
看到這兒,你是不是手癢了呢?下面就和我一起來讓它跑起來吧!
二、安裝
開源專案成功的必要因素之一就是有詳細易懂的文件,而安裝說明又是重中之重。
Wiki.js 官方文件提供了多種部署方法,包括:Linux、macOS、Windows、Docker、k8s 等,涵蓋了幾乎所有可能性,十分全面。
下面我就介紹其中最快捷和通用的一種,即基於 Docker 的 Docker Compose 部署。
Tips:如果你不懂 Docker 建議跟著這裡逐步執行
下面我將主要介紹 Linux 下的安裝步驟,其它系統有桌面版不再贅述。
如果你機器上有 Docker 僅需兩步即可完成安裝。
第一步,安裝 docker-compose:
1、下載
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、加執行許可權
$ sudo chmod +x /usr/local/bin/docker-compose
3、建立快捷方式
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
至此,你就可以在任何地方使用 docker-compose
命令了。
第二步,執行 docker-compose:
1、建立配置檔案 docker-compose.yml
內容如下:
整個專案分為 資料庫 和 專案程式碼 兩部分,與之對應的是 pg 容器
和 wiki 容器
。
version: "3"
services:
db:
container_name: pg
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:
container_name: 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:
- "8001:3000"
volumes:
db-data:
2、在配置所在的目錄下,執行命令:
- 執行:
docker-compose up -d
- 檢視容器:
docker ps
- 停止:
docker-compose down
最後,如果你想開啟 HTTPS 的話,我這裡推薦用 Caddy 伺服器。沒用過沒關係,我們寫過介紹使用 Caddy 的文章特別簡單。
Caddyfile 的配置內容如下:
8001 埠對應的是上面 wiki 容器的 ports 埠對映
域名 {
reverse_proxy 127.0.0.1:8001
}
執行 caddy start
啟動 Caddy 伺服器,瀏覽器中訪問對應的域名,網站初始化的引導介面,就會出現在你的面前了。
至此,以上就是 wiki.js 安裝的全過程,你跑起來了嗎?
三、瑕不掩瑜
Wiki.js 並不是十全十美的,雖然我只是剛上手,但還是發現了一些美中不足:
-
第一次訪問載入速度較慢
-
雖然 wiki.js 更新積極、提交頻繁,但目前它還不支援自定義主題
-
對中文搜尋不友好,預設不支援中文搜尋,需要採用 ES 但這樣就不再輕量,或者採用 pg 外掛讓 pg 支援中文分詞
-
中文翻譯覆蓋率並不像官網展示的 100%,管理後臺裡還是有未翻譯的地方
但是瑕不掩瑜,它基本上實現了我對 wiki 想要的所有功能。而且總好過自己從頭實現一個 wiki 系統吧,後面我會用 wiki.js 做一個新的網站:
等我玩順手了搞通上面的問題就去給它提 PR 做貢獻,期待更強大的 wiki.js!
四、最後
知識需要融會貫通。
知識本是雜亂無章的,需要通過實踐經驗,讓它們建立聯絡,變得井然有序,才會得心應手,釋放出強大的創造力。
最後,用 wiki.js 構建你的知識網路,梳理已有的知識不斷推陳出新,讓它在你尋求更高突破的路上,助你一臂之力!
更多講解開源專案的文章盡在:https://github.com/HelloGitHub-Team/Article