开源|一款强大易用的建站工具,支持博客、知识库、企业官网、在线商城
玩博客这事儿,回头看也有十几年了。从早年的 WordPress、Typecho,到后来折腾 Hexo、Hugo 这类静态生成器,每个人心里大概都换过好几套方案。
WordPress 功能确实丰富,但跑久了就感觉是个庞然大物,插件一多就开始互相打架,升级一次心惊胆战。静态生成器够轻,可每次发文都要本地构建再推送,换个主题还得改模板,对非纯技术用户不算友好。
Typecho 简洁,生态却始终没起来,遇到稍复杂点的需求就得自己写代码。
不少朋友后来掏钱买了 SaaS 建站服务,并不是不想自己折腾,而是真折腾不动了,服务器要维护、主题要更新、备份要做、SEO 要调,一个人扛下来太累。
那有没有一款既保留自主可控,又不用从零造轮子的建站工具?这阵子用了一阵 Halo,感觉算把这块儿平衡得不错。
介绍
一款基于 Java 的开源建站工具,GitHub 上 39k+ Star,由飞致云团队(也就是 1Panel、JumpServer、MaxKB 那家公司)持续维护,目前已发布 300+ 版本,Docker 拉取量超过 380 万。
从个人博客、知识库,到企业网站、在线商城,都能用它搭起来。除了社区版开源免费,还有面向商业场景的专业版和商城版,社区版本身的功能对个人使用已经足够。
特点
插件化架构
Halo 比较亮眼的设计,插件独立运行,一键启停,互不干扰,想加图床、评论、SEO 工具直接去应用市场装。
主题模板机制
支持自定义配置和预览,换主题不动数据。内置编辑器同时支持富文本和 Markdown,附件管理兼容本地和 S3 协议对象存储。
全文搜索
开箱即用,也支持插件接入外部搜索引擎。还提供了 RESTful API、备份恢复、数据迁移、日志监控这些日常必备能力。近期版本接入了 AI 辅助创作和 AI 问答助手,配套 Halo CLI 和 Agent Skills。
技术架构
整体是前后端分离的现代化设计,后端走响应式编程模型,数据库连接走 R2DBC,主题渲染走服务端模板引擎。插件以独立类加载器隔离运行,避免依赖冲突。这种结构让 Halo 在保持自身轻量的同时,把扩展能力交给插件生态。
部署方式
Docker 部署,一行命令就能拉起环境:
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.26
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 配 PostgreSQL,文档直接给了完整 yaml,复制粘贴改密码就能跑。
同时也支持 1Panel 面板、Helm、宝塔、Podman、JAR 包等多种方式。默认端口 8090,数据集中在一个工作目录,备份迁移就是拷目录。
前端
后台控制台基于 Vue 3 + Vite + Tailwind CSS 构建,TypeScript 全量覆盖,交互流畅,配置项以结构化表单呈现,不用啃文档就能上手。前台主题用 Thymeleaf 模板引擎渲染,前后端都熟悉的朋友改起来没障碍,纯后端也能直接套用社区现成主题。
后端
后端基于 Spring Boot 3 + Spring 6,全链路响应式(Reactor + R2DBC),数据库支持 PostgreSQL(推荐)、MySQL、MariaDB、H2。JVM 参数可调,默认 256M 内存就能跑一个小型站点,对 1 核 2G 的小机器比较友好。鉴权、缓存、调度这些通用模块都有现成封装,业务代码聚焦在内容管理本身。
开源协议
Halo 遵循 GPL-v3.0 协议开源。对个人开发者来说,社区版完全够用,可零成本搭建博客、作品集、技术文档站。
即刻体验一波
登录后能看到完整控制台:文章管理、附件库、主题市场、插件市场、用户权限、备份恢复都在左侧菜单里整齐排开。
写篇文章试试,编辑器同时提供富文本和 Markdown 切换,粘贴图片自动上传到附件库,标签分类、SEO 元信息、定时发布一应俱全。换主题直接在市场预览,满意了一键应用,原数据完全不动。装个图床插件把附件存储切到 S3,全程不用改代码。
手头有台装了 Docker 的服务器,从拉镜像到首篇文章上线,半小时内能搞定。
下面我们一起看看部分页面:
仪表盘
分类管理

文章管理
页面管理
评论管理
附件管理

商品管理



应用管理
结语
工具好不好,用一阵才知道。
Halo 给我的感觉是,它没想做成大而全的怪兽,而是把建站这件事拆成了"核心 + 插件 + 主题"的清晰分层,按需取用。对想自己掌控数据、又不想从零写代码的朋友,可以拉个 Docker 试一下。
一款 GitHub 39k Star 的开源建站工具,基于 Spring Boot 3 + Vue 3,支持博客、知识库、企业官网、在线商城,Docker 一行命令部署,插件主题双扩展。
了解更多:
Halo、开源建站、博客系统、Spring Boot、Vue 3、Docker 部署、知识库、企业官网、在线商城、CMS、GPL 协议、插件机制、主题模板


浙公网安备 33010602011771号