Halo自建站博客介绍

Halo 是什么?

Halo 是一款现代化的开源网站建设与内容管理系统(CMS) ,主要用于快速搭建博客、个人/企业网站、内容平台等。它以 强大易用、扩展灵活、插件/主题生态丰富 著称。 (GitHub)

Halo 的源码托管在 GitHub 上:

🔗 https://github.com/halo-dev/halo (GitHub)


一、定位与核心特性

1. 开源建站 CMS(Content Management System)

Halo 不是单纯的博客程序,而是一个完整的 CMS 平台

可用于:

  • 搭建博客
  • 企业/品牌展示站
  • 知识库、文档站
  • 灯塔页、个人主页等

这一平台的核心目标是:

让用户"以最少配置甚至零代码"即可建站,同时允许 深度定制网站功能与 UI 体验 。 (Halo - 强大易用的开源建站工具)


2. 技术栈

Halo 的底层技术栈核心包括:

组件 技术栈
后端 Java(基于 Spring Boot)
网络层 Netty 用于高性能异步 Web Server
数据访问 R2DBC 支持异步数据库操作
UI & 控制台 前端基于 Vue/TypeScript(集成在主仓库)

这套栈兼顾了高性能、扩展性与生态兼容性两个维度:

  • Java/Spring Boot 稳定成熟
  • R2DBC 提供异步数据访问以提升并发性能

服务器运行效率优秀且适合中小型内容站与企业官网部署。


二、核心功能模块

Halo 提供一套完整的 CMS 功能,包括但不限于:

1. 内容发布与管理

✔ 博客文章发布与分类管理

✔ 多级目录结构与标签体系

✔ 支持 Markdown、富文本内容编辑

2. 主题与插件生态

Halo 支持:

  • 主题机制:定制页面样式
  • 插件机制:扩展功能如评论、SEO、社交登录等

这意味着你不仅能"马上建站",还可以为特殊功能二次开发或自定义扩展 。 (iplc.best)


3. 管理控制台(UI 内置)

Halo 除了后端 API,还内置完整的 Web 控制台,用于:

  • 内容管理
  • 站点设置
  • 用户管理
  • 主题/插件管理
    开发环境中控制台代码托管在主仓库(ui 目录),无需独立运行服务。 (docs.halo.run)

4. 可部署方式灵活

Common deployment options:

方案 优点
Docker 容器 一键启动、环境一致
Jar 包运行 轻量部署
云服务部署 便捷弹性伸缩

官方提供镜像和示例命令用于快速跑起 Halo 环境。 (GitHub)


三、生态与社区

Halo 的生态非常活跃:

1. 主题仓库

有大量社区/官方主题供选择或自定义开发。 (GitHub)

2. 插件与扩展

通过插件你可以集成:

  • 评论系统
  • 访问统计
  • 搜索增强
  • 第三方服务对接

四、适用场景与优势

适合谁使用

  • 技术人员希望用 Java 技术栈构建网站
  • 企业/个人需要可扩展、高度定制的网站
  • 社区/博客作者需要完善 CMS 解决方案

Halo 的优势

维度 优势说明
易用性 即装即用,默认配置友好
可扩展性 主题/插件支持深度定制
技术成熟 基于 Java + Spring Boot 生态
部署灵活 支持 Docker、Jar、云部署
社区活跃 Stars 数万、活跃社区反馈

五、开发者视角亮点

1. 模块化架构

Halo 采用模块化组织代码,为功能可插拔、可测试提供天然优势。


2. API-First 设计

后台 RESTful API 设计规范,能够轻松被前端应用、移动客户端调用。


3. 技术支持与贡献

Halo 采用 GPL-3.0 开源协议 ,社区欢迎贡献,可以参与主题、插件、核心功能开发或提交 issue/PR。 (GitHub)


六、快速启动体验(官方示例)

如果你已有 Docker 环境,可以一条命令快速启动 Halo:

bash 复制代码
docker run -d --name halo -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 halohub/halo:2.21

访问:http://localhost:8090 即可体验 Halo CMS。 (GitHub)


七、参考链接

2. 安装使用Halo

2.1. 安装部署

安装部署官方文档地址如下:使用 Docker Compose 部署 | Halo 文档

yml 复制代码
version: "3.8"

services:
  halo:
    image: halohub/halo-pro:2.22.4
    container_name: halo
    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
    container_name: halo-pg
    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:

2.2. 启动容器,创建用户

2.3. 安装插件

安装相关markdown插件

2.4. 启用插件

2.5. 导入文件

2.6. 查看博客

2.7. 如果需要图床,可以接入其他的内容

相关推荐
散峰而望18 小时前
【算法竞赛】顺序表和vector
c语言·开发语言·数据结构·c++·人工智能·算法·github
MC皮蛋侠客18 小时前
部署 Sphinx 文档到 GitHub Pages 详细指南
github·全文检索·sphinx
极智-9961 天前
GitHub 热榜项目 · 日榜精选(2026-01-06)
github·开源项目·技术趋势·开发者工具
数据大魔方1 天前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
小龙1 天前
【Git 报错解决】本地分支与远程分支名称/提交历史不匹配
大数据·git·elasticsearch·github
想用offer打牌1 天前
一站式讲清Spring AI Alibaba的OverAllState和RunnableConfig
人工智能·架构·github
逛逛GitHub2 天前
推荐 5 个小众但有趣的 GitHub 开源项目。
github
极智-9962 天前
GitHub 热榜项目 · 日榜精选(2026-01-07) | protobuf、web-check、PowerToys等
github·开发工具·开源项目·数据交互·ai框架
Tfly__2 天前
Ubuntu20.04安装Genesis(最新)
linux·人工智能·pytorch·ubuntu·github·无人机·强化学习