🧱 网站搭建全记录:从 Gitee 到 GitHub Pages 五个域名 · 踩坑· 自动化· SSH 切换

历时数天,绕过 Gitee 的认证与入口难题,在 GitHub Pages 上成功托管五个网站,并最终用 SSH 解决了网络稳定性问题。
📖 目录
1. 为什么放弃 Gitee Pages
2. GitHub Pages 完整配置流程(仓库、推送、域名绑定)
3. 自动化更新脚本设计(OpenClaw 集成)
4. SSH 切换的波折与根本原因
5. 当前稳定状态与后续建议

1️⃣ 为什么放弃 Gitee Pages

最初选择 Gitee Pages 是因为国内访问速度快、免费且支持自定义域名。但实际操作中遇到以下障碍:

结论:对于“长期0元 + 纯静态 + 全自动化”的需求,Gitee 的免费套餐存在较多限制,因此转向 GitHub Pages。

2️⃣ GitHub Pages 完整配置流程

GitHub Pages 对个人开发者非常友好,支持自动部署、自定义域名和免费 HTTPS,且与 Git 工作流天然集成。

2.1 创建 GitHub 仓库(五个域名各一个)

  1. 登录 GitHub,点击右上角 + → New repository。
  2. Repository name 填写域名(如 dragonclaws.cn)。
  3. 选择 Public(公开)。
  4. 不要勾选 “Add a README file” 等初始化选项,保持仓库完全空。
  5. 点击 Create repository。重复此步骤创建其余四个域名仓库。

2.2 本地初始化并推送网站文件

以 dragonclaws.cn 为例(其他域名同理):

# 进入本地网站目录
cd F:\website\dragonclaws.cn

# 初始化 Git 仓库
git init

# 添加所有文件并提交
git add .
git commit -m "首次提交网站文件"

# 关联远程仓库(替换 shuo65 为你的用户名)
git remote add origin https://github.com/shuo65/dragonclaws.cn.git

# 推送(注意分支名,GitHub 默认是 main)
git push -u origin main

如果遇到网络波动或远程已有初始文件,可先执行 git pull origin main --allow-unrelated-histories 合并后再推送。

2.3 在 GitHub 仓库启用 Pages 并绑定自定义域名

  1. 进入仓库 → Settings → 左侧 Pages。
  2. 在 Branch 处选择 main,目录选择 / (root),点击 Save。
  3. 在 Custom domain 处填入 www.你的域名(例如 www.dragonclaws.cn),点击 Save。
  4. 稍等片刻,GitHub 会自动检测 DNS 并签发 HTTPS 证书。
为什么填 www 子域名?
因为大多数 DNS 服务商支持为子域名添加 CNAME 记录,而根域名通常不支持 CNAME(需要特殊配置)。使用 www 子域名可以避免根域名的复杂设置,且 GitHub 会自动为 www 子域名签发证书。如果希望根域名也能访问,可通过 DNS 的 URL 转发实现(非必须)。

2.4 DNS 解析配置(以阿里云 DNS 为例)

为每个域名添加一条 CNAME 记录:

主机记录:www
记录类型:CNAME
记录值:shuo65.github.io
TTL:默认 600

添加后等待 DNS 生效(通常几分钟到几小时)。GitHub Pages 页面会显示 “DNS check successful”。

3️⃣ 自动化更新脚本设计(OpenClaw 集成)

为了让 AI 能够根据用户要求自动修改网站内容并部署,设计了一套基于 PowerShell 脚本的更新流程。

3.1 核心脚本:update-site.ps1

脚本位于 F:\website\update-site.ps1,主要功能:

# 调用示例(已修改文件后仅提交推送)
powershell -ExecutionPolicy Bypass -File "F:\website\update-site.ps1" -Domain "dragonclaws.cn" -FilePath "index.html"

# 同时修改文件并推送
powershell -ExecutionPolicy Bypass -File "F:\website\update-site.ps1" -Domain "dragonclaws.cn" -FilePath "index.html" -Content "新内容"

3.2 让 AI 学会使用该脚本

在主模型的 AGENTS.md 中加入提示词,告知本地目录结构和调用方式,AI 便能根据自然语言指令自动修改并上传网站。

4️⃣ SSH 切换的波折与根本原因

虽然 HTTPS 推送在重试后最终成功,但国内网络下偶尔出现 Failed to connect、Recv failure 等错误。切换到 SSH 可以极大提升稳定性,但过程中遇到了意想不到的障碍。

4.1 症状

执行 git remote set-url origin git@github.com:shuo65/域名.git 后,再运行 git remote -v 看到的仍然是 HTTPS 地址,仿佛命令没有生效。

4.2 错误尝试

4.3 最终发现根本原因

经过细致排查,发现 全局 Git 配置中存在一条 URL 重写规则:

url.https://github.com/.insteadof git@github.com:

这条规则会将所有 git@github.com: 开头的 SSH 地址自动改写为 HTTPS 地址。这是之前为了解决 HTTPS 不稳定而添加的(可能是当时建议的临时方案),但之后没有清理,导致 SSH 切换反复失败。

4.4 解决方案

# 删除该全局规则
git config --global --unset url.https://github.com/.insteadof

# 重新设置 SSH 地址
cd F:\website\dragonclaws.cn
git remote set-url origin git@github.com:shuo65/dragonclaws.cn.git
git remote -v
# 现在应显示 SSH 格式

对其他四个仓库重复上述操作,并测试推送,SSH 立即稳定工作。

⚠️ 经验教训:临时添加的 Git 全局配置(如 insteadOf)可能会长期影响后续操作,排查时应优先检查全局配置。

5️⃣ 当前稳定状态与后续建议

后续可优化方向