跳到主要内容

快速安装 Halo

在 Sealos 上快速部署 Halo 博客平台

Halo 是一款强大易用的开源建站工具,本文将介绍如何在 Sealos 上部署 Halo,同时在 Sealos 上部署 PostgreSQL 可以帮助你轻松地管理和维护数据库,以满足不同的业务需求。

步骤 1:准备 PostgreSQL

使用 Sealos 数据库安装 PostgreSQL

参考 Sealos 上部署 PostgreSQL ,一分钟即可成功安装和使用 PostgreSQL。

查看数据库配置:

保存这里生成的配置中包含数据库的用户名密码以及数据库连接方式,用于下文 Halo 中配置:

图中可以看到 PostgreSQL 连接配置为:

Username: postgres

Password: rcx7f47m

Connection: postgresql://postgres:rcx7f47m@dbname-postgresql.ns-sy32q9p9.svc:5432

步骤 2: 在 Sealos 中部署 Halo应用

打开 应用管理

填写配置

  • 自定义应用名称

  • 镜像名称设置为 halohub/halo:2.5

  • CPU 和存储应根据实际情况进行配置,memory 需要 500Mi 的内存才能启动 Halo,这里可以参考官方 prepare:https://docs.halo.run/getting-started/prepare

  • 暴露端口应为 8090。同时,设置为外网访问将自动为应用配置一个出口域名用于外网访问,同时需要在 Halo 中进行配置该地址

  • 环境变量包括数据库配置和其他相关配置。需要注意的是,你需要根据你在 步骤 1 中设置的用户名、密码和 DNS 来配置数据库连接信息。同时,你还需要为 Halo 配置超级管理员的用户名和密码。

配置 Halo 环境变量

spring.sql.init.platform=postgresql
spring.r2dbc.url=r2dbc:pool:postgresql://postgres:rcx7f47m@dbname-postgresql.ns-sy32q9p9.svc:5432/halo
spring.r2dbc.username=postgres
spring.r2dbc.password=rcx7f47m
halo.external-url=tmtdvfjiyyfh.cloud.sealos.io
halo.security.initializer.superadminusername=root
halo.security.initializer.superadminpassword=sealos

环境变量配置详解:

参数名描述
spring.r2dbc.url数据库连接地址,详细可查阅下方的 数据库链接格式
spring.r2dbc.username数据库用户名
spring.r2dbc.password数据库密码
spring.sql.init.platform数据库平台名称,支持 postgresql、mysql、h2
halo.external-url外部访问链接,如果需要在公网访问,需要配置为实际访问地址
halo.security.initializer.superadminusername初始超级管理员用户名
halo.security.initializer.superadminpassword初始超级管理员密码

数据库的链接格式(这里我们使用 postgresql 的格式):

链接方式链接地址格式spring.sql.init.platform
PostgreSQLr2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}postgresql
MySQLr2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}mysql
MariaDBr2dbc:pool:mariadb://{HOST}:{PORT}/{DATABASE}mysql
H2 Databaser2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSEh2

网络配置

环境变量配置

配置持久化存储卷

挂载 /root/.halo2 目录来持久化 halo 数据 :

步骤 3: 使用外网访问 Halo

成功启动应用后,即可通过外网访问地址访问 Halo 进行配置:

初始化 Halo

First Halo

FAQ

忘记密码

进入 「应用管理」,点击日志查看

可以看到这里的日志中:用户名:admin 密码:QTu2J2xgUQ3ngqUo

或终端执行如下命令查看日志

root@td3q8uc46:~# kubectl logs halo-0 | grep 'Generated random password:' | tail -1
2023-05-30T13:32:16.942+08:00 INFO 7 --- [-controller-t-1] r.h.app.security.SuperAdminInitializer : === Generated random password: QTu2J2xgUQ3ngqUo for super administrator: admin ===