Halo 是一款基于 Java 开发的现代化个人博客系统,设计轻量、功能完善,支持用户快速搭建独立博客,项目代码托管于 GitHub,采用 GPL-v3.0 协议开源。Halo采用可插拔的架构设计,不同功能模块之间的耦合度非常低,提高了系统的灵活性,方便根据需求扩展和调整。
1、内容管理
文章发布支持 Markdown 格式,内置编辑器可实时预览效果,支持自动生成文章别名(基于标题拼音)。
草稿箱功能确保编辑内容不丢失,预览草稿时不会计入访问量统计。
静态页面与自定义菜单管理,便于构建导航栏与独立页面。
2、多媒体支持
集成主流云存储服务(阿里云、腾讯云、七牛云等),支持通过插件扩展兼容 Amazon S3 协议的对象存储。
附件上传支持重命名策略,可自定义文件名模板(如日期、随机字符组合)。
3、扩展与集成
插件市场提供主题下载、存储策略管理等功能,支持在线安装或手动上传。
开发者工具包含实时日志监控与 API 文档生成(Swagger),便于调试与接口管理。
1、后端框架
基于 Spring Boot 构建,依赖 Spring Data JPA 实现数据持久化,默认使用 H2 嵌入式数据库,可切换至 MySQL。
集成 Freemarker 模板引擎渲染页面,支持热加载提升开发效率。
2、工具库与组件
工具类:Hutool 提供加密、HTTP 请求等基础功能。
文档处理:Flexmark 实现 Markdown 转 HTML,支持表格、任务列表等扩展语法。
缓存与性能优化:默认启用内存缓存,支持通过配置切换至 Ehcache。
1、环境要求
JDK 11 或更高版本,Gradle 作为构建工具。
推荐使用最新 Release 版本代码,避免开发分支潜在问题。
2、启动步骤 下载 JAR 包:
wget https://dl.halo.run/release/halo-1.4.2.jar -O halo-latest.jar
运行命令:
java -jar halo-latest.jar
访问 http://localhost:8090
完成初始化配置。
3、数据备份与升级
升级前备份 ~/.halo
目录,替换旧版 JAR 文件后重启服务。
Docker 部署需注意映射路径一致性,避免数据丢失。
1、对象存储插件
支持阿里云、腾讯云等 S3 兼容服务,配置需填写 Endpoint、Access Key 及存储桶名称。
文件上传目录支持动态占位符(如 ${year}/${month}
),便于分类管理。
2、主题定制
官方主题仓库提供多款设计模板,支持在线下载与本地调试。
自定义主题需遵循 Halo 目录结构,通过开发者模式实时加载变更。