首页
/ 2025最新|Halo开源建站工具从0到1完整部署指南:告别复杂配置,30分钟搭建专业博客

2025最新|Halo开源建站工具从0到1完整部署指南:告别复杂配置,30分钟搭建专业博客

2026-02-04 04:04:14作者:郦嵘贵Just

引言:你还在为建站烦恼吗?

还在为WordPress的臃肿代码头疼?还在为Typecho的插件生态发愁?作为一名内容创作者,你是否也曾梦想拥有一个轻量高效、高度可定制的个人网站,却被复杂的服务器配置和繁琐的部署流程劝退?

本文将带你零门槛上手Halo(ˈheɪloʊ,中文名为"光环")——这款2025年最受开发者欢迎的开源建站工具,通过Docker、1Panel、手动部署三种方案,让你在30分钟内完成从环境准备到网站上线的全流程。

读完本文你将获得:

  • 3种主流部署方案的详细对比与操作指南
  • 企业级服务器安全配置与性能优化技巧
  • 插件与主题生态系统的深度应用方法
  • 常见故障排查与数据迁移解决方案
  • 价值299元的开源建站资源包(含独家主题与插件)

一、Halo核心优势解析

Halo作为一款现代化的开源建站工具,凭借其卓越的性能和灵活的扩展性,在GitHub上已积累超过50k Star,Docker镜像拉取量突破1000万次,成为开发者首选的博客与内容管理系统。

1.1 技术架构对比

特性 Halo 2.21 WordPress 6.4 Typecho 1.2
编程语言 Java + Vue3 PHP PHP
数据库支持 MySQL/PostgreSQL MySQL MySQL/SQLite
内存占用 ≈150MB ≈512MB ≈80MB
页面加载速度 ≈200ms ≈800ms ≈350ms
插件生态 300+ 专用插件 50000+ 插件 100+ 插件
部署难度 ★★☆☆☆ ★★★☆☆ ★★☆☆☆
定制自由度 ★★★★★ ★★★★☆ ★★★☆☆

1.2 核心功能架构图

graph TD
    A[核心框架] --> B[Spring Boot 3.x]
    A --> C[Vue 3 + TypeScript]
    A --> D[H2/MariaDB/PostgreSQL]
    E[功能模块] --> F[内容管理系统]
    E --> G[用户权限系统]
    E --> H[插件扩展系统]
    E --> I[主题渲染引擎]
    E --> J[数据备份系统]
    K[生态系统] --> L[官方应用市场]
    K --> M[开源主题库]
    K --> N[开发者社区]

1.3 适用场景分析

Halo特别适合以下三类用户:

  1. 个人创作者:无需专业技术背景,通过可视化界面快速搭建个人博客
  2. 开发团队:利用开放API和插件系统构建企业级内容平台
  3. 教育机构:部署轻量化CMS系统管理教学资源与公告

二、环境准备与前置知识

在开始部署前,请确保你的环境满足以下要求,并准备好必要的工具和基础知识。

2.1 系统环境要求

环境 最低配置 推荐配置
CPU 1核 2核及以上
内存 1GB RAM 2GB RAM
存储 10GB 可用空间 20GB SSD
操作系统 Linux/Unix/macOS/Windows Ubuntu 22.04 LTS
网络 稳定互联网连接 独立公网IP

2.2 必备工具清单

  • 终端工具:Windows推荐使用FinalShellTabby,macOS/Linux使用系统自带终端
  • 文件传输FileZilla或终端命令scp
  • 文本编辑器VS Code(远程开发插件)
  • SSH客户端:系统自带或PuTTY
  • Docker环境Docker Desktop(如选择Docker部署方案)

2.3 网络环境配置

确保服务器开放以下端口:

pie
    title 服务器端口分配
    "80/TCP (HTTP)" : 25
    "443/TCP (HTTPS)" : 25
    "8090/TCP (Halo默认端口)" : 20
    "22/TCP (SSH)" : 15
    "其他预留端口" : 15

安全提示:生产环境中建议只开放22、80、443端口,通过Nginx反向代理访问Halo,避免直接暴露8090端口。

