本文首发于个人博客,欢迎来踩红旗linux,也欢迎你们交换友链~
Halo是一个强悍易用的开源建站工具,适宜拿来搭建个人博客,有后台管理系统,但是有丰富的主题和插件可以选择,目前在Github上早已快30kstars。
本篇记录并分享一下自己布署Halo的过程。本篇参考Halo官方文档
假如使用1Panel的男子伴,可以直接在应用商店一键安装Halo。我后来迁移过一次Halo红帽linux,就是使用1Panel面板一键安装的。本篇也会记录一下迁移过程。先看疗效
安装Docker&&Docker-Compose布署方法使用Halo文档中的DockerCompose布署形式安装Docker
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
国外敷务器可以使用阿里镜像源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker
docker version
安装Docker-Compose
sudo curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
创建容器组
mkdir /opt/blog/halo
cd /opt/blog/halo
我这儿选择了使用已有外部数据库的形式进行布署,须要先在Mysql中创建好下边所须要的数据库。官方文档还有其他三种形式可以参考。
version: "3"
services:
halo:
image: halohub/halo:2.11
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./:/root/.halo2
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://***.***.***.***:3306/halo # 需要现在这个外部数据库建好halo数据库
- --spring.r2dbc.username=root
- --spring.r2dbc.password=*********
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://ip:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=admin
# 端口号 默认8090
- --server.port=8090
docker-compose up -d
实时查看日志:
docker-compose logs -f
配置域名
打算为博客配置域名,须要将域名解析到ip:8090
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name blog.miykah.top; # 域名
client_max_body_size 1024m;
location / {
proxy_pass http://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;
}
}
配置SSL证书,使用HTTPS参考/developer/article/1953367
server {
listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
listen 443 ssl; #侦听443端口,用于SSL
server_name blog.miykah.top; # 自己的域名
#配置 ssl
ssl_certificate /opt/cert/blog.miykah.top_bundle.pem; # pem文件的径
ssl_certificate_key /opt/cert/blog.miykah.top.key; # key文件的路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
client_max_body_size 1024m;
location / {
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;
proxy_pass http://127.0.0.1:8090;
}
}
博客版本升级
cd ~/halo && docker-compose down
cp -r ~/halo ~/halo.archive
services:
halo:
image: halohub/halo:2.11.2
container_name: halo
执行:
docker-compose pull halo
docker-compose up -d
博客迁移更新于2023.12.14
因为更换服务器,博客须要迁移,同时新服务器使用了1Panel面板,其高度集成了Halo博客,可以在应用商店一键安装。这儿记录一下迁移过程。十分简单,当然就是备份原博客,安装新的Halo,之后导出文件进行恢复即可。
原Halo博客备份
在原Halo博客控制台,创建备份,并下载保存。
1Panel安装Halo
在1Panel商店安装Halo,自行更改下边须要更改的信息。
恢复备份
安装完成后,步入新的Halo博客控制台(ip:port/console)linux安装文档linux安装文档,找到备份,上传备份文件,等待恢复即可。
官方文档相关提示:
在恢复前,须要了解以下几点: