Termux 部署 Halo2.20

JC39
JC39
Published on 2025-02-11 / 29 Visits
0
0

Termux 部署 Halo2.20

[!NOTE]

前置内容:Termux 配置使用

环境

pkg update
pkg install wget
pkg install openjdk-21 # 需要 JDK17 及以上

配置 PostgreSQL

psql -U <username> -d postgres                     # 进入 psql 命令行,Termux 的默认用户名可 whoami 查看
CREATE USER halo WITH PASSWORD 'P@ssword123';      # 创建 halo 账密
CREATE DATABASE halo2_db OWNER halo;               # 创建 halo2_db 数据库
GRANT ALL PRIVILEGES ON DATABASE halo2_db TO halo; # 授权
\q                                                 # 退出 psql 命令行

部署 Halo2.20

mkdir -p ~/halo2/app-jar
wget https://dl.halo.run/release/halo-2.20.14.jar -O ~/halo2/app-jar/halo.jar

vim ~/halo2/application.yaml,写入配置:

server:
  # 运行端口
  port: 8090
spring:
  r2dbc:
    url: r2dbc:pool:postgresql://localhost:5432/halo2_db
    username: halo
    password: P@ssword123
  sql:
    init:
      mode: always
      platform: postgresql
halo:
  # 工作目录位置
  work-dir: ${user.home}/halo2
  # 外部访问地址
  external-url: http://localhost:8090

运行 Halo2.20

终端运行:

cd ~/halo2/app-jar/ && java -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:$HOME/halo2/

或者作为 runit 服务运行:

export tmp_svc="halo2"
mkdir -p $PREFIX/var/service/$tmp_svc/log

# 链接日志脚本
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/$tmp_svc/log/run
# 编写运行脚本
tee $PREFIX/var/service/$tmp_svc/run > /dev/null << 'EOF'
#!/data/data/com.termux/files/usr/bin/sh
while ! pg_isready -h localhost -p 5432; do echo "Waiting for PostgreSQL to be ready..."; sleep 2; done
exec java -Dfile.encoding=UTF-8 -jar ~/halo2/app-jar/halo.jar --spring.config.additional-location=optional:file:$HOME/halo2/ 2>&1
EOF
chmod +x $PREFIX/var/service/$tmp_svc/run

# 设为开机自启动
sv-enable halo2

# 追踪查看日志
tail -f $PREFIX/var/log/sv/halo2/current

访问 http://localhost:8090http://127.0.0.1:8090,完成 Halo2 初始化。

外网访问需要修改配置,或完善 Nginx 配置。


Comment