# 📝 变更日志 (CHANGELOG) 所有针对 **本机 (MacBook Air)**、**Mac mini (`192.168.31.164`)**、**小米路由器 (`192.168.31.1`)** 及 **Azure 2C4G** 的配置变更均记录在此,包含具体命令与回滚方法。 --- ## [2026-11-06] 初始化阶段 ### 1. 开启 Mac mini SSH 免密登录与快捷别名 - **操作时间**:2026-11-06 21:29 ~ 21:32 - **目标设备**: - Mac mini (`192.168.31.164`) - 本机 MacBook Air (`192.168.31.83`) - **变更内容**: 1. 在 Mac mini 系统设置中开启了“远程登录 (SSH)”。 2. 通过 `ssh-copy-id ixvii0iv@192.168.31.164` 将本机公钥写入 Mac mini 的 `~/.ssh/authorized_keys`。 3. 在本机 [`~/.ssh/config`](file:///Users/ixvii0iv/.ssh/config) 中新增了 `Host mini macmini` 快捷配置,开启心跳保活 (`ServerAliveInterval 60`)。 - **验证方式**:在本机终端直接运行 `ssh mini` 即可免密秒连 Mac mini。 - **回滚方式**:编辑 [`~/.ssh/config`](file:///Users/ixvii0iv/.ssh/config) 删除 `Host mini macmini` 段落。 ### 2. 创建本机 HomeLab 基础设施管理目录 (`~/homelab`) - **操作时间**:2026-11-06 21:32 - **目标设备**:本机 MacBook Air (`/Users/ixvii0iv/homelab`) - **变更内容**: - 创建 [`README.md`](file:///Users/ixvii0iv/homelab/README.md)(全局网络拓扑与设备资产表) - 创建 [`PLAN.md`](file:///Users/ixvii0iv/homelab/PLAN.md)(4 阶段实施蓝图与进度表) - 创建 [`CHANGELOG.md`](file:///Users/ixvii0iv/homelab/CHANGELOG.md)(本变更日志文件) ### 3. 配置 Mac mini 免密 sudo 与服务器电源防休眠策略 (`pmset`) - **操作时间**:2026-11-06 21:37 - **目标设备**:Mac mini (`192.168.31.164`) - **变更内容**: 1. 创建 `/etc/sudoers.d/ixvii0iv`(权限 `0440`),赋予 `ixvii0iv` 用户免密 `sudo` 权限,便于自动化运维。 2. 执行 `sudo pmset -a sleep 0 disksleep 0 displaysleep 10 standby 0 autorestart 1 womp 1 tcpkeepalive 1 powernap 1`,彻底关闭系统与磁盘休眠,并开启断电恢复自动启动与网络唤醒。 - **回滚方式**: - 删除免密 sudo:`ssh mini "sudo rm -f /etc/sudoers.d/ixvii0iv"` - 恢复默认休眠:`ssh mini "sudo pmset -a sleep 1 disksleep 10 autorestart 0"` ### 4. 编写 Lucky 与 Azure 云边协同 Docker Compose 编排文件 - **操作时间**:2026-11-06 21:38 - **目标设备**:本机 MacBook Air (`/Users/ixvii0iv/homelab/stacks/`) - **变更内容**: - 创建 [`stacks/lucky/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/lucky/docker-compose.yml)(用于 Mac mini 部署 Lucky DDNS + HTTPS 反代) - 创建 [`stacks/azure-edge/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/azure-edge/docker-compose.yml) 与 [`stacks/azure-edge/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/azure-edge/Caddyfile)(用于 Azure 2C4G 部署 Uptime Kuma 监控与 443 免端口反代) ### 5. 完成 Mac mini 软件底座、OrbStack、Tailscale、开发工具链及 `agy` 安装 - **操作时间**:2026-11-06 21:38 ~ 21:43 - **目标设备**:Mac mini (`192.168.31.164`) - **变更内容**: 1. 安装 Xcode Command Line Tools 27.2 与 Homebrew 7.0.12 (`/opt/homebrew`)。 2. 通过 Homebrew Cask 安装并启动 **OrbStack 2.2.5** (Docker Engine `29.8.2`) 与 **Tailscale 1.104.5**。 3. 安装 CLI 开发工具链:`git`, `tmux`, `btop`, `ripgrep`, `fd`, `jq`, `wget`, `fnm`, `uv`。 4. 安装 **Antigravity CLI (`agy` 1.5.2)** 至 `/Users/ixvii0iv/.local/bin/agy`,并配置 `~/.zshrc` 与 `~/.zprofile` 的 `PATH` 环境变量。 - **回滚方式**:可通过 `brew uninstall` 卸载对应软件包,或删除 `~/.local/bin/agy`。 ### 6. 锁定小米路由器 Mihomo 策略组出口至 SG Azure (`233boy-sea` / `104.43.105.243`) - **操作时间**:2026-11-06 21:43 - **目标设备**:小米路由器 (`192.168.31.1:9999`) - **变更内容**: - 通过 Mihomo REST API 将 `手动切换` 固定为 `233boy-sea`,并将 `Ai平台` 与 `节点选择` 固定指向 `手动切换`(取代原先会随延迟自动切换节点的 `自动选择`),确保 Mac mini 与本机的 `agy` 流量 100% 稳定走 SG Azure (`104.43.105.243`)。 - **回滚方式**:在路由器 Mihomo 面板 (`http://192.168.31.1:9999`) 中将 `节点选择` 切回 `自动选择`。 ### 7. 在 Mac mini 上启动 Lucky 容器 (`gdy666/lucky:latest`) - **操作时间**:2026-11-06 21:45 - **目标设备**:Mac mini (`192.168.31.164`) - **变更内容**: - 同步 `~/homelab/stacks/lucky/docker-compose.yml` 至 Mac mini 并执行 `docker compose up -d`。 - 容器已启动,Web 管理面板监听 `http://192.168.31.164:16601`(默认初始账号密码:`666` / `666`),公网反代端口监听 `10443` (TCP/UDP)。 - **回滚方式**:`ssh mini "cd ~/homelab/stacks/lucky && docker compose down"` ### 8. 小米路由器底层固化:静态 DHCP 绑定、公网 10443 端口转发与 ShellCrash `agy` 规则锁定 - **操作时间**:2026-11-06 21:49 ~ 21:50 - **目标设备**:小米路由器 (`192.168.31.1`) - **原始备份**:[`backups/router/config.yaml.bak`](file:///Users/ixvii0iv/homelab/backups/router/config.yaml.bak)(路由器端备份为 `/userdisk/ShellCrash/yamls/config.yaml.bak.20261106`) - **变更内容**: 1. **DHCP 静态绑定**:通过 `uci add dhcp host` 将 Mac mini (`c8:80:6d:50:23:b1`) 固定绑定为 `192.168.31.164` (`Mac-mini`)。 2. **公网端口转发 (`Lucky_HTTPS_10443`)**:通过 `uci add firewall redirect` 将 WAN 口 `10443` (TCP+UDP) 转发至 `192.168.31.164:10443`。 3. **ShellCrash 规则永久固化**(见 [`configs/router-shellcrash-config.yaml`](file:///Users/ixvii0iv/homelab/configs/router-shellcrash-config.yaml)): - 将 `Ai平台` 的默认首选节点改为 `狮城节点`(该组仅包含 `coco-sea1-reality-sony` 与 `233boy-sea`,两者服务端均为你的 SG Azure `104.43.105.243`)。 - 在 `rules:` 中新增 `antigravity.google`、`gemini.google.com`、`googleapis.com`、`deepmind.com` 及 `RULE-SET,google` 统一指向 `Ai平台`,彻底隔离其他策略组切换对 `agy` 出口 IP 的影响。 - **回滚方式**: - 恢复 ShellCrash 配置:`cat ~/homelab/backups/router/config.yaml.bak | ssh 192.168.31.1 "cat > /userdisk/ShellCrash/yamls/config.yaml && /userdisk/ShellCrash/start.sh bfstart"` - 删除端口转发:`ssh 192.168.31.1 "uci delete firewall.@redirect[-1] && uci commit firewall && /etc/init.d/firewall reload"` ### 9. 配置 Cloudflare DDNS 自动守护进程、`*.home.961504.xyz` 泛域名 SSL 证书与 HTTPS 反代网关 - **操作时间**:2026-11-06 21:56 ~ 21:58 - **目标设备**:Mac mini (`192.168.31.164`) & Cloudflare (`961504.xyz`) & 小米路由器 (`192.168.31.1`) - **变更内容**: 1. **Cloudflare DDNS**:编写 [`scripts/cloudflare-ddns.sh`](file:///Users/ixvii0iv/homelab/scripts/cloudflare-ddns.sh) 并在 Mac mini 注册 `~/Library/LaunchAgents/com.homelab.cf-ddns.plist`(每 5 分钟自动运行),已将 `home.961504.xyz` 与 `*.home.961504.xyz` 解析至当前联通公网 IP `124.90.142.21`。 2. **泛域名 HTTPS 证书 (`acme.sh`)**:通过 Cloudflare DNS-01 验证自动签发 `home.961504.xyz` + `*.home.961504.xyz` ECC 泛域名证书,存放于 `~/homelab/stacks/gateway/certs/`。 3. **明文 HTTPS 反代网关 (`home-gateway`)**:部署 [`stacks/gateway/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/gateway/docker-compose.yml) 与 [`stacks/gateway/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/gateway/Caddyfile),监听 `10443` 端口提供: - `https://nas.home.961504.xyz:10443` (`z4.home.961504.xyz:10443`) -> 极空间 Z4 (`192.168.31.185:5055`) - `https://lucky.home.961504.xyz:10443` -> Lucky (`16601`) - `https://clash.home.961504.xyz:10443` -> 路由器 Mihomo 面板 (`192.168.31.1:9999`) 4. **路由器直连优化**:在 [`configs/router-shellcrash-config.yaml`](file:///Users/ixvii0iv/homelab/configs/router-shellcrash-config.yaml) 中新增 `DOMAIN-SUFFIX,home.961504.xyz,全球直连`,避免内网访问家庭域名时绕行境外代理。 - **回滚方式**: - 停止 DDNS:`ssh mini "launchctl unload ~/Library/LaunchAgents/com.homelab.cf-ddns.plist"` - 停止反代网关:`ssh mini "sudo brew services stop caddy"` ### 10. 部署家庭统一导航页 Sun-Panel (`https://home.961504.xyz:10443`) 与反代 Basic Auth 安全锁 - **操作时间**:2026-11-06 22:06 ~ 22:08 - **目标设备**:Mac mini (`192.168.31.164`) - **变更内容**: 1. 部署 [`stacks/sun-panel/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/sun-panel/docker-compose.yml)(监听 `3002` 端口),并在 SQLite 数据库中预置了 **极空间 Z4、Clash 路由面板、小米路由器后台、Lucky 工具箱** 四张卡片(同时配置了外网 `10443` 链接与内网 `192.168.31.x` 链接,支持一键切换内外网模式)。 2. 更新 [`stacks/gateway/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/gateway/Caddyfile) 并同步至 `/opt/homebrew/etc/Caddyfile`: - 新增总入口 `https://home.961504.xyz:10443`(及 `https://nav.home.961504.xyz:10443`)反代至 Sun-Panel (`127.0.0.1:3002`)。 - 为 `clash.home.961504.xyz:10443` 与 `router.home.961504.xyz:10443` 开启 `basic_auth` 密码认证(账号 `ixvii0iv`,密码与 Mac mini 一致)。 - **回滚方式**:`ssh mini "cd ~/homelab/stacks/sun-panel && docker compose down"`