最近筆者須要頻繁更新和發佈文檔,所以有了尋找一個在線markdown文檔平臺的想法。我最終在做業部落,gitbook,codimd之中選擇了codimd,而且將其部署到了本身的服務器以便提升訪問速度,所以寫下這篇博客記錄本身部署和使用的心得,供你們參考借鑑。html
hackmd是一款著名的在線協做markdown編輯器產品mysql
CodiMD是HackMD的免費開源版本git
你可使用官方提供的codimd服務github
筆者是參考官方文檔進行安裝的sql
總共須要如下步驟:docker
筆者使用寶塔面板,所以直接如圖添加一個數據庫數據庫
請注意容許全部ip訪問該數據庫,由於docker容器訪問不屬於本地ip訪問,能夠看詳細解釋安全
筆者直接使用yum進行安裝,執行如下指令便可服務器
yum install git
一樣使用yum進行安裝,執行如下指令便可markdown
yum install docker
yum install docker-compose
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數據庫的目的,能夠看其餘解決方案和詳細解釋
安裝完成後可使用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
這樣的日誌就表示安裝成功了
codimd默認是運行在3000端口的,所以須要防火牆放行
防火牆放行3000端口
阿里雲安全組規則放行3000端口
你可使用端口掃描工具確認端口已經正確放行
訪問你的服務器主機ip的3000端口,便可看到codimd的主頁
有了codimd以後你就能夠在線編輯你的markdown文檔了,還能夠邀請別人一塊兒編輯
筆者在整個codimd的安裝過程仍是比較順利,使用docker-compose安裝十分便捷,主要遇到的問題是第一次安裝以後查看日誌發現訪問不了數據庫,後來查了資料才知道docker容器內訪問localhost會被解釋成docker容器自己的ip而不是常規的127.0.0.1,並且,使用docker容器訪問數據庫,也不屬於本地服務器訪問數據庫。安裝完成以後使用起來仍是比較方便的,編輯器的頁面比較美觀,終於能夠擺脫離線編輯文檔還要寫各類版本號更新記錄的日子了。