1. 前言
这篇文章夜梦将演示halo博客2.20版本(推荐)的搭建过程,简单明了、易于上手哦!如果想部署1.6版本,可以参考这篇文章:【docker】Halo博客搭建(1.6版本)
halo博客的搭建只能使用云服务器,对CPU无特别要求,内存最好在1G及以上。
2. 准备工作
夜梦这里使用的是雨云的服务器,使用的系统是ubuntu22.04。雨云长期全场景九折 + 首月五折优惠注册链接:https://www.rainyun.com/
此项目可以使用域名并开启 SSL。通过 namesilo 注册域名可以使用 1 美元优惠码:yemeng。
在开始部署之前,你需要安装 docker 和 docker-compose。具体安装见:【docker】在服务器上安装 docker/docker-compose
你可以为服务器添加 1GB~2GB 的 swap:手动添加 SWAP
连接服务器的工具XShell,下载以及连接的方法参考:从零开始建设自己的网站(6)——连接服务器
3. 开始安装
mkdir ~/.halo && cd ~/.halo
创建配置文件
vim docker-compose.yaml
英文状态下按i
键进入编辑模式,编辑后粘贴以下代码(halo+mysql),请务必修改MYSQL_ROOT_PASSWORD
与spring.r2dbc.password
为你自己的数据库密码。这里夜梦将数据库数据库密码修改为了GGh*#(hgH9SHA)
:
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.20
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
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=GGh*#(hgH9SHA)
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: mysql:8.1.0
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
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=GGh*#(hgH9SHA)
- MYSQL_DATABASE=halo
networks:
halo_network:
按Esc
退出编辑,然后输入:wq
保存退出。拉取镜像:
docker-compose up -d
4. 反向代理
如果你使用域名,你可以进行反向代理并开启 SSL,具体为你的域名
-> 服务器IP:8090
,反代可以参考下面两篇文章:
【docker】反向代理神器 ——Nginx Proxy Manager 的安装
【docker】Nginx Proxy Manager 的使用
5. 使用
访问ip:8090
或者是你的域名
进入初始化界面,这里夜梦就拿ip:8090
进行演示。
配置完成网站管理员的用户名与密码以后,就进入网站的后台了(其余时间可访问ip:8090/console
或者是你的域名/console
进入网站后台)。
主页面: