Fork me on GitHub

开源|一款强大易用的建站工具,支持博客、知识库、企业官网、在线商城

玩博客这事儿,回头看也有十几年了。从早年的 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 协议、插件机制、主题模板

posted @ 2026-08-20 19:19  刘哥聊技术  阅读(3)  评论(0)    收藏  举报