使用RailWay部署Halo CMS博客系统

前言

  Halo是一款CMS博客系统,可以说是轻量版的Wordpress,基于xxxx,巴拉巴拉,算了你们自己看官方文档吧。

  • 官方部署
  • 为什么使用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的项目,点击开始部署


    image.png
  • 默认第一次部署不会报错,但是部署完成后会打不开,因为没有设置环境变量,没有配置dockerfile,所以是无法访问的。

  • 设置环境变量:打开项目在Variables中设置两个环境变量,一个是Dockerfile的路径,一个是访问的端口,因为halo中的Dockerfile是放在根目录的,因此这里直接写Dockerfile就好了,PORT必须是8090,因为halo中的镜像已经指定了端口


    image.png
  • 设置好后,RailWay会自动进行部署,你会发现又出现部署失败了,通过查看日志发现,是Dockerfile中需要获取build/libs下面的jar文件,因为官方说支持java直接部署,其实也是直接部署的jar包,所以这里lib下的其实也就是要部署的那个jar包;通过查看Halo的项目源码,发现项目中将build文件夹加了gitignore,所以这里肯定找不到,我的解决方案是在仓库中下载了最新的jar包,并将其放在了build/libs文件夹下面,再将这个jar文件提交到github上面,就可以部署成功了

    image.png

  • 所以再换种思路,既然只需要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接口,并且可以设置鉴权,只需要在设置-高级选项中开启即可。


    image.png

      另外,结合开源项目https://gitee.com/fuzui/GBlog-wx,可以快速的生成一个自己的小程序博客,简直方便至极。

      halo上面的配置方式也比较方便,虽然主题不是很多,但是像Wordpress一样,也可以自己去自定义,其实也还不错的!

总结

  至此,在RailWay上部署halo博客系统就完成啦,又想法的朋友可以自己去试试啦!再结合上上面说的小程序项目,希望大家能够做一个自己的博客系统+博客小程序!

你可能感兴趣的:(使用RailWay部署Halo CMS博客系统)