讲故事

halo博客升级2.0了,可以说升级了很久了,但是我一直都没有升级。因为从本站创建,一直使用halo-1.0开源项目进行部署,只是写一些文章娱乐自己来说,已经是够用了。所以升级这件事就是可有可无,不升级也足够使用了。

但是想想halo项目升级2.0已经有一年多了,现在升级应该是很稳定了。

Halo2.0

Halo官网:https://halo.run
Github:https://github.com/halo-dev/halo
Halo官方文档:https://docs.halo.run

官网上已经有很详细的迁移教程了,本文记录一下升级的过程。

备份Halo1.X

  • 进入Halo后台,找到小工具中的博客备份
  • 点击备份数据
  • 将备份好的.json文件下载到本地
  • 备份halo/upload目录,这是本地上传附件的目录

创建数据库

  • halo2创建数据库,halo2db

配置Halo2.0

创建halo2的目录

1
2
# 创建halo2的目录,跟halo-1.x不是一个目录,防止冲突
mkdir /data/halo2

创建docker-compose.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: "3"

services:
halo2:
image: halohub/halo:2.11
container_name: halo2
restart: unless-stopped
network_mode: "bridge"
volumes:
- /data/halo2:/root/.halo2
ports:
- "127.0.0.1:8000:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://172.17.0.1:3306/halo2db?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
- --spring.r2dbc.username=your_username
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=your_password
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=https://bitskyline.com/

启动Halo2.0

1
2
# 进行/data/halo2目录下
docker-compose up -d

配置nginx

  • 可以将之前的nginx配置改到halo2的端口上
1
2
3
4
5
6
7
location / {
proxy_pass http://127.0.0.1:8000; #配置halo的端口号,要与halo的端口一致
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
  • 进入博客网站,会初始化halo

安装插件

halo2去除了很多之前自带的插件,现在需要重新下载必要的插件。

插件安装完后,记得看看有没有启动。

迁移旧数据

  • 数据迁移:找到站点迁移插件,按步骤往下走即可,将之前备份的.json文件上传进去即可。
  • 附件迁移:将halo1.0upload目录下的所有文件移到/data/halo2/attachments/migrate-from-1.x目录下即可。

开始使用Halo2

迁移完成后,就基本可以使用了。但是有一些页面配置及主题设置需要重新调整。按照自己之前配置halo1.0的方式去重新配置即可。

历史评论(1)

以下评论从旧博客只读迁移。

funnywii
博主能再分享一下咋配置的域名反代什么的吗? 现在有一个域名,用的是halo1 想新建一个服务器迁移到halo2,但是按照官方文档,不能用域名访问