一、Halo 是什么?
Halo 是一款由国内开发者主导的 现代化、轻量级、可扩展的开源博客系统,基于 Java 构建,定位于「个人博客 / 内容发布 / 知识记录」场景。
Halo 的核心理念是:
让内容创作回归纯粹,让博客搭建足够简单。
它特别适合:
技术博客
学习笔记
项目记录
个人品牌网站
二、Halo 的核心特点
1. 开源 & 社区活跃
完全开源(Apache License 2.0)
国内社区活跃,中文资料丰富
更新节奏稳定,长期维护
2. 现代化架构
后端:Java + Spring Boot
前端:独立 Console 管理后台
支持 REST API,便于二次开发
3. 主题与插件机制
主题系统:
支持 Freemarker / Thymeleaf
可自定义主题结构与样式
插件系统:
评论、搜索、统计、SEO
可按需扩展功能
4. Markdown 原生支持
原生 Markdown 编辑
支持代码高亮、数学公式、流程图
非常适合技术博客
5. 部署方式灵活
JAR 直接运行
Docker 单容器
Docker Compose
云服务器 / NAS / 本地均可部署
三、运行环境说明(Ubuntu 服务器)
本文档部署环境基于 Ubuntu Server,适用于以下常见版本:
Ubuntu 20.04 LTS
Ubuntu 22.04 LTS
服务器建议配置:
CPU:2 核及以上
内存:2GB(推荐 4GB)
磁盘:40GB 及以上
Ubuntu 环境下部署 Halo 的优势:
Docker 与 Docker Compose 支持成熟
运维资料丰富,问题定位方便
适合长期稳定运行个人博客
如果你希望博客:
可长期维护
可逐步扩展
不被平台绑架
👉 Halo 是一个非常稳妥的选择。
四、Docker Compose 部署 Halo(推荐方式)
使用 Docker Compose 部署 Halo,具备以下优势:
环境隔离
一次配置,长期使用
方便迁移、备份和升级
下面以 Halo + PostgreSQL 为例进行说明。
五、部署前准备
1. 环境要求
Linux 服务器(Ubuntu / CentOS 均可)
Docker ≥ 20.x
Docker Compose ≥ 2.x
https://cloud.tencent.com/developer/article/2454497?cps_key=1d358d18a7a17b4a6df8d67a62fd3d3d
六、docker-compose.yml 示例(安装社区版)
https://docs.halo.run/getting-started/install/docker-compose
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.22
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=halo
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- --spring.r2dbc.password=openpostgresql
- --spring.sql.init.platform=postgresql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: postgres:15.4
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=openpostgresql
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
networks:
halo_network:七、启动与访问
docker compose up -d启动完成后访问:
博客前台:
http://服务器IP:8090
管理后台:
http://服务器IP:8090/console
首次访问会进入 初始化向导:
设置站点名称
创建管理员账号
配置基础信息
八、常用运维命令
# 查看状态
docker compose ps
# 查看日志
docker compose logs -f halo
# 重启服务
docker compose restart
# 停止服务
docker compose down九、升级与备份建议
1. 升级 Halo
修改 docker-compose.yaml 中配置的镜像版本。
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.22docker compose up -d2. 数据备份重点
./halo(配置与元数据)./data/db(数据库)./data/uploads(附件与图片)
建议:
定期打包备份
配合对象存储(OSS / MinIO)
https://www.bing.com/images/search?view=detailV2&ccid=gZdoGHaq&id=66B63D5C3E9BEAE20348EE7416F1AD7D606F93E5&thid=OIP.gZdoGHaqXRPmAYyhNHsSbQHaEJ&mediaurl=https%3a%2f%2fimg95.699pic.com%2fphoto%2f60001%2f6865.jpg_wh860.jpg&cdnurl=https%3a%2f%2fth.bing.com%2fth%2fid%2fR.8197681876aa5d13e6018ca1347b126d%3frik%3d5ZNvYH2t8RZ07g%26pid%3dImgRaw%26r%3d0&exph=482&expw=860&q=%e7%94%b0%e9%87%8e&FORM=IRPRST&ck=6D6D95B071B82FDB27022CBF45FE216F&selectedIndex=0&itb=0