Halo博客搭建

终于有自己的博客啦,用了很受欢迎的Halo呢,下面看看如何搭建的吧(Ubuntu环境)
 

安装Halo

下载最新的 Halo 安装包

curl -L https://github.com/halo-dev/halo/releases/download/v1.3.2/halo-1.3.2.jar --output halo-latest.jar

配置Halo

下载好的Halo以默认配置启动,默认配置使用的数据库是H2 database,我们可以使用外部配置文件来进行MySQL数据库配置和其他配置。

下载配置文件

# 下载配置文件到 ~/.halo 目录
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml

修改配置文件

# 使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml

配置文件的内容如下

server:
  port: 8090

  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:

    # H2 database configuration.
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: 123456

    # MySQL database configuration.
#    driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
#    username: root
#    password: 123456

  # H2 database console configuration.
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level
  cache: memory

可以看到MySQL的配置是被注释掉的,我们只需要把MySQL的配置打开,关掉H2的配置就能愉快的使用mysql数据库了。(MySQL 版本需 5.7 以上)
若要使用MySQL,在Halo启动前我们需要先建立与配置一致的的数据库(默认halodb),表结构在启动后会自动生成。

启动Halo

由于我需要多端管理,所有选择了在screen中启动Halo,关于screen可以看这里
先创建一个会话

screen -S blog

然后就可以启动了,启动Halo命令很简单:

java -jar halo-latest.jar

执行后看到下面的日志就代表启动成功。

run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener    : Halo has started successfully!

启动成功后就可以按照引导进行初始化啦,初始化很简单,这里就不再罗嗦。

需要注意的是:

Halo 的整个应用程序只有一个 Jar 包,它放在任何目录都是可行的。需要注意的是,Halo 的整个额外文件全部存放在 ~/.halo 目录下,包括 application.yaml(用户配置文件),template/themes(主题目录),upload(附件上传目录))。一定要保证 ~/.halo 的存在,你博客的所有资料可都存在里面。所以你完全不需要担心安装包的安危,它仅仅是个服务而已。