前言

halo是一个国产新兴的一个开源博客系统,用java编写。相比wordpress这个老牌系统,halo有着更好的功能集成程度以及性能(点名批评wp后台一个页面加载超过十几秒),这篇文章会对halo的直接jar运行方式进行讲解,同时也会根据我运行时遇到的一些问题分享一些经验。


部署过程

先来看halo官方给的前置条件:

  1. 一个数据库服务器(mysql,mariaDB,PostgreSQL皆可)
  2. JAVA运行环境(最低JRE17)
    看起来很简单?但是截止2025.04.27,该教程提供的是基于linux下的安装。所以在winodws下,一些步骤就会很不一样。

一,安装openJDK

openJDK是一个开源的JAVA开发人员工具包,其中也包括了我们的JRE运行环境。它有着多个不同的构建方,挑一个自己喜欢的即可,如Microsoft OpenJDK

二,下载halo博客的jar包

halo官方维护着两个下载地址如下
Halo官方Github项目地址
Halo官方下载站点

三,填写配置文件

你需要在账户文件夹(如 C://USER/admin/ )下创建一个名为.halo2的目录,在这个目录下创建一个名为application.yaml的文件,这就是你的halo的工作目录与配置文件。
以下是以Mysql作为数据库的配置文件示例,请根据你的实际修改数据库URL中的{HOST} {PORT} {DATABASE} (即数据库名称)

server:
  # 运行端口,这里是http端口,ssl需另外反代
  port: 8090
spring:
  # 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置
  r2dbc:
    url: r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}
    username: admin # 数据库账号
    password: 123456 # 数据库密码
  sql:
    init:
      mode: always
      # 需要配合 r2dbc 的配置进行改动
      # 根据你所使用的数据库进行改动
      platform: mysql
halo:
  # 工作目录位置
  work-dir: ${user.home}/.halo2
  # 外部访问地址,建议在整个博客部署完毕后再修改
  external-url: http://localhost:8090
  # 附件映射配置,通常用于迁移场景
  attachment:
    resource-mappings:
      - pathPattern: /upload/**
        locations:
          - migrate-from-1.x

开始运行!

一些提示

  1. 在运行前,一定要在自己的数据库服务器中提前建立与 {DATABASE} 名字相同的数据库
  2. 可以把halo的jar包提前命名为 halo.jar 方便以后的升级

运行命令

打开cmd或powershell窗口,cd 到 halo.jar 的所在目录,运行以下指令

java -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/

耐心等待一会后,访问你所设置的外部访问地址,进行初始化即可。具体可参考:halo官方文档

尾声

希望这篇文章能够帮助你完成在windows下对halo的非docker部署,如果对这篇文章有问题,还请发表评论指正。