前言
Halo是一款CMS博客系統,可以説是輕量版的Wordpress,基於xxxx,巴拉巴拉,算了你們自己看官方文檔吧。
-
使用RailWay部署Halo CMS博客系統
- 官方部署
- 為什麼使用RailWay部署
- 部署
- 訪問
- 其他
- 總結
官方部署
官方支持多種情況部署,linux、docker、騰訊雲平台三種方式:
- https://halo.run/#quickstart
- https://docs.halo.run
為什麼使用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的項目,點擊開始部署
- 默認第一次部署不會報錯,但是部署完成後會打不開,因為沒有設置環境變量,沒有配置dockerfile,所以是無法訪問的。
- 設置環境變量:打開項目在Variables中設置兩個環境變量,一個是Dockerfile的路徑,一個是訪問的端口,因為halo中的Dockerfile是放在根目錄的,因此這裏直接寫Dockerfile就好了,PORT必須是8090,因為halo中的鏡像已經指定了端口
- 設置好後,RailWay會自動進行部署,你會發現又出現部署失敗了,通過查看日誌發現,是Dockerfile中需要獲取build/libs下面的jar文件,因為官方説支持java直接部署,其實也是直接部署的jar包,所以這裏lib下的其實也就是要部署的那個jar包;通過查看Halo的項目源碼,發現項目中將build文件夾加了gitignore,所以這裏肯定找不到,我的解決方案是在倉庫中下載了最新的jar包,並將其放在了build/libs文件夾下面,再將這個jar文件提交到github上面,就可以部署成功了
- 所以再換種思路,既然只需要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接口,並且可以設置鑑權,只需要在設置-高級選項中開啓即可。
另外,結合開源項目https://gitee.com/fuzui/GBlog-wx,可以快速的生成一個自己的小程序博客,簡直方便至極。
halo上面的配置方式也比較方便,雖然主題不是很多,但是像Wordpress一樣,也可以自己去自定義,其實也還不錯的!
總結
至此,在RailWay上部署halo博客系統就完成啦,又想法的朋友可以自己去試試啦!再結合上上面説的小程序項目,希望大家能夠做一個自己的博客系統+博客小程序!