Serv00搭建halo博客

发布于 2024-08-24  237 次阅读


1、部署应用前的一些准备工作

根据邮箱提供的SSH进行连接,然后安装进程管理工具Pm2
可以下载如xshell之类的工具连接或者使用webssh也行
SSH 连接 serv00 之后,直接使用一键脚本安装 pm2 :

bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)

安装完成后可以使用which pm2来查看pm2是否安装成功(如果未找到命令重新连接ssh即可)

2、安装halo

首先在 Panel 中放行一个端口,接着按照下表 Add a New Website :添加站点

KeyValue
Domainxxx.USERNAME.serv00.net(也可以把原有的 USERNAME.serv00.net 删掉后重新添加)
Website Typeproxy
Proxy Targetlocalhost
Proxy URL留空
Proxy port刚才放行的端口
Use HTPPSFalse
DNS supportFalse(如果是cf域名)True(其他的域名)

添加完新站点后,在 MySQL 选项卡中中新建 MySQL 数据库,用于填入接入 Halo

接着 SSH 登入,并进入刚刚你新建的域名目录下的 public_html 路径下:

cd domains/你的域名/public_html

# 下载jar包
release_info=$(curl -s https://api.github.com/repos/halo-dev/halo/releases/latest)
jar_url=$(echo "$release_info" | jq -r '.assets[] | select(.name | endswith(".jar")) | .browser_download_url')
curl -L "$jar_url" -o halo.jar

在 halo.jar 所在路径下新建 .halo2 文件夹,进入其中,新建文件 application.yaml 然后并配置其内容:

# 新建文件夹
mkdir -p .halo2
# 新建并填入配置
cat > .halo2/application.yaml << EOF
server:
  port: 你在面板中放行的端口
  # Response data gzip.
  compression:
    enabled: false
spring:
  #sql:
  #  init.platform: mysql
  r2dbc:
    url: r2dbc:pool:mysql://数据库地址:3306/数据库名
    username: 数据库用户名
    password: 数据库密码
halo:
  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin
  # memory or level
  cache: level
EOF

在 halo.jar 所在路径下新建 run.sh 运行脚本:

cat > run.sh << EOF
#!/bin/bash
export HALO_WORK_DIR="$PWD/.halo2"
export HALO_EXTERNAL_URL="https://你的域名"
exec java17 -server -Xms128m -Xmx256m -jar -Duser.timezone=Asia/Shanghai $PWD/halo.jar --spring.config.additional-location=$PWD/.halo2/application.yaml
EOF

测试运行:

chmod +x run.sh && ./run.sh
  • 确定运行没有问题后,按 Ctrl+c即可停止运行。

3、使用pm2管理运行:

chmod +x run.sh && pm2 start ./run.sh --name halo
  • pm2其实也能用,serv00也不会因此而封你的号,而且进程的存活时间其实还挺长
    我感觉如果是比较靠前的老号估计进程都不会掉,如果掉了去github上写个actions
    用来定时运行脚本就行,使用自用运行没啥用,官方自带的自启任务容易失效

最后安装应用市场:https://www.halo.run/store/apps/app-VYJbF