## 简介
Serv00 是一个提供免费虚拟主机的平台,支持的服务众多,可选择 php 版本,有多款数据库,MySQL,postgresql,mongdodb,支持 ssh 连接,没有广告,3G 空间。
Halo 是一款开源的建站工具,专注于博客,同时也适合构建个人网站。它以其简洁、易用和强大的自定义能力而著称。
## 部署
### 准备
登录 serv00 控制台,开启可执行权限和开放一个端口
新建一个 MySQL 数据库,记录数据库信息
数据库字符集选择 `Collation: utf8mb4_bin`
halo 环境
serv00 官方已经支持 jdk17
ssh 连接 serv00
shell</s><i> </i>export JAVA_VERSION="17" java --version<i> </i><e>
写入到环境变量
shell</s><i> </i>echo 'export JAVA_VERSION="17"' >> $HOME/.profile source $HOME/.profile<i> </i><e>
### 安装 halo
创建存放运行包的目录,这里以 `~/app` 为例
shell</s><i> </i>mkdir ~/app && cd ~/app<i> </i><e>
下载运行包
shell</s><i> </i>wget https://dl.halo.run/release/halo-2.20.12.jar -O halo.jar<i> </i><e>
创建 工作目录
shell</s><i> </i>mkdir ~/.halo2 && cd ~/.halo2<i> </i><e>
创建 Halo 配置文件
shell</s><i> </i>vim application.yaml<i> </i><e>
将以下内容复制到 `application.yaml` 中,根据下面的配置说明进行配置。
```shell
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
```
数据库配置说明:
| | | | -------------------------- | ----------------------------------------------------------- || | || | || | || | |参数名 | 描述 |
---|---|
数据库连接地址,详细可查阅下方的 | |
数据库用户名 | |
数据库密码 | |
数据库平台名称,支持 |
配置对应关系:
| | | | | ----------- | ---------------------------------------------------------------------------------- | -------------------------- || | | || | | || | | || | | |链接方式 | 链接地址格式 | |
---|---|---|
PostgreSQL | postgresql | |
MySQL | mysql | |
MariaDB | mariadb | |
H2 Database | h2 |
测试运行 Halo
shell</s><i> </i>cd ~/app && java -server -Xms256m -Xmx400m -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/<i> </i><e>
### 初始化 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 命令填写如下的内容
shell</s><i> </i>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 &<i> </i><e>
### 访问
使用 serv00 分配的域名加上端口即可访问
shell</s><i> </i>http://<username>.serv00.net:<port><i> </i><e>
如果不想使用端口,并使用 https
推荐这个教程:[使用 Vercel 部署反向代理的部署指南](https://linux.do/t/topic/15608)
## 在线预览
https://omni.seektao.cc/
PS:这是一个玩具,用不了多久就会被杀进程,只适合学习