三、三种部署方案详解

3.1 Docker快速部署(推荐新手)

Docker部署是最简单快捷的方式,适合快速体验和生产环境使用。

3.1.1 安装Docker环境

Ubuntu/Debian系统

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装Docker依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加Docker仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io

# 将当前用户添加到docker组(避免每次使用sudo)
sudo usermod -aG docker $USER

# 启动Docker服务
sudo systemctl start docker && sudo systemctl enable docker

CentOS/RHEL系统

# 安装Docker依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动Docker服务
sudo systemctl start docker && sudo systemctl enable docker

# 将当前用户添加到docker组
sudo usermod -aG docker $USER

注意:执行完上述命令后需要注销并重新登录,才能使用户组更改生效。

3.1.2 启动Halo容器

# 创建数据目录
mkdir -p ~/.halo2

# 启动Halo容器(最新稳定版)
docker run -d \
  --name halo \
  -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 \
  --restart unless-stopped \
  halohub/halo:2.21

参数说明:

  • -d:后台运行容器
  • --name halo:为容器指定名称
  • -p 8090:8090:端口映射(主机端口:容器端口)
  • -v ~/.halo2:/root/.halo2:数据卷挂载,保证数据持久化
  • --restart unless-stopped:容器退出时自动重启(除非手动停止)

3.1.3 验证部署结果

# 查看容器运行状态
docker ps | grep halo

# 查看容器日志
docker logs -f halo

当看到类似以下日志时,表示Halo已成功启动:

2025-09-14 20:50:12.345  INFO 1 --- [           main] run.halo.app.HaloApplication             : Started HaloApplication in 25.321 seconds (JVM running for 26.143)
2025-09-14 20:50:12.678  INFO 1 --- [           main] run.halo.app.core.ServerReadyEvent       : Halo started at: http://localhost:8090

现在可以通过浏览器访问 http://服务器IP:8090 进入Halo初始化界面。

3.2 1Panel面板部署(企业级推荐)

1Panel是一款开源的Linux服务器运维管理面板,提供可视化界面管理服务器,适合对命令行不熟悉的用户。

3.2.1 安装1Panel

curl -fsSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh

安装过程中会提示设置管理员用户名和密码,请牢记这些信息。

安装完成后,通过浏览器访问面板地址:https://服务器IP:443(默认端口),登录1Panel控制台。

3.2.2 在1Panel中部署Halo

  1. 登录1Panel后,点击左侧导航栏的「应用商店」
  2. 在搜索框输入「Halo」,找到Halo应用并点击「安装」
  3. 在安装配置页面,按以下建议配置:
配置项 推荐值 说明
应用名称 halo 自定义名称,便于识别
版本 2.21 选择最新稳定版
部署方式 Docker 默认推荐Docker部署
端口 8090 容器内部端口,保持默认
主机端口 8091 可自定义,避免端口冲突
数据目录 /opt/halo 数据存储路径
数据库 MySQL 推荐使用独立数据库
资源限制 CPU: 1核, 内存: 1GB 根据服务器配置调整
  1. 点击「确认安装」,等待约2-3分钟完成部署
  2. 安装完成后,点击「访问」按钮进入Halo初始化界面

3.2.3 配置Nginx反向代理(HTTPS)

  1. 在1Panel左侧导航栏点击「网站」→「新建网站」
  2. 填写域名信息(需提前将域名解析至服务器IP)
  3. 选择「反向代理」类型,代理目标填写 http://127.0.0.1:8091(即Halo的主机端口)
  4. 开启「HTTPS」选项,选择「Let's Encrypt」免费证书
  5. 点击「确认」完成配置

现在可以通过域名 https://你的域名 访问Halo,且自动启用HTTPS加密。

3.3 手动部署(开发者首选)

手动部署适合需要深度定制和二次开发的场景,让你完全掌控Halo的运行环境。

3.3.1 安装Java环境

Halo基于Java开发,需要JDK 17或更高版本:

# Ubuntu/Debian安装OpenJDK 17
sudo apt install -y openjdk-17-jdk

# CentOS/RHEL安装OpenJDK 17
sudo dnf install -y java-17-openjdk-devel

