一、前言
最近筆者需要頻繁更新和釋出文件,因此有了尋找一個線上markdown文件平臺的想法。我最終在作業部落,gitbook,codimd之中選擇了codimd,並且將其部署到了自己的伺服器以便提高訪問速度,因此寫下這篇部落格記錄自己部署和使用的心得,供大家參考借鑑。
二、codimd是什麼?
2.1 源於hackmd的超好用markdown編輯器
hackmd是一款著名的線上協作markdown編輯器產品
CodiMD是HackMD的免費開源版本
2.2 codimd的作用
- 線上編輯markdown文件
- 線上釋出markdown文件
- 和別人線上協作編輯markdown文件
你可以使用官方提供的codimd服務
三、安裝和使用
3.1 安裝前需要知道的
- 安裝之後你可以使用的功能和官方是一樣的
- 安裝的好處是,codimd官方的伺服器在美國,在國內訪問速度慢,部署到自己的伺服器可以提高訪問速度,也便於自己掌控資料庫
- 目前codimd是開放系統,所有人都可以註冊和使用你伺服器上的codimd服務
3.2 安裝步驟
筆者是參考官方文件進行安裝的
總共需要以下步驟:
- 在MySQL建立codimd使用的資料庫
- 安裝git
- 安裝docker
- 安裝docker-compose
- 安裝codimd
3.2.1 建立資料庫
筆者使用寶塔皮膚,因此直接如圖新增一個資料庫
請注意允許所有ip訪問該資料庫,因為docker容器訪問不屬於本地ip訪問,可以看詳細解釋
3.2.2 安裝git
筆者直接使用yum進行安裝,執行以下指令即可
yum install git
3.2.3 安裝docker
同樣使用yum進行安裝,執行以下指令即可
yum install docker
3.2.4 安裝docker compose
yum install docker-compose
3.2.5 安裝codimd
version: "3"
services:
codimd:
image: nabo.codimd.dev/hackmdio/hackmd:2.0.1
environment:
- CMD_DB_URL=postgres://codimd:change_password@database/codimd
- CMD_USECDN=false
ports:
- "3000:3000"
volumes:
- upload-data:/home/hackmd/app/public/uploads
restart: always
volumes:
upload-data: {}
你需要執行以下步驟完成codimd的安裝:
-
在一個目錄下建立
docker-compose.yml
,向其中貼上以上內容 -
修改其中的配置資訊
-
在該目錄下執行
docker-compose up -d
即可完成安裝
配置資訊說明:
postgres://codimd:change_password@database/codimd
這一行中各個引數的含義分別是:
資料庫連線協議://使用者名稱:密碼@資料庫主機:資料庫埠/資料庫名
我使用的是MySQL,資料庫名和使用者名稱都是codimd,因此改成:
mysql://codimd:密碼@172.18.0.1:3306/codimd
這裡我的MySQL是在docker的宿主機本地安裝的,但是主機ip沒有寫localhost,因為localhost在docker容器裡面會解釋成容器本身的ip,這樣就連不上安裝在宿主機的MySQL,所以我使用:
ip addr show docker0
檢視了宿主機的ip為172.18.0.1,然後使用宿主機ip代替localhost,就達到容器內部訪問外部的MySQL資料庫的目的,可以看其他解決方案和詳細解釋
3.2.6 檢查是否安裝成功
安裝完成後可以使用docker ps
命令檢視codimd是否已經執行
檢視執行日誌:執行以下命令
docker logs -f -t --tail 行數 容器名
通過上面的docker ps
命令中看到容器名為codimd_codimd_1
所以我執行
docker logs -f -t --tail 10 codimd_codimd_1
看到
HTTP Server listening at 0.0.0.0:3000
這樣的日誌就表示安裝成功了
3.2.7 放行埠
codimd預設是執行在3000埠的,因此需要防火牆放行
-
防火牆放行3000埠
-
阿里雲安全組規則放行3000埠
你可以使用埠掃描工具確認埠已經正確放行
3.2.8 測試使用
訪問你的伺服器主機ip的3000埠,即可看到codimd的主頁
3.3 開始寫作
有了codimd之後你就可以線上編輯你的markdown文件了,還可以邀請別人一起編輯
四、總結
筆者在整個codimd的安裝過程還是比較順利,使用docker-compose安裝十分便捷,主要遇到的問題是第一次安裝之後檢視日誌發現訪問不了資料庫,後來查了資料才知道docker容器內訪問localhost會被解釋成docker容器本身的ip而不是常規的127.0.0.1,而且,使用docker容器訪問資料庫,也不屬於本地伺服器訪問資料庫。安裝完成之後使用起來還是比較方便的,編輯器的頁面比較美觀,終於可以擺脫離線編輯文件還要寫各種版本號更新記錄的日子了。