简介

Halo

Halo是一款个人博客平台,具有可视化界面,易于部署,自带评论系统和附件系统,是小白入门的不二选择

Replit

Replit是一个基于浏览器的云端协同开发平台,可用于构建开发环境、实时协作、托管网络应用等。Replit提供可创建动态或者静态网站的容器,并会自动生成免费https域名.这代表着任何人都可以试用Replit的云服务器创建自己的网站,或者是其他的服务,而且这一切,都是免费的

Halo-on-replit

Halo官方部署方式是使用Docker安装,但是Replit免费用户只提供了0.5H0.5G的服务器,并不足以安装Docekr,这里需要使用舒夏大佬根据Halo源码编译的jar包,Github项目地址舒夏大佬教程博客

准备

  • Replit账户
  • 域名(非必备)
  • UptimeRobot(非必须)

教程

注册账号及账户设置(如果已经注册过Replit账号可以跳过这一步)

注册地址,可以用GitHub账户/Google账户/邮箱进行注册。(如果没有自己的域名,那么起名的时候慎重
点击Sign UP创建账户
回到主页,点击左上角的的用户名,选择Account
点击这里再选择Account
依次填写First nameLast name以及Bio(简介),向下滑动,找到Your server location
选择部署区域
这里有两个位置可以选择,分别是美国和印度,据说美国的带宽只有10m,而印度有50m,但是博客对带宽的需求并不大,可以选择美国,如果你准备在Replit搭建其他对宽带需求高的服务,可以选择印度

创建项目

返回主页,点击左上角的Create Repl
创建项目
Template选择Bash或者Blank Repl,Tittle随自己喜好填写(如果没有域名,请慎重填写,虽然可以改)
选择仓库语言

了解Replit项目的大致操作方法

进入项目后,大概分为4栏,最左侧为项目文件导航(下方为工具),中间为文件内容,最左侧为命令行
如果你找不到命令行,找到最下角的Tools,找到里面的Console或者Shell就可以找到命令行了

安装Halo

Halo有两个版本,分别为1.x和2.x,两个版本差异较大,插件主题不可以混用,大家酌情选择,这里以安装2.x为例,1.x的版本也类似。在Console或者Shell命令行输入以下代码:
安装1.x版本的Halo

1
bash <(curl -s https://raw.githubusercontent.com/sxbai/halo-on-replit/master/install.sh)

安装2.x版本的Halo

1
bash <(curl -s https://raw.githubusercontent.com/sxbai/halo-on-replit/master/install2.sh)

顺便附上2.x版本Halo的更新脚本,1.x版本的Halo无法使用

1
bash <(curl -s https://raw.githubusercontent.com/sxbai/halo-on-replit/master/update.sh)

Console或者Shell粘贴好代码后,回车即可,等待跑完后大概是这个样子的,在项目文件中有两个文件,分别是main.sh(项目启动运行脚本)其中有各种运行参数、halo.jar(舒夏大佬编译的包)有能力的话可以自行根据Halo源码编译,更近一步配置参数

配置管理员账号密码

由于Replit的免费项目是公开的(想要私人Private项目需要购买升级账户),如果直接在main的项目中配置账号密码,可能有博客被篡改的风险,所以需要在Secrets中配置用户密码,观察main.sh中的代码,可以看到有两个参数,username{username}和{password},如果不怕博客被盗可以直接把这两个参数改成自己管理员的账号密码
在左下角的Tools工具栏中找到Secrets,key中填入username,value填入管理员的账号名,再点击Add new secrets,再在key中填入passwordvalue填入管理员的密码
secrets在箭头这里,username和password这两个参数要手动添加

Halo初运行

至此,Halo-on-replit的大部分步骤已经完成,点击上方的RUN即可启动,启动完成后应该会多出一个叫Webvew的窗口,如果没有自动弹出可以找到左下方的Tools工具栏的Webvew应用打开,在Webview的最右侧有个Open in new table的按钮,点击后就可以在浏览器新的标签页中初始化Halo,博客默认的域名是https://项目名.用户名.repl.co,所以为什么我说名字很重要,https://项目名.用户名.repl.co/console为Halo的管理后台,进入初始化Halo即可,后面的内容和其他方式部署Halo一致,因此在这不再赘述

使用自己的域名

回到Replit自己的项目中,在Webview界面选择右侧的按钮Custom domain再点击Create Domain Link
我这里是已经添加过一个域名了

输入自己的域名,如果是一级域名,可以直接使用A记录进行解析,如果是二级及以上的子域名,需要使用Cname的方式域名解析,如果你需要使用Cloudflare等cdn,则需要而外添加一条txt记录,解析完后点击Link Domain等待Replit检测解析生效即可。进入main.sh将halo.external-url的参数修改为自己的域名

之后就可以使用自己的域名访问博客了。需要注意的是Replit不会为第三方域名申请ssl,如果实在是很介意的话可以使用CDN(Cloudflare的免费CDN在国内会被劣化,访问速度下降)Cloudflare在域名DNS开启小黄云(CDN)在SSL/TLS页面将模式更改为模式为灵活,然后就可以使用https访问了

Replit项目休眠

Replit在监测到项目长时间无人访问后会自行停止运行(Stop),虽然舒夏大佬在Halo2.4后的版本增加的防止休眠的代码,但是效果不怎么理想,可以使用UptimeRobot定期访问博客网页以达到阻止休眠的效果

优劣分析

优势:

  1. Halo作为有图像化界面的个人博客,相比Hexo部署方便,操作简单,适合小白上手
  2. Replit平台为免费项目。自2023年春,Replit免费账户有10G流量的限制,但至是搭建个人博客足以,并且Replit还为用户提供了免费域名,适合白嫖党

劣势:

  1. 在Replit上部署舒夏大佬的编译的jar包,无法更改更多详细配置,如网站的界面会被浏览器判断为英文,会显示翻译按钮
  2. 还是和上一条有关,只能使用Halo官方的数据库,没办法使用自己的数据库,只能使用H2数据库,并且H2数据库是存在于Replit项目内的,任何人都可以Fork你的项目,新增Secrets来访问你博客的源数据并且经本人测试H2在Replit存储Bug,会导致无法修改过去文章的信息。下面是官方对H2数据库的描述:

H2 数据库的运行方式,主要用于体验和测试,在生产环境我们不推荐使用 H2 数据库

(如果你会编译jar,前面三项其实可以自行编译解决)

  1. 自定义域名无SSL证书,只能使用http访问,如使用Cloudflare等免费CDN服务可能会导致访问速度下降,CSS丢包等情况
  2. 项目会自动休眠

相关链接