使用 JAR 文件部署
在继续操作之前,我们推荐您先阅读《写在前面》,这可以快速帮助你了解 Halo。
依赖检查
在开始之前,需要确保服务器已经满足以下条件:
- Java 环境,版本要求:
- 2.21 以上版本:JRE 21
- 2.20 及以下版本:JRE 17
- 数据库(任一)
由于 Linux 发行版本的差异以及包管理器的不同,此文档不会涉及到如何安装 Java 环境以及数据库,建议查阅对应依赖的官方文档进行安装。
安装
创建新的系统用户
我们不推荐直接使用系统 root 用户来运行 Halo。如果你需要直接使用 root 用户,请跳过这一步。
创建一个名为 halo 的用户(名字可以随意)
为 halo 用户创建密码
登录到 halo 账户
创建存放运行包的目录
这里以
~/app为例
下载运行包
Halo 主要区分为社区版和付费版,这两个版本使用不同的 JAR 文件,以下是 JAR 文件下载地址:
后续文档将使用 halo-pro-<version>.jar 为例,如果需要使用社区版,将 halo-pro 改为 halo 即可。
创建 工作目录
创建 Halo 配置文件
将以下内容复制到 application.yaml 中,根据下面的配置说明进行配置。
数据库配置说明:
配置对应关系:
-
HOST:数据库服务地址,如
localhost -
PORT:数据库服务端口,如
3306 -
DATABASE:数据库名称,如
halo,需要提前创建,以 MySQL 为例:
不推荐在生产环境使用默认的 H2 数据库,这可能因为操作不当导致数据文件损坏。如果因为某些原因(如内存不足以运行独立数据库)必须要使用,建议按时备份数据。
为了保持部署流程的简洁,此文档仅提供了必要的配置示例,完整的配置选项列表可查阅:配置说明
配置完成之后,保存即可。
测试运行 Halo
如果指定了其他工作目录,请将 $HOME/.halo2/ 替换为相应的绝对路径,并确保路径末尾带有 /。
测试访问
如果没有观察到异常日志,即可尝试访问 Halo
打开 http://ip:端口号 即可跳转到初始化页面。
如测试启动正常,请继续看作为服务运行部分,第 8 步仅仅作为测试。当你关闭 ssh 连接之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip:端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
激活许可证
可以参考 许可证激活 进行激活,社区版无需此步骤。
作为服务运行
下面将介绍如何将 Halo 作为服务运行,以实现在关闭 ssh 连接后,Halo 仍然可以正常运行。
此文档以 Systemd 为例,也可以参考:Installing Spring Boot Applications
切换账户
退出 halo 账户,登录到 root 账户
如果当前就是 root 账户,请略过此步骤。
创建 halo.service 文件
将以下内容复制到 halo.service 中,根据下面的配置说明进行配置。
- JAR_PATH:Halo 运行包的绝对路径,例如
/home/halo/app/halo.jar,注意:此路径不支持~符号。 - USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除
User=USER。
请确保 /usr/bin/java 是正确无误的。建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。如果指定了其他工作目录,请像上面一样改动。
配置完成之后,保存即可。
重新加载 systemd
运行服务
在系统启动时启动服务
最后,你可以通过下面的命令查看服务日志:
版本升级
备份数据
可以参考 备份与恢复 进行完整备份(可选,但推荐备份)。
停止 Halo 服务
下载新版本
下载新版本的 Halo 运行包,覆盖原有的运行包
以下是官方维护的下载地址:
启动 Halo 服务
反向代理
你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其的基本操作有一定了解。如果你对它们没有任何了解,可以参考我们更为详细的反向代理文档: