从零开始玩博客 篇一:Halo 2 基础搭建篇
之前搭建uptime-up用于博客流量监控,结果博客搭完框架后直接扔一边,没再管过。
昨天突然收到短信,建站的VPS因不可抗力需要数据迁移,心想正好回炉重造给它好好搞一搞。
建站工具所使用的是Halo,想必很多朋友都有听说过。
其实从2.0版本之后,Halo已经不仅仅是一个开源博客/CMS系统,基本可以用来搭建任何网站。
相比很多静态博客,Halo更易于安装和配置,并且具备用户界面简洁、主题系统灵活、插件支持广泛、社区支持活跃、多语言适配、灵活匹配不同场景等优点,迄今为止依然开源且免费。
搭建所需
域名:当时新人1元购买的域名;国内阿里云、腾讯云,国外可以看看Namesilo;
操作系统:Debian-12.0_x64,Linux其实都大差不差,后期也不打算做升级之类,稳定就行;
服务器:莱卡云美国CN2服务器,249元/年(原本是Nextcloud演示机);有想玩玩的朋友可以尝试月付 香港/美国 CN2,长期建议大促(如618这种节点)期间订购,后期续费也会以这个活动价为准~
PS:NAS搭建同理,但是要忍受非标端口的痛苦;国内VPS的小伙伴一定要备案奥!
准备工作
域名解析
去所购买域名的控制台,找到【域名解析】,点击【解析设置】
选择【添加记录】,下图中是我用作企业邮箱解析,并不影响其他使用
共添加两条记录如下图所示
到这里,域名解析完成
开放服务器端口
在你购买VPS平台的控制台,进入安全组(防火墙),将要使用的端口开放,比如本篇要用到的8090端口;平台若是没有该项,那就不用管了
常用软件升级及安装
打开SSH工具(PuTTY、FinalShell、XShell等),或用桌面系统自带的终端工具,这里以macOS进行演示
可以先输入 apt update -y,把所有软件包升级
另外可输入 apt install wget curl sudo vim git -y,安装常用工具,我这里已经是最新版本
安装Docker及Docker Compose
依次输入以下指令
apt install docker -y
apt install docker-compose -y
接着输入以下命令,分别查看版本信息
docker -v
# Docker开机自启
systemctl enable docker
docker-compose -v
若不显示构建信息也无碍,不影响正常使用
反向代理
参考之前的文章
部署Halo
因为是空白系统,需要咱们自己创建一个固定路径去保存Docker相关数据
输入以下指令
#创建docker目录
mkdir -p /root/docker/data/Halo
#进入该目录下
cd /root/docker/data/Halo
#打开并编辑,Halo提供了诸多部署方式,咱们选择用Docker Compose部署
vim docker-compose.yml
复制并粘贴以下代码
version: "3"
services:
halo:
image: halohub/halo:2.14
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=mysal_secret
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=https://blog.ydxian.love/
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=mysal_secret
- MYSQL_DATABASE=halo
networks:
halo_network:
需要注意的是:
目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止用户误操作,推荐使用固定版本的标签,比如 halohub/halo:2.14 或者 halohub/halo:2.14.0。
halohub/halo:2.14:表示最新的 2.14.x 版本,即每次发布 patch 版本都会同时更新 halohub/halo:2.14 镜像。
halohub/halo:2.14.0:表示一个具体的版本。
输入命令
部署完毕,接下来就可通过域名进入Halo开始初始化
更新、备份与恢复
当博客顺利运行后,后期可能会有版本更新迭代或服务器迁移等操作,为以防万一还要周期性进行备份操作。从 Halo 2.8 之后就显得尤为重要。
备份
这是尤为重要的,一切异动建议首先进行备份操作!
从 Halo 2.8 开始,Halo 内置了备份和恢复的功能,可以在 Console 中一键备份和恢复完整的数据。
Web 输入 博客地址/console 即可,例:http://192.168.23.23/console
等待备份完成,需要注意的是,创建备份请求并不会立即开始备份,而是会在后台异步执行,因此需要等待一段时间才能看到备份的结果。
备份完成后可以进行下载保存
数据文件默认为 .zip 压缩包
更新
到halo路径下
cd /root/docker/data/Halo
修改docker-compose.yml文件
services:
halo:
image: halohub/halo:2.14
接着输入以下命令即可
docker-compose up -d
恢复
在恢复前,需要了解以下几点:
恢复不限制部署方式,也不限制数据库,也就是说新站点的部署方式和数据库类型可以和备份的站点不同。
恢复过程可能会持续较长时间,期间请勿刷新页面。
在恢复的过程中,虽然已有的数据不会被清理掉,但如果有冲突的数据将被覆盖。
恢复完成之后会提示停止运行 Halo,停止之后可能需要手动运行。
将刚刚下载的备份文件上传进行恢复即可
最后
搭建是比较简单的,博客装修反而比较痛苦!
后期的装修过程会在本系列以文章的形式呈现给大家~
本篇到这里就结束啦~如果觉得不错,欢迎点赞,收藏,留言!能点点关注最好啦
后续我也会继续分享好用、好玩的Docker项目及NAS使用经验,咱们下期再见!
乱买指南
校验提示文案
去完善去完善
校验提示文案
应超
校验提示文案
应超
校验提示文案
去完善去完善
校验提示文案
乱买指南
校验提示文案