前言
習慣的力量是很強大的。記得剛開始那會兒使用Markdown的時候各種變扭,可是輸出的文檔格式真心很整潔啊!時間一長,看着自己精心編寫的文檔復制粘貼到公司Wiki變成“扭曲”的形態,內心真是一忍再忍。最近幾天一直在研究提升工作效率的事情,技術文檔是其中很重要的一項,琢磨着自己動手吧,畢竟開源的力量也是很強大的。
通過Baidu、Google在各種項目之間徘徊,有的很長時間沒有更新,有的功能太過簡陋,糾結了很長時間,感興趣的同學可以使用關鍵字“Wiki Markdown”自行搜索了解一下。無意間瀏覽到Wiki.js,打開官網的那一刻,瞬間被Wiki.js那華麗的頁面吸引,如下圖:
詳細閱讀文檔后,覺得基本可以滿足需求,應該可以部署實際感受一下。考慮到依賴組件過多,特別是涉及Node.js、PostgreSQL的部分自己並不熟悉,決定詳細記錄一下“踩坑”的過程,供大家參考。
安裝要求
服務器
CPU
2核或以上。
內存
1 GB或以上。
存儲
1 GB或以上。
網絡
自動更新需要公網權限,也可以使用離線更新。
域名
專用域名。
數據庫
PostgreSQL 9.5或以上(推薦)。
Node.js
Node.js 10.12或者以上。
瀏覽器
支持多數瀏覽器,如:Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari;IE11會有兼容性問題,可正常查看內容,編輯等交互性操作會受限。
環境准備
Docker
- 拉取CentOS 7基礎鏡像
docker pull centos:7.6.1810
- 啟動容器實例
docker run -dit --net=host centos:7.6.1810 /bin/bash
注意: 網絡模式選取為“host”,后文敘述時空口實例ID為cf3f3c09a488。
- 進入容器實例
docker exec -it cf3f3c09a488 /bin/bash
- 安裝命令行工具
yum install wget sudo which rsync vim
PostgreSQL部署
- 安裝
安裝過程分為3步:安裝Yum源、安裝客戶端,以及安裝服務端。
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql12
yum install postgresql12-server
yum install postgresql12-contrib
- 初始化
mkdir -p /data0/pgsql
chown -R postgres:postgres /data0/pgsql
sudo -u postgres /usr/pgsql-12/bin/initdb -D /data0/pgsql
- 創建日志目錄
mkdir -p /var/log/pgsql
chown -R postgres:postgres /var/log/pgsql
- 啟動/查看/停止
# 啟動
sudo -u postgres /usr/pgsql-12/bin/pg_ctl -D /data0/pgsql -l /var/log/pgsql/server.log start
# 查看
sudo -u postgres /usr/pgsql-12/bin/pg_ctl -D /data0/pgsql status
# 停止
sudo -u postgres /usr/pgsql-12/bin/pg_ctl -D /data0/pgsql -m smart stop
- 創建用戶/數據庫/授權
sudo -u postgres psql
# 創建用戶
CREATE USER wikijs WITH PASSWORD 'wikijsrocks';
# 創建數據庫
CREATE DATABASE wiki OWNER wikijs;
# 授權
GRANT ALL PRIVILEGES ON DATABASE wiki TO wikijs;
Node.js安裝
- 下載安裝包
cd /tmp
wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
- 解壓安裝包
tar xvf node-v12.16.1-linux-x64.tar.xz
- 安裝
安裝過程分為3步:移動安裝包解壓目錄至/user/local、為node、npm建立軟鏈接,以及刪除安裝包。
mv node-v12.16.1-linux-x64 /usr/local/
ln -s /usr/local/node-v12.16.1-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/node-v12.16.1-linux-x64/bin/npm /usr/bin/npm
rm -rf rm -rf node-v12.16.1-linux-x64.tar.xz
Wiki.js
部署
- 下載安裝包
cd /tmp
wget https://github.com/Requarks/wiki/releases/download/2.1.113/wiki-js.tar.gz
- 解壓/移動/刪除安裝包
# 解壓
mkdir wiki
tar xzf wiki-js.tar.gz -C ./wiki
# 移動
mv wiki /usr/local/
# 刪除
rm -rf wiki-js.tar.gz
- 配置
cd /usr/local/wiki
# 重命名配置文件
mv config.sample.yml config.yml
# 配置HTTP端口
port: 3000
# 配置數據庫
db:
type: postgres
host: localhost
port: 5432
user: wikijs
pass: wikijsrocks
db: wiki
# 配置存儲目錄
dataPath: /data0/wiki
- 啟動
cd /usr/local/wiki
node server
等待,直至看到如下信息:
Browse to http://localhost:3000/ to complete setup!
通過瀏覽器打開上述地址,按照提示輸入以下信息:
Administrator Email: ***
Password: ***
Confirm Passowrd: ***
Site URL: ***
點擊“INSTALL”,等待安裝完成即可。
總結
Wiki.js整體功能還是很不錯的,可定制的地方很多,除支持Markdow的在線編輯器之外,還提供豐富的后台管理功能,詳細的內容可以參考官方文件,描述的還是比較清楚的。這里僅羅列幾項我自己覺得不是很好的地方:
COMING SOON
“COMING SOON”,中文意思:“很快到來”。整體系統很多地方都有這個字眼,標識即將開放的功能,看着不是很舒服。
文檔搜索不支持中文
即使使用官方推薦的數據庫“PostgreSQL”,中文也是無法被支持的。這對於國內的用戶來說幾乎是災難性的。Wiki.js本身還支持擴展連接多種搜索引擎,如:ElasticSearch,具體效果沒有驗證。
不支持匿名用戶訪問
用戶必須登錄系統才可以訪問文檔。
開發人員數量可憐
看Github項目統計,目前應該只有一人提供代碼。