# 验证Java安装
java -version

预期输出:

openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.9+9-Ubuntu-122.04, mixed mode, sharing)

3.3.2 下载Halo安装包

# 创建Halo目录
mkdir -p /opt/halo && cd /opt/halo

# 下载Halo最新稳定版(2.21)
wget https://dl.halo.run/release/halo-2.21.0.jar -O halo.jar

如果wget命令不存在,先安装:sudo apt install wgetsudo dnf install wget

3.3.3 创建配置文件

# 创建配置目录
mkdir -p /opt/halo/config

# 创建配置文件
cat > /opt/halo/config/application.yaml << EOF
server:
  port: 8090
  servlet:
    context-path: /
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/halo?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: halo
    password: halo123456
halo:
  work-dir: /opt/halo
  cache:
    type: memory
EOF

注意:上述配置使用MySQL数据库,需提前安装并创建数据库和用户。如果没有MySQL,可以使用H2嵌入式数据库(默认配置)。

3.3.4 配置系统服务(开机自启)

# 创建systemd服务文件
sudo cat > /etc/systemd/system/halo.service << EOF
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network.target network-online.target mysql.service postgresql.service

[Service]
Type=simple
User=root
WorkingDirectory=/opt/halo
ExecStart=/usr/bin/java -jar halo.jar --spring.config.additional-location=file:/opt/halo/config/application.yaml
Restart=on-failure
RestartSec=5s
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
EOF

# 刷新systemd配置
sudo systemctl daemon-reload

# 启动Halo服务
sudo systemctl start halo

# 设置开机自启
sudo systemctl enable halo

# 查看服务状态
sudo systemctl status halo

当看到 active (running) 状态时,表示Halo服务已成功启动。

四、初始化配置与基础使用

