重要提示(如果你是Halo的1.X用户)
1、升级需谨慎,请提前备份好博客后再尝试升级 2、升级之前可以看看这个:从 Halo 1.x 迁移
1. Halo2.0 简单介绍
从Halo的1.0版本的slogan就可以看出区别
从Halo的2.0版本的slogan就可以看出区别
1.1 Halo2.0版本的更新:
随着Halo的2.0版本更新
Halo从最初是一个轻量级的博客框架
摇身一变,变成了可以搭建任何网站。功能想必也是提升了很多。
1.11 插件机制
Halo 2.X带来了灵活可扩展的插件机制,通过插件可以在运行时为系统添加丰富的功能,也可以保持 Halo 自身的简洁轻量。目前支持 Halo 2.X的插件可查:https://bbs.halo.run/t/plugins
1.12 模板机制
完善的模板系统,支持自定义配置,主题预览,多语言等功能。开发主题也十分方便,欢迎大家参与主题的开发。最新发布新的主题:https://bbs.halo.run/t/themes
1.13 附件管理
采用多策略存储模式,同时支持通过插件扩展外部存储位置,你可以更方便的管理你文章中的附件。
1.14 搜索引擎
Halo 2.X带来了内置的全文搜索引擎支持,同时也支持通过插件扩展外部搜索引擎。
1.15 多用户
与1.0相比,Halo 2.X增加了多用户机制,并且可以给不同的用户赋予不同的权限,多人管理维护一个网站变成了可能。
1.16 一键部署
采用了程序与用户配置分离的方式,迁移和备份成本大大降低。你只需要一条命令即可运行成功,同时也支持 Docker 部署。
2.项目展示
Halo演示地址:https://demo.halo.run/
文档地址:https://docs.halo.run/
社区地址:https://bbs.halo.run/
官网地址:https://www.halo.run/
GitHub地址:https://github.com/halo-dev/halo
3.搭建环境
- 搭建服务器:使用有预装宝塔面板的海外的服务器,海外服务器不用网站ICP备案
不管是简单的博客服务器,还是配置全部拉满的服务器。
点击下方链接,香港BGP首月五折:E1ljBxwr(优惠码)
https://www.lcayun.com/cart?action=configureproduct&pid=396&promocode=E1ljBxwr&aff=ZFVSWGGQ - 系统:Ubuntu-24.04-x64
- 【非必需但建议】域名一枚,并做好解析到服务器上
- 【非必需】提前安装好宝塔面板,并安装好 Nginx
服务器要求:内存建议1G 以上,硬盘可以大一些。
4.搭建视频
视频地址:https://www.bilibili.com/video/BV1VWxrefEBh/
4.1 【高清版本】:
5.搭建方式
更新软件包列表
sudo apt upgrade
5.1 安装docker
cd /usr/local/bin
#安装指令
sudo apt install docker.io
#验证 Docker 是否安装成功
docker -v
#启动 Docker 服务
sudo systemctl start docker
#查看 Docker 服务状态,显示为“active (running)”。这意味着 Docker 正在运行
sudo systemctl status docker
#设置 Docker 在系统启动时自动启动
sudo systemctl enable docker
#检查 Docker 是否设置为开机自启,可以使用以下命令,返回enabled表示已经设置,如果是disabled表示没有设置
sudo systemctl is-enabled docker
5.2 安装docker-compose
#使用 curl 下载最新版本
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
#确认安装
/usr/local/bin/docker-compose --version
5.3创建安装目录
创建一下安装的目录:
sudo -i
#创建一个目录,用于存放 Halo 的数据和配置文件
mkdir -p /root/data/docker_data/halo
#切换到你刚创建的目录中
cd /root/data/docker_data/halo
直接用 docker 的方式安装
vi docker-compose.yml
输入法英文状态下输入” i “
version: "3"
services:
halo:
#镜像
image: halohub/halo:2.6.0
#容器名称,用于区分标识容器
container_name: halo
#重启策略
restart: on-failure:3
#依赖关系
depends_on:
halodb:
condition: service_healthy
#网络配置
networks:
halo_network:
#编辑存放
volumes:
- ./:/root/.halo2
#端口映射,服务器防火墙端口需要开放8090
ports:
- "8090:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
# MySQL 的名称,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改成你的域名或者是ip地址
- --halo.external-url=http://abcjc:8090/
# 初始化的超级管理员用户名,可以自己设定
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码,可以自己设定
- --halo.security.initializer.superadminpassword=P@88w0rd
halodb:
#使用的docker镜像
image: mysql:8.0.31
#指定使用容器的名称
container_name: halodb
#容器因错误的重启策略
restart: on-failure:3
#网络配置
networks:
halo_network:
#设置 MySQL 启动时的参数,控制其行为
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"
#定义健康检查,确保 MySQL 服务正常运行
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=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
注意:大部分的代码有注释说明,可以根据说明查阅。
重要注意:里面的 - --halo.external-url=http://abcjc:8090/,其中的http://abcjc:8090/需要更改为的域名,如果你打算用的域名是abc.com也就是要改成–halo.external-url=https://abc.com
或者是没有域名需要可以使用服务器的ip地址代替abc.com
接着,千万记得改密码!!!其中的账号名称和密码都是可以自己更改。避免不必要的安全隐患!!!
不然,你也会像这样:
PS:细心的小伙伴会发现,docker-compose.yml里面数据库3306并没有写成3306:3306,官网是写的后者,这里的改成了前者,为的就是不在公网暴露halo数据库的端口,这样也能一定程度保障博客的安全
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。
并输入启动容器的命令
docker-compose up -d
5.4打开服务器防火墙(非必须),并访问网页
在服务器安全组中,把有使用到的端口8090放行(暴露在防火墙外)。并通过ip地址+端口的方式访问后台。
6.使用方法
6.1 插件安装
地址:https://github.com/halo-sigs/awesome-halo
6.2 主题安装
推荐 Butterfly 或者是foe 主题 地址:https://github.com/dhjddcn/halo-theme-butterfly
预览效果:https://dhjdd.cn/
7.结尾
祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区或者是Halo的官方论坛互相交流探讨。有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!
最后,感谢Halo团队的辛苦付出,让我们能用到这么优秀的博客!