如何使用Halo搭建自己的个人博客(小白详细版)
一、Halo是什么?
如果你是小白,当你搜索如何搭建个人网站时,你大概率会搜到WordPress。但是,用WordPress建站可能会让你很崩溃,这是一个很古老的建站工具了,即使理论上wordpress你能想到的所有功能它都可以实现,但是学习曲线较陡峭,对于小白很不友好。如果你只想快速搭建一个好看的博客网站,平时写写文章,那么推荐使用Halo2.0。
Halo 是一款轻量、开源、现代化的建站工具,最初定位为个人博客系统,但在 2.x 版本后升级为功能更全面的建站平台。它基于 Java 开发,支持 Docker 一键部署,自带后台管理系统和丰富的插件生态,适合技术小白到开发者使用。

简单来说,你可以把halo看作一个更简单的 WordPress。相比于WordPress,Halo采用更新的架构,更现代化的UI设计语言,而且同样完全开源免费。无需复杂的代码配置,通过可视化界面即可管理文章、主题、插件等,甚至能搭建企业官网、知识库等多样化的站点。本站就是使用Halo进行搭建的,如果你喜欢,欢迎尝试一下。看完这篇文章,保证你也能学会!Let's step by step上线你的专属网站吧!😎
相关文档
- 官网:https://www.halo.run
- 文档:https://docs.halo.run
- 社区:https://bbs.halo.run
- 应用市场:https://www.halo.run/store/apps
- 开源地址:https://github.com/halo-dev/halo
二、为什么选择 Halo?
- 操作简单,适合小白
- 自带后台管理界面,无需命令行操作即可发布文章、更换主题。
- 支持一键 Docker 部署,省去环境配置的麻烦。
- 轻量高效,资源占用低
- 1 核 2G 内存的服务器即可流畅运行,适合个人博客搭建,低成本运营。
- 功能灵活,扩展性强
- 插件机制支持自定义功能(如评论系统、SEO 优化)。
- 多存储策略可对接本地、腾讯云 COS 等存储方式。
- 主题丰富,界面美观
- 提供多款免费主题,支持自定义模板,轻松打造个性化博客。
- 迁移与维护便捷
- 通过 Docker 容器技术,备份和迁移数据只需复制配置文件。
三、如何搭建?
购买云服务器和域名
服务器:首先你需要购买一台云服务器。如果知识搭建个人博客网站的话,1 核 2G 内存的配置即可,最好提供公网IP,这样就不需要做内网穿透。推荐腾讯云、阿里云、京东云等大厂的云服务商,有利于保护自己的数据安全,以及没有删库跑路的风险。可以关注一下这些大厂的活动,例如阿里云,对于大学生来说,完成大学生实名认证通常可以免费白嫖一年的高带宽服务器。
另外需要注意的是,如果你的服务器是位于国内的服务器,则需要主动向公安机关备案,通常20多个工作日才能审批通过。如果你的云服务器位于国外(包括港澳台),则无需备案,搭建好直接就可以上线,但是也需要进行实名登记,不能做违法行为。这里,我推荐大家可以使用香港地区的云服务器,因为距离近访问速度较快,而且无需备案(一般搭建个人博客也没有太多风险)。
域名(可选):如果你不想让你的网站是一串难看的IP地址,而是一个方便记忆的网址名字,还是推荐你购买一个域名。况且,如果你的公网IP直接暴露在互联网上,也并不安全。购买域名的方法有很多,这里推荐使用NameSilo,可以直接使用支付宝购买,价格也比较便宜。在购买完成之后,你需要将域名解析到你的公网IP上,这样就可以使用浏览器正常访问你的个人博客了。
NameSilo网址如下:https://www.namesilo.com
注册一个账号,进入NameSIlo,如图操作即可:

找一个你喜欢的后缀名,每个价格都不一样,然后购买即可,最便宜的仅为1.79美元一年,也就是13块钱一年。可以使用支付宝付款。

购买之后,推荐各位小伙伴使用CloudFlare托管你的域名,CloudFlare是国际知名大厂,托管域名是免费的,而且速度也比较快。
购买方法和域名解析可以参考这个视频教程:B站:NameSilo域名注册与购买||Cloudflare使用与原理教程
使用CloudFlare托管域名的方法如下:
- 登录CloudFlare:https://dash.cloudflare.com,使用邮箱注册一个账号,登录。

- 添加你的域名。需要一段时间,然后进入管理界面,计划这里选择Free即可,然后一路继续,默认即可。


-
直到出现这个界面,然后把CloudFlare的服务器地址复制下来,如图所示:

-
然后重新回到NameSilo的管理界面,需要把你刚刚购买域名的DNS服务器切换为CloudFlare。按照如图所示操作:


-
保存之后,DNS服务器变更解析需要等待一段时间,至多24h,才能全球同步更新完成。等待DNS服务器更新完成,即可进入你的域名管理界面。

-
然后回到你的CloudFlare后台,添加DNS解析记录。例如你想要添加一个www作为你的二级域名:


