2025最新|Halo开源建站工具从0到1完整部署指南:告别复杂配置,30分钟搭建专业博客
引言:你还在为建站烦恼吗?
还在为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特别适合以下三类用户:
- 个人创作者:无需专业技术背景,通过可视化界面快速搭建个人博客
- 开发团队:利用开放API和插件系统构建企业级内容平台
- 教育机构:部署轻量化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推荐使用FinalShell或Tabby,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
- 登录1Panel后,点击左侧导航栏的「应用商店」
- 在搜索框输入「Halo」,找到Halo应用并点击「安装」
- 在安装配置页面,按以下建议配置:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 应用名称 | halo | 自定义名称,便于识别 |
| 版本 | 2.21 | 选择最新稳定版 |
| 部署方式 | Docker | 默认推荐Docker部署 |
| 端口 | 8090 | 容器内部端口,保持默认 |
| 主机端口 | 8091 | 可自定义,避免端口冲突 |
| 数据目录 | /opt/halo | 数据存储路径 |
| 数据库 | MySQL | 推荐使用独立数据库 |
| 资源限制 | CPU: 1核, 内存: 1GB | 根据服务器配置调整 |
- 点击「确认安装」,等待约2-3分钟完成部署
- 安装完成后,点击「访问」按钮进入Halo初始化界面
3.2.3 配置Nginx反向代理(HTTPS)
- 在1Panel左侧导航栏点击「网站」→「新建网站」
- 填写域名信息(需提前将域名解析至服务器IP)
- 选择「反向代理」类型,代理目标填写
http://127.0.0.1:8091(即Halo的主机端口) - 开启「HTTPS」选项,选择「Let's Encrypt」免费证书
- 点击「确认」完成配置
现在可以通过域名 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 wget 或 sudo 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 首次访问与初始化
- 通过浏览器访问Halo地址(
http://服务器IP:8090或配置的域名) - 首次访问会进入初始化页面,按提示完成以下步骤:
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支持丰富的主题生态,更换主题只需几步:
- 在后台点击「外观」→「主题」
- 点击「应用市场」浏览可用主题
- 找到喜欢的主题,点击「安装」
- 安装完成后,点击「启用」应用主题
- 部分主题支持自定义设置,点击「配置」进行个性化调整
推荐主题:
- Butterfly:简洁优雅的博客主题,响应式设计
- Next:功能丰富的多布局主题
- Anatole:单栏极简风格,专注阅读体验
- Matery:Material Design风格,动态效果丰富
4.3.3 插件系统应用
插件是Halo扩展性的核心,以下是必装插件推荐:
| 插件名称 | 功能描述 | 适用场景 |
|---|---|---|
| 评论系统增强 | 支持Markdown、表情、邮件通知 | 所有类型网站 |
| SEO优化工具 | 自动生成sitemap、设置robots.txt | 博客、企业站 |
| 网站统计 | 访问数据分析,支持百度统计/Google Analytics | 所有类型网站 |
| 图床插件 | 集成阿里云OSS/腾讯云COS等存储服务 | 图片较多的博客 |
| 代码块复制 | 为文章代码块添加复制按钮 | 技术博客 |
安装插件方法:
- 后台点击「系统」→「插件」
- 点击「应用市场」搜索插件
- 点击「安装」并「启用」插件
- 根据插件说明进行必要的配置
五、性能优化与安全加固
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服务
排查步骤:
- 检查服务状态:
sudo systemctl status halo或docker ps | grep halo - 检查端口占用:
sudo netstat -tulpn | grep 8090 - 查看应用日志:
sudo journalctl -u halo -f或docker logs -f halo - 检查防火墙设置:
sudo ufw status - 测试本地访问:在服务器上执行
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 迁移到新服务器
- 在新服务器部署好Halo(版本需与原服务器一致)
- 停止新服务器的Halo服务:
sudo systemctl stop halo - 将备份文件传输到新服务器:
scp halo-backup.tar.gz user@newserver:/tmp/ - 在新服务器解压备份:
sudo tar -xzf /tmp/halo-backup.tar.gz -C /opt/halo - 启动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 实用工具推荐
- Halo Admin Mobile:手机端管理应用
- Halo Backup Tool:第三方备份工具
- Markdown编辑器:Typora(支持直接发布到Halo)
- 图床工具:PicGo(配合Halo图床插件)
- 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
九、互动与资源获取
如果本文对你有帮助,请点赞、收藏、关注三连支持!
资源包获取方式:
- 关注公众号「技术博客指南」
- 回复关键词「halo2025」获取价值299元的开源建站资源包,包含:
- 10+款付费主题免费使用
- 5款必备高级插件
- 服务器配置优化脚本
- SEO完整解决方案
下期预告:《Halo高级技巧:从0到1打造百万访问量博客》
本文档持续更新,最新版本请访问:https://docs.halo.run/guides/deployment-2025 最后更新时间:2025年9月14日
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00