serv00部署halo,你的现代化博客系统

简介

Serv00 是一个提供免费虚拟主机的平台,支持的服务众多,可选择 php 版本,有多款数据库,MySQL,postgresql,mongdodb,支持 ssh 连接,没有广告,3G 空间。

官网:https://www.serv00.com/

Halo 是一款开源的建站工具,专注于博客,同时也适合构建个人网站。它以其简洁、易用和强大的自定义能力而著称。

官网:https://www.halo.run/

部署

准备

登录 serv00 控制台,开启可执行权限和开放一个端口

新建一个 MySQL 数据库,记录数据库信息

数据库字符集选择 Collation: utf8mb4_bin

halo 环境

  1. Java 环境,目前 Halo 最低需要 JRE 17 的环境。
  2. 数据库(任一)

serv00 官方已经支持 jdk17

ssh 连接 serv00

1
2
export JAVA_VERSION="17"
java --version

写入到环境变量

1
2
echo 'export JAVA_VERSION="17"' >> $HOME/.profile
source $HOME/.profile

安装 halo

创建存放运行包的目录,这里以 ~/app 为例

1
mkdir ~/app && cd ~/app

下载运行包

1
wget https://dl.halo.run/release/halo-2.20.12.jar -O halo.jar

创建 工作目录

1
mkdir ~/.halo2 && cd ~/.halo2

创建 Halo 配置文件

1
vim application.yaml

将以下内容复制到 application.yaml 中,根据下面的配置说明进行配置。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
server:
  # 运行端口
  port: 8090
spring:
  # 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置
  r2dbc:
    url: r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE
    username: admin
    password: 123456
  sql:
    init:
      mode: always
      # 需要配合 r2dbc 的配置进行改动
      platform: h2
halo:
  # 工作目录位置
  work-dir: ${user.home}/.halo2
  # 外部访问地址
  external-url: http://localhost:8090
  # 附件映射配置,通常用于迁移场景
  attachment:
    resource-mappings:
      - pathPattern: /upload/**
        locations:
          - migrate-from-1.x

数据库配置说明:

参数名 描述
spring.r2dbc.url 数据库连接地址,详细可查阅下方的 配置对应关系
spring.r2dbc.username 数据库用户名
spring.r2dbc.password 数据库密码
spring.sql.init.platform 数据库平台名称,支持 postgresqlmysqlmariadbh2

配置对应关系:

链接方式 链接地址格式 spring.sql.init.platform
PostgreSQL r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE} postgresql
MySQL r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE} mysql
MariaDB r2dbc:pool:mariadb://{HOST}:{PORT}/{DATABASE} mariadb
H2 Database r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE h2

测试运行 Halo

1
cd ~/app && java  -server -Xms256m -Xmx400m -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/

初始化 halo

设置站点名,用户名,密码,邮箱

后台运行

由于 serv00 不能使用 system,防止 serv00 杀掉进程,我们使用定时任务,定时重启

登录 serv00 控制台,新增定时任务

Label Value Extra
Specify time Specify manually
Form type Advanced
Minute Every 10
Hour Each time *
Day of month Each time *
Month Each time *
Day of week Each time *

Command 命令填写如下的内容

1
pkill -f halo.jar; nohup java -server -Xms256m -Xmx400m -Dfile.encoding=UTF-8 -jar $HOME/app/halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/ > /dev/null 2>&1 &

访问

使用 serv00 分配的域名加上端口即可访问

1
http://<username>.serv00.net:<port>

如果不想使用端口,并使用 https

推荐这个教程:使用 Vercel 部署反向代理的部署指南

在线预览

https://omni.seektao.cc/

PS:这是一个玩具,用不了多久就会被杀进程,只适合学习

页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading
使用 Hugo 构建
主题 StackJimmy 设计
-->