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:8090
或 http://127.0.0.1:8090
,完成 Halo2 初始化。
外网访问需要修改配置,或完善 Nginx 配置。