重要提示(如果你是Halo的1.X用户)
1、升级需谨慎,请提前备份好博客后再尝试升级
2、升级之前可以看看这个:从 Halo 1.x 迁移
1. Halo2.0 简单介绍
从Halo的1.0版本的slogan就可以看出区别
Halo 21.x版本改成了: Halo [ˈheɪloʊ],一款现代化的开源博客/CMS系统,值得一试。
从Halo的2.0版本的slogan就可以看出区别
Halo 2.x版本改成了: Halo [ˈheɪloʊ],好用又强大的开源建站工具。
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.搭建环境
服务器要求:内存建议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团队的辛苦付出,让我们能用到这么优秀的博客!