我这里配置了多个二级域名。例如我想让我的博客网站叫做www.frankguo.life,或者blog.frankguo.life,那就要添加两条记录。其他的同理。
开始搭建Halo2.x个人博客
使用你喜欢的SSH工具连接到你的云服务器,这里我推荐使用Visual Studio Code里面的Remote SSH插件进行远程连接。教程在这里:B站:vscode插件 remote ssh 远程开发方式 求你别再在服务器里直接改代码啦
- 安装 Docker 与 Docker Compose
在服务器上依次执行以下命令(以 Ubuntu 为例):
# 安装 Docker和docker-compose
sudo apt update
sudo apt upgrade -y # 更新
sudo apt install docker.io docker-compose # 安装
sudo systemctl enable docker # 设置开机启用docker服务
- 部署 Halo
在你的主目录下,创建一个文件夹,用来存放对应的docker文件,可以是使用 Visual Studio Code的文件管理工具,在主目录下创建一个docker文件夹,用来存放docker文件。
然后在docker文件夹里创建一个Halo子文件夹,创建一个 docker-compose.yml 文件(路径为:~/docker/halo/docker-compose.yml)并填入以下内容(注意修改提示的相关内容,密码和域名,不要无脑复制粘贴,不然你的网站极容易被黑客偷走):
version: "3"
services:
halo:
image: halohub/halo:2.20.21 # 注意:这里的版本号你可以查看Halo官方文档,改为最新的版本即可
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./:/root/.halo2
ports:
- "8090:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请修改,并保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=password
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=https://www.<your.servername.xxx> # 这里的域名改为你买好的域名
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=password
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
- "3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=halo
networks:
halo_network:
保存之后,cd进入docker-compose文件的目录,启动容器:
docker-compose up -d
3. 访问并初始化博客
如果你使用的阿里云,那么通常需要在防火墙放行相关的端口,才能正常访问。步骤如下:


例如,这里我们需要添加两条记录放行8090端口和81端口(为接下来的nginx proxy manager做准备)。
完成之后,浏览器输入 http://服务器IP:8090/console,按提示填写站点名称、管理员账号等信息,即可进入后台管理界面。
4. 配置域名与 HTTPS(强烈建议)
如果你不想让你的博客网站是明文传输协议(即http协议,任何人都可以知道你访问痕迹和cookie,非常的不安全)那么你最好申请一个SSL证书。推荐使用Nginx proxy manager 申请证书并进行反向代理,是免费的,而且可以自动续期。接下来讲解如何部署。
- 创建一个nginx proxy manager的docker容器
和上面创建Halo的docker容器一样,创建一个叫做nginxproxymanager的文件夹,然后启动容器。docker-compose.yml文件如下:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
保存之后,cd进入docker-compose文件的目录,启动容器:
docker-compose up -d
然后,你就可以访问:http:<你的公网IP>:81登录nginx proxy manager了。初始账户密码为:
admin@example.com
changeme
第一次登录之后需要进行修改账户密码。建议收藏这个网页。
2.创建反向代理
- 何为反向代理?
想象你打电话给一家大公司的客服热线。接电话的“总机接线员”会根据你的需求,把电话转接给对应的部门(比如技术部、售后部)。反向代理就像这个“接线员”:
对外:你只知道客服热线的号码(反向代理的地址),不知道公司内部有哪些部门(真实的服务器)。
对内:接线员知道每个部门的位置,能快速把请求转过去,还能帮部门处理杂事(比如加密通话、挡骚扰电话)。
- 反向代理的作用:
- 隐藏真实服务器:保护后端服务的安全。
- 负载均衡:把流量合理分配给多个服务器。
- 处理HTTPS:统一管理SSL证书,省去每个服务配置的麻烦。
- 简化访问:用域名访问不同服务(比如 docs.xxx.com 转给文档服务,blog.xxx.com 转给博客)。
使用nginx proxy manager创建反向代理非常简单,如图操作即可。例如,我想要我的博客网站的网址为:


然后申请SSL证书,需要等待一会:

部署SSL证书:

这样,你就可以在浏览器输入www.<你的域名>.xxx,或者blog.<你的域名>.xxx访问你的网站了。
四、管理你的个人博客
来到这里,你的网站就算是搭建好了,访问域名,第一次登录需要设置账号密码,根据提示操作即可。再次访问你的域名,如果你能看到下面这幅图,说明安装成功:

管理你的Halo博客
输入http:<你的公网IP>:8090,然后输入账户密码即可登录后台管理你的个人博客。Halo的后台如下,还是比较简单直观的(刚安装你的和我不一样,我装了插件)。可以在文章菜单管理你的文章。在应用市场可以下载插件和主题。

具体的建站、插件、主题等功能就自行探索吧!
完结,撒花。祝你成功建站!🎖️
Ps:推荐一个我个人比较喜欢的主题:Hao,也是本站使用的主题:

Github仓库:https://github.com/chengzhongxue/halo-theme-hao
效果展示: B站:【最炫酷的博客主题,没有之一,确定不来看看吗?】
五、注意事项
- 安全设置
- 修改默认管理员密码,避免使用弱口令。
- 不要暴露 MySQL 数据库的 3306 端口到公网。(如果你按照本教程的docker-compose文件操作,已经帮你避免这个问题了)
- 数据备份
- 定期备份
~/.halo2目录,防止数据丢失。
- 定期备份
- 主题与插件
- 从官方市场安装适配 2.x 版本的主题和插件,避免兼容性问题。
六、总结
Halo 2.x 凭借其易用性、轻量化和扩展性,成为个人博客搭建的理想选择。无论是技术小白还是开发者,都能通过 Docker 快速部署,并通过丰富的插件和主题实现个性化需求。如果你想低成本拥有一个高颜值的独立博客,Halo 绝对值得一试!
- 感谢你赐予我前进的力量

