使用RailWay部署Halo CMS部落格系統

恪晨發表於2022-04-27

cover

前言

  Halo是一款CMS部落格系統,可以說是輕量版的Wordpress,基於xxxx,巴拉巴拉,算了你們自己看官方文件吧。

官方部署

  官方支援多種情況部署,linux、docker、騰訊雲平臺三種方式:

為什麼使用RailWay部署

  本來想著使用Vercel看能不能部署的,但是Vercel自動改名後同時也不再支援docker部署了,因此轉戰轉變試試RailWay。

  通過官方文件知道,RailWay支援多種部署方式,如Nodejs、Go、Docker、Java等等,詳情可見 https://docs.railway.app/ ,那麼既然支援Docker,Halo也支援docker部署,那自然RailWay肯定是支援部署Halo的,在網上查了很多,也沒有找到有人使用RailWay部署Halo的,因此總結一下寫了這篇文章。為什麼要使用RailWay部署呢?我試過以下幾種方式,但都是有所弊端;

  • Nas + Docker + DDNS
    我本來在自己家裡的Nas上使用了Docker部署了Halo,但是移動的寬頻不給公網IP,所以只能自己做內網穿透,用了frp和ddnsto,frp需要一個VPS做中轉,雖然有個騰訊雲的伺服器,但是總感覺有些麻煩,ddnsto是買了一個https://www.ddnsto.com/ 的服務,但是這個繫結後時隔一段時間需要驗證登陸才能訪問,因為需要使用halo提供的介面在小程式中獲取資料,一旦這個時間過了,小程式的介面就無法調通了,所以這個方式pass了;
  • 騰訊云云平臺
    Halo也支援在騰訊云云平臺的部署,訪問速度也不錯,部署也很方便,雲平臺的費用也還ok,但是!!自定義的域名一直繫結不了,問了客服提了工單,按照他們說的依然沒法繫結...所以只能用雲平臺自己提供的域名。有人知道怎麼解決的話,可以告訴我一聲。。
  • VPS
    因為域名無法繫結,所以暫時先放棄了使用雲平臺的方式,於是又在VPS上裝了docker,也能夠正常的訪問,但是畢竟VPS會到期的,後續續費又比較貴,所以只能試試,如果有便宜的VPS的話還是這種方式比較好的;
  • RailWay
    RailWay部署,一鍵自動部署,支援自定義域名,免費https,每個月$5的免費額度,對於個人來說基本夠用了;

部署

  • fork halo
    fork halo官方專案到自己的github中,Halo地址:https://github.com/halo-dev/halo
  • 在RailWay中匯入已經fork的Halo專案,選擇Deploy from Github repo,找到fork的專案,點選開始部署
    newProject
  • 預設第一次部署不會報錯,但是部署完成後會打不開,因為沒有設定環境變數,沒有配置dockerfile,所以是無法訪問的。
  • 設定環境變數:開啟專案在Variables中設定兩個環境變數,一個是Dockerfile的路徑,一個是訪問的埠,因為halo中的Dockerfile是放在根目錄的,因此這裡直接寫Dockerfile就好了,PORT必須是8090,因為halo中的映象已經指定了埠
    setEnvVar
  • 設定好後,RailWay會自動進行部署,你會發現又出現部署失敗了,通過檢視日誌發現,是Dockerfile中需要獲取build/libs下面的jar檔案,因為官方說支援java直接部署,其實也是直接部署的jar包,所以這裡lib下的其實也就是要部署的那個jar包;通過檢視Halo的專案原始碼,發現專案中將build資料夾加了gitignore,所以這裡肯定找不到,我的解決方案是在倉庫中下載了最新的jar包,並將其放在了build/libs資料夾下面,再將這個jar檔案提交到github上面,就可以部署成功了
    deployErr
  • 所以再換種思路,既然只需要Dockerfile和jar包,那是不是我倉庫中直接只留著這兩個檔案就好了,事實證明,是ok的;
  • 再換種思路,Halo支援java部署,RailWay也支援Java部署,那是不是不用上傳jar包了,直接部署halo的整個工程專案就好了,理論上也是可以的!但是我不會配置Java,所以大家可以自行嘗試哈!

訪問

  部署完成之後,在settings中設定一個自定義的域名,配置一下CNAME,就可以訪問啦!比如我的訪問地址是: https://halo.wangboweb.site

其他

  • 為什麼要使用halo?
      halo類似於輕量版的wordpress,我之前一直想自己做個部落格管理後臺,但是一直各種事情導致只做了一半,halo的管理系統可以匯入之前hexo上寫好的markdown檔案,且所有的標籤和分類也會自動生成,評論系統也支援的很好,最重要的一點是它提供了API訪問方式,之前在hexo中需要在小程式使用部落格的資料的時候,需要在hexo中使用hexo-restful的那個包,並且也沒有鑑權。halo中提供了對外的API介面,並且可以設定鑑權,只需要在設定-高階選項中開啟即可。
    setApi

      另外,結合開源專案https://gitee.com/fuzui/GBlog-wx,可以快速的生成一個自己的小程式部落格,簡直方便至極。

      halo上面的配置方式也比較方便,雖然主題不是很多,但是像Wordpress一樣,也可以自己去自定義,其實也還不錯的!

總結

  至此,在RailWay上部署halo部落格系統就完成啦,又想法的朋友可以自己去試試啦!再結合上上面說的小程式專案,希望大家能夠做一個自己的部落格系統+部落格小程式!

相關文章