4.1 首次访问与初始化

  1. 通过浏览器访问Halo地址(http://服务器IP:8090 或配置的域名)
  2. 首次访问会进入初始化页面,按提示完成以下步骤:

4.1.1 创建管理员账户

信息 建议 安全提示
用户名 admin 避免使用过于简单的用户名
邮箱 your@email.com 用于找回密码和接收通知
密码 组合密码 至少8位,包含大小写字母、数字和特殊符号

4.1.2 网站基本信息设置

设置项 建议值 说明
网站标题 我的个人博客 显示在浏览器标签和首页
网站副标题 分享技术,记录生活 简短描述网站定位
网站地址 https://你的域名 确保使用HTTPS地址
时区 Asia/Shanghai 选择正确时区,影响文章发布时间
语言 简体中文 界面显示语言

完成设置后点击「进入后台」,使用刚才创建的管理员账户登录。

4.2 后台界面快速上手

Halo后台采用现代化的界面设计,主要分为以下几个功能区域:

mindmap
  root((Halo后台))
    顶部导航栏
      网站标题
      搜索框
      通知中心
      用户资料
    左侧菜单栏
      仪表盘
      内容管理
        文章
        页面
        评论
        附件
      外观
        主题
        菜单
      系统
        设置
        用户
        角色
        插件
    主内容区
      当前操作页面
      快捷操作按钮
    右侧工具栏
      帮助中心
      全局设置

4.3 核心功能模块介绍

4.3.1 内容管理系统

Halo提供强大的内容创作功能,支持Markdown和可视化编辑器:

timeline
    title 文章发布流程
    2025-09-14 : 新建文章(选择编辑器)
    2025-09-14 : 撰写内容(支持Markdown/富文本)
    2025-09-14 : 设置分类与标签
    2025-09-14 : 上传特色图片
    2025-09-14 : 预览文章效果
    2025-09-14 : 发布/保存草稿

Markdown编辑器特色功能

  • 实时预览
  • 代码块语法高亮
  • 数学公式支持(LaTeX)
  • 图表渲染(mermaid)
  • 拖拽上传图片
  • 表格编辑

4.3.2 主题与外观定制

Halo支持丰富的主题生态,更换主题只需几步:

  1. 在后台点击「外观」→「主题」
  2. 点击「应用市场」浏览可用主题
  3. 找到喜欢的主题,点击「安装」
  4. 安装完成后,点击「启用」应用主题
  5. 部分主题支持自定义设置,点击「配置」进行个性化调整

推荐主题

  • Butterfly:简洁优雅的博客主题,响应式设计
  • Next:功能丰富的多布局主题
  • Anatole:单栏极简风格,专注阅读体验
  • Matery:Material Design风格,动态效果丰富

4.3.3 插件系统应用

插件是Halo扩展性的核心,以下是必装插件推荐:

插件名称 功能描述 适用场景
评论系统增强 支持Markdown、表情、邮件通知 所有类型网站
SEO优化工具 自动生成sitemap、设置robots.txt 博客、企业站
网站统计 访问数据分析,支持百度统计/Google Analytics 所有类型网站
图床插件 集成阿里云OSS/腾讯云COS等存储服务 图片较多的博客
代码块复制 为文章代码块添加复制按钮 技术博客

安装插件方法:

  1. 后台点击「系统」→「插件」
  2. 点击「应用市场」搜索插件
  3. 点击「安装」并「启用」插件
  4. 根据插件说明进行必要的配置

五、性能优化与安全加固

5.1 数据库优化

对于数据量较大的站点,建议进行以下数据库优化:

5.1.1 MySQL性能调优(my.cnf配置)

[mysqld]
# 基础设置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

# 性能优化
max_connections=100
max_user_connections=80
wait_timeout=60
interactive_timeout=60
query_cache_size=64M
query_cache_limit=2M
innodb_buffer_pool_size=256M
key_buffer_size=32M
tmp_table_size=64M
max_heap_table_size=64M
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=2

修改配置后重启MySQL:sudo systemctl restart mysqld

5.1.2 定期数据库维护

创建维护脚本 mysql-maintain.sh

#!/bin/bash
# 数据库维护脚本,建议添加到crontab每周执行一次

# 备份Halo数据库
mysqldump -u root -p'your_mysql_password' halo > /backup/halo_$(date +%Y%m%d).sql

# 优化表
mysql -u root -p'your_mysql_password' -e "USE halo; SHOW TABLES;" | grep -v Tables_in | while read table; do
    mysql -u root -p'your_mysql_password' -e "OPTIMIZE TABLE halo.$table;"
done

# 删除7天前的备份
find /backup -name "halo_*.sql" -mtime +7 -delete

添加执行权限并设置定时任务:

chmod +x mysql-maintain.sh
sudo crontab -e
# 添加以下行(每周日凌晨3点执行)
0 3 * * 0 /path/to/mysql-maintain.sh

5.2 服务器性能优化

5.2.1 JVM参数调优(针对手动部署)

编辑Halo服务文件:sudo vim /etc/systemd/system/halo.service

修改ExecStart行,添加JVM参数:

ExecStart=/usr/bin/java -Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar halo.jar --spring.config.additional-location=file:/opt/halo/config/application.yaml

参数说明:

  • -Xms512m:初始堆内存大小
  • -Xmx1024m:最大堆内存大小(根据服务器内存调整)
  • -XX:+UseG1GC:使用G1垃圾收集器,适合多CPU环境
  • -XX:MaxGCPauseMillis=200:最大GC停顿时间,单位毫秒

5.2.2 Nginx缓存配置

为减轻服务器负担,配置Nginx缓存静态资源:

# 在server块中添加
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    proxy_pass http://127.0.0.1:8090;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    expires 7d;  # 缓存7天
    add_header Cache-Control "public, max-age=604800";
}

5.3 安全加固措施

5.3.1 启用HTTPS

通过1Panel或手动配置Let's Encrypt证书:

# 安装Certbot
sudo apt install -y certbot python3-certbot-nginx

# 获取并配置证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

5.3.2 配置防火墙

# 安装并启用ufw防火墙
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

5.3.3 安全HTTP响应头

在Nginx配置中添加安全响应头:

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; img-src 'self' data: https://*.githubusercontent.com; font-src 'self' data: https://cdn.jsdelivr.net; connect-src 'self' https://api.github.com; frame-src 'self'; object-src 'none'";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

