使用docker安裝codimd,搭建你自己的在線協作markdown編輯器


一、前言

最近筆者需要頻繁更新和發布文檔,因此有了尋找一個在線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訪問,可以看詳細解釋

image-20200428231026983

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的主頁

image-20200428232641617

3.3 開始寫作

有了codimd之后你就可以在線編輯你的markdown文檔了,還可以邀請別人一起編輯

四、總結

筆者在整個codimd的安裝過程還是比較順利,使用docker-compose安裝十分便捷,主要遇到的問題是第一次安裝之后查看日志發現訪問不了數據庫,后來查了資料才知道docker容器內訪問localhost會被解釋成docker容器本身的ip而不是常規的127.0.0.1,而且,使用docker容器訪問數據庫,也不屬於本地服務器訪問數據庫。安裝完成之后使用起來還是比較方便的,編輯器的頁面比較美觀,終於可以擺脫離線編輯文檔還要寫各種版本號更新記錄的日子了。

五、參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM