- 新建halo文件夹路径为/root/docker-data/halo,本博客所有docker部署的文件同一放在/root/docker-data文件夹下,方便统一管理。
- 前往halo文件夹
- halo默认使用8090端口,先检查端口是否被占用。检查方式:输入
lsof -i:8090
如果没有返回,则表示端口没有被占用。
如果出现lsof: command not found
则输入:apt install lsof #安装 lsof
- 下面代码之中
#外部访问地址,请根据实际需要修改 --halo.external-url=http://localhost:8090/
部分大家可以把url改为自己的域名。 - MySQL 的密码可以修改,但是要与下方MYSQL_ROOT_PASSWORD保持一致。(这个现在不急着改但是之后一定要改,小心人家直接登陆你数据库直接删没了)
- 如果是在大厂买的服务器(腾讯云,阿里云,微软云,亚马逊云),要检查一下,在网页控制台上打开8090端口。
[/window] - 创建 docker-compose.yaml
Halo建站--五分钟搭建自己的博客
Halo博客搭建,快速搭建属于自己的博客.
写在开头
拥有了一台服务器,但是不知道要怎么玩?
不如来搭建一个属于自己的博客吧!可以将自己有用的经验以及有趣的经历分享给大家。
我选择的是Halo快速建站,只需5分钟快速拥有属于自己的博客。
Halo[官网直达]是一个强大易用的开源建站工具,并且 代码开源 、易于部署 。而且到目前更新到2.10版本已经内置应用市场,可以方便的选择需要的插件以及好看的主题。
Docker Compose部署Halo
先检查vps上是否已经安装docker comopse
docker-compose --version
如果显示类似Docker Compose version v2.21.0
表示安装成功。
如果没有安装好,那么前往博客VPS安装Docker/Docker Compose快速部署。
创建文件夹 & yml文件
mkdir -p /root/docker-data/halo
cd /root/docker-data/halo
这里我选择创建 Halo + MySQL 的实例,官网还有创建 Halo + PostgreSQL 的实例和仅创建 Halo 实例(使用默认的 H2 数据库,不推荐用于生产环境,建议体验和测试的时候使用)两种方式,大家可以前往官方文档自行查看。
[window type="green" title="注意⚠️"]
vim docker-compose.yaml
看完上面三条注意事项后,英文输入法,按下i
将下面代码粘贴到docker-compose.yaml
文件之中,英文输入法下输入:wq
回车即可。
version: "3"
services:
halo:
image: halohub/halo:2.10
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090: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://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: mysql:8.1.0
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=caching_sha2_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: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=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
启动 Halo 服务
docker-compose up -d
反向代理
如果要进行反向代理可以查看使用docker compose部署Nginx Proxy Manager进行反向代理一文进行部署。
部署完成之后,现在就可以通过IP:8090
进入到博客后台,进行一些初始化设置了。
这里是Halo应用市场官网,上面安装部署的Halo2.10内也已经安装好应用市场,大家可以根据自己喜好进行选择有趣的插件和主题。
更新Halo
前往~/halo
cd /root/docker-data/halo
修改 docker-compose.yaml
中配置的镜像版本。
vim docker-compose.yaml
services:
halo:
image: halohub/halo:2.10 #更新为想要的版本
container_name: halo
docker-compose up -d
备份Halo
在 Console 中,点击左侧菜单的 备份
,进入备份页面。
点击右上角的 创建备份
按钮,即可创建一个新的备份请求,需要注意的是,创建备份请求并不会立即开始备份,而是会在后台异步执行,因此需要等待一段时间才能看到备份的结果。
删除Halo
删除 ~ /.halo 文件夹
rm -rf /root/docker-data/halo # 完全删除映射到本地的数据