六、常见问题解决方案

6.1 无法访问Halo服务

排查步骤

  1. 检查服务状态sudo systemctl status halodocker ps | grep halo
  2. 检查端口占用sudo netstat -tulpn | grep 8090
  3. 查看应用日志sudo journalctl -u halo -fdocker logs -f halo
  4. 检查防火墙设置sudo ufw status
  5. 测试本地访问:在服务器上执行 curl http://localhost:8090

常见原因及解决

  • 端口被占用:修改Halo配置中的端口,避免冲突
  • 防火墙拦截:添加端口规则 sudo ufw allow 8090
  • 服务未启动:手动启动服务 sudo systemctl start halo
  • 配置文件错误:检查配置文件格式和内容,特别是数据库连接信息

6.2 数据备份与迁移

6.2.1 手动备份

# 备份数据目录(适用于Docker部署)
docker exec halo tar -czf /root/halo-backup.tar.gz /root/.halo2

# 复制到本地
docker cp halo:/root/halo-backup.tar.gz ./halo-backup.tar.gz

# 适用于手动部署
sudo tar -czf /opt/halo-backup-$(date +%Y%m%d).tar.gz /opt/halo

6.2.2 迁移到新服务器

  1. 在新服务器部署好Halo(版本需与原服务器一致)
  2. 停止新服务器的Halo服务:sudo systemctl stop halo
  3. 将备份文件传输到新服务器:scp halo-backup.tar.gz user@newserver:/tmp/
  4. 在新服务器解压备份:sudo tar -xzf /tmp/halo-backup.tar.gz -C /opt/halo
  5. 启动Halo服务:sudo systemctl start halo

6.3 升级Halo版本

6.3.1 Docker部署升级

# 停止并删除旧容器
docker stop halo && docker rm halo

# 拉取最新镜像
docker pull halohub/halo:2.21

# 重新启动容器(保持原有参数)
docker run -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 --restart unless-stopped halohub/halo:2.21

6.3.2 手动部署升级

# 停止Halo服务
sudo systemctl stop halo

# 备份数据(重要)
sudo cp -r /opt/halo /opt/halo-backup

# 下载新版本
cd /opt/halo && wget https://dl.halo.run/release/halo-2.21.0.jar -O halo-new.jar

# 替换旧版本
sudo mv halo.jar halo-old.jar && sudo mv halo-new.jar halo.jar

# 启动服务
sudo systemctl start halo

# 检查日志,确认升级成功
sudo journalctl -u halo -f

七、高级应用与生态探索

7.1 自定义插件开发入门

Halo插件基于Java开发,遵循Spring Boot规范,以下是开发一个简单插件的步骤:

7.1.1 环境准备

# 克隆Halo源码
git clone https://gitcode.com/feizhiyun/halo.git
cd halo

# 使用Gradle构建项目
./gradlew build -x test

7.1.2 创建插件项目

使用Halo提供的插件脚手架:

# 创建插件项目
./gradlew createPlugin --args="--name my-first-plugin --package com.example.plugin --description 'My first Halo plugin'"

# 进入插件目录
cd plugins/my-first-plugin

7.1.3 实现简单功能

修改 MyFirstPlugin.java

package com.example.plugin;

import org.springframework.stereotype.Component;
import run.halo.app.plugin.BasePlugin;
import run.halo.app.plugin.PluginContext;
import run.halo.app.plugin.PluginFactory;
import run.halo.app.plugin.PluginWrapper;

@Component
public class MyFirstPlugin extends BasePlugin {

    public MyFirstPlugin(PluginWrapper wrapper) {
        super(wrapper);
    }

    @Override
    public void start() {
        // 插件启动时执行
        log.info("My first Halo plugin started!");
        
        // 注册一个简单的API端点
        pluginContext.getApplicationContext().registerBean("myPluginEndpoint", MyPluginEndpoint.class);
    }

    @Override
    public void stop() {
        // 插件停止时执行
        log.info("My first Halo plugin stopped!");
    }
}

7.1.4 打包与安装插件

# 打包插件
./gradlew build -x test

# 生成的插件包位于 build/libs/ 目录下
# 在Halo后台「系统」→「插件」→「上传」安装插件

7.2 主题开发基础

Halo主题基于Thymeleaf模板引擎,使用HTML、CSS和JavaScript开发。

7.2.1 创建主题项目

# 创建主题目录结构
mkdir -p halo-theme-mytheme/{templates,static,config}
cd halo-theme-mytheme

# 创建主题元数据文件
cat > theme.yaml << EOF
apiVersion: theme.halo.run/v1alpha1
kind: Theme
metadata:
  name: mytheme
  displayName: "My Theme"
  author:
    name: "Your Name"
    website: "https://yourdomain.com"
  description: "A simple theme for Halo"
  logo: "https://yourdomain.com/logo.png"
  website: "https://yourdomain.com"
  repo: "https://gitcode.com/yourusername/halo-theme-mytheme"
  keywords: ["simple", "blog", "responsive"]
  version: "1.0.0"
spec:
  require: ">=2.0.0"
  settingsSchema:
    type: object
    properties:
      sidebar:
        type: boolean
        title: "Show sidebar"
        default: true
      footerText:
        type: string
        title: "Footer text"
        default: "© 2025 My Blog. Powered by Halo."
EOF

7.2.2 创建首页模板

templates 目录下创建 index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title th:text="${site.title}">My Blog</title>
    <link rel="stylesheet" th:href="@{/themes/mytheme/static/css/style.css}">
</head>
<body>
    <header>
        <h1 th:text="${site.title}">My Blog</h1>
        <p th:text="${site.subtitle}">A simple blog powered by Halo</p>
    </header>
    
    <main>
        <div class="posts">
            <div th:each="post : ${posts}" class="post">
                <h2><a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">Post Title</a></h2>
                <p class="meta" th:text="${#dates.format(post.metadata.creationTimestamp, 'yyyy-MM-dd HH:mm')}">2025-09-14 12:00</p>
                <div class="summary" th:utext="${post.spec.summary}">Post summary...</div>
                <a th:href="@{${post.status.permalink}}" class="read-more">Read More</a>
            </div>
        </div>
    </main>
    
    <footer th:text="${theme.config.footerText}">© 2025 My Blog. Powered by Halo.</footer>
</body>
</html>

7.2.3 打包与安装主题

# 打包主题
zip -r mytheme.zip *

# 在Halo后台「外观」→「主题」→「上传」安装主题

八、总结与资源推荐

8.1 学习资源汇总

资源类型 推荐链接 说明
官方文档 https://docs.halo.run 最权威的Halo使用指南
视频教程 https://space.bilibili.com/1369540045 B站Halo官方账号
社区论坛 https://bbs.halo.run 提问与交流的最佳场所
插件开发 https://docs.halo.run/developer-guide 插件开发文档
主题开发 https://docs.halo.run/developer-guide/theme 主题开发指南

8.2 实用工具推荐

  1. Halo Admin Mobile:手机端管理应用
  2. Halo Backup Tool:第三方备份工具
  3. Markdown编辑器Typora(支持直接发布到Halo)
  4. 图床工具PicGo(配合Halo图床插件)
  5. SEO优化Google Search Console

8.3 社区与支持

  • GitHub讨论:https://github.com/feizhiyun/halo/discussions
  • Discord社区:https://discord.gg/CzNm9zE
  • QQ交流群:123456789(示例群号,请查阅官网获取最新群号)
  • Telegram频道:https://t.me/halo_dev

九、互动与资源获取

如果本文对你有帮助,请点赞、收藏、关注三连支持!

资源包获取方式

  1. 关注公众号「技术博客指南」
  2. 回复关键词「halo2025」获取价值299元的开源建站资源包,包含:
    • 10+款付费主题免费使用
    • 5款必备高级插件
    • 服务器配置优化脚本
    • SEO完整解决方案

下期预告:《Halo高级技巧:从0到1打造百万访问量博客》

本文档持续更新,最新版本请访问:https://docs.halo.run/guides/deployment-2025 最后更新时间:2025年9月14日

登录后查看全文
热门项目推荐
相关项目推荐