🚀 CNB 一键部署:Halo 博客与企业门户系统
本项目提供了基于 CNB 平台的 Halo 博客系统一键部署功能,通过自定义 Web 触发器实现便捷的博客系统部署操作。
本项目使用 CNB(云原生构建)平台的 Web 触发器功能,实现了 Halo 博客系统的一键部署。用户只需点击对应的执行按钮,填写必要参数,即可自动完成云服务器的环境配置、DNS 解析和 Halo 博客系统部署。
- 🚀 一键操作:自动获取 IP、配置 DNS、部署 Halo,全程无需手动干预!
- 🌍 多地域支持:支持腾讯云全球所有地域
- 🔐 安全可靠:基于 CNB 平台的安全密钥管理
- 📊 实时监控:流水线执行过程全程可视化
- 🌐 自动解析:自动配置域名 A 记录和 AAAA 记录
- 🐳 容器化部署:基于 Docker 的标准化部署方案
- 拥有 CNB 平台账号和仓库访问权限
- 准备好腾讯云 API 密钥(已存储在密钥仓库中)
- 准备好已备案的域名
- 实例需要开通 自动化助手(免费)
-
Fork 本仓库
-
配置密钥仓库
- 打开项目的
.cnb.yml 文件
- 修改第三行
imports 为你的密钥仓库链接
- 保存
-
执行部署操作
- 找到"一键部署 Halo"按钮并点击
- 填写必要参数(参考参数获取方法)
- 点击"确认"按钮提交执行请求
-
监控执行过程
- 在流水线页面监控执行过程
- 执行完成后,Halo 博客系统将自动启动并可通过域名访问
创建一个私有仓库作为密钥仓库,包含以下环境变量:
SECRET_ID: 腾讯云 SecretId
SECRET_KEY: 腾讯云 SecretKey
在执行部署操作时,需要填写以下参数:
| 参数名 | 描述 | 示例 |
|---|
| instance_ids | 腾讯云 CVM/LH 实例 ID | ins-xxxxxxxx |
| region | 实例所在地域 | ap-guangzhou |
| domain | 要绑定的域名 | example.com 或 blog.example.com 或 blog:example.com |
获取 API 密钥 (SECRET_ID 和 SECRET_KEY)
- 登录腾讯云控制台,点击右上角头像,选择"访问管理"
- 在左侧菜单中选择"访问密钥" > "API 密钥管理"
- 点击"新建密钥"创建新的 API 密钥
- 保存生成的 SecretId 和 SecretKey,SecretKey 只在创建时显示一次,请妥善保管
- 登录腾讯云控制台,进入"云服务器 CVM"产品页面
- 在实例列表中找到需要操作的实例
- 实例 ID 格式为
ins-xxxxxxxx
- 登录腾讯云控制台,在实例列表页面左上角可查看当前地域
- 地域格式为
ap-城市代码,如 ap-guangzhou(广州)、ap-beijing(北京)等
如果已经在实例内部,可以通过实例元数据服务获取实例信息:
curl http://metadata.tencentyun.com/latest/meta-data/instance-id
curl http://metadata.tencentyun.com/latest/meta-data/placement/region
💡 提示:实例元数据服务只能从实例内部访问
本项目的 CNB 流水线包含以下四个主要阶段:
- 从腾讯云实例元数据服务获取公网 IPv4 和 IPv6 地址
- 导出结果供后续阶段使用
- 从获取的信息中提取有效的 IPv4 和 IPv6 地址
- 提供清晰的输出信息,便于调试
- 自动解析域名和子域名
- 使用腾讯云 DNSPod API 创建或更新 DNS 记录
- 支持同时配置 A 记录(IPv4)和 AAAA 记录(IPv6)
- 包含完善的错误处理和状态检查
- 自动检查并安装 Docker(如需要)
- 下载最新的 docker-compose.yml 配置文件
- 创建环境变量文件并启动服务
- 提供部署完成后的访问地址
- 密钥管理:腾讯云 API 密钥存储在密钥仓库中,确保只有授权人员可以访问
- 域名备案:确保域名已完成备案,否则可能无法正常访问
- 权限最小化:API 密钥应只授予必要的权限,避免使用全权限密钥
- 定期轮换:建议定期更换 API 密钥,提高安全性
- 防火墙配置:确保实例安全组已开放必要端口(80、443)
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。