feat(storage): auto-mount ZSpace Z4 20TB SMB shares on Mac mini with LaunchAgent reconnect

Browse Source
This commit is contained in:
Yin Kou committed 2026-11-06 22:41:28 +08:00
1 parent a9f03f1a08
commit 88af316845
3 files changed
+45 -5

No files matched your search

+10 -1
View File
@@ -133,9 +133,18 @@
- **变更内容**: - **变更内容**:
1. **固定企微白名单出口 IP**:在路由器 [`configs/router-shellcrash-config.yaml`](file:///Users/ixvii0iv/homelab/configs/router-shellcrash-config.yaml) 新增 `DOMAIN-SUFFIX,qyapi.weixin.qq.com,Ai平台`,确保主动推送消息出口永远为 `104.43.105.243`。 1. **固定企微白名单出口 IP**:在路由器 [`configs/router-shellcrash-config.yaml`](file:///Users/ixvii0iv/homelab/configs/router-shellcrash-config.yaml) 新增 `DOMAIN-SUFFIX,qyapi.weixin.qq.com,Ai平台`,确保主动推送消息出口永远为 `104.43.105.243`。
2. **微信双向网关服务**:编写 [`stacks/wechat-bot/server.py`](file:///Users/ixvii0iv/homelab/stacks/wechat-bot/server.py) 与 [`stacks/wechat-bot/config.env`](file:///Users/ixvii0iv/homelab/stacks/wechat-bot/config.env),在 Mac mini 注册 `~/Library/LaunchAgents/com.homelab.wechat-bot.plist`(通过 `uv run` 常驻运行于 `3005` 端口)。 2. **微信双向网关服务**:编写 [`stacks/wechat-bot/server.py`](file:///Users/ixvii0iv/homelab/stacks/wechat-bot/server.py) 与 [`stacks/wechat-bot/config.env`](file:///Users/ixvii0iv/homelab/stacks/wechat-bot/config.env),在 Mac mini 注册 `~/Library/LaunchAgents/com.homelab.wechat-bot.plist`(通过 `uv run` 常驻运行于 `3005` 端口)。
3. **免端口 HTTPS 回调入口**:在 Cloudflare 添加 `wx.961504.xyz -> 104.43.105.243`,并在 Azure Caddy 配置反代至 `100.108.205.40:3005`。 3. **免端口 HTTPS 回调入口**:在 Cloudflare 添加 `wx.961504.xyz -> 104.43.105.243`,并在 Azure Caddy 配置反代至 `100.108.205.40:3005`(已按要求暂停进程保留配置)。
- **回滚方式**:`ssh mini "launchctl unload ~/Library/LaunchAgents/com.homelab.wechat-bot.plist"` - **回滚方式**:`ssh mini "launchctl unload ~/Library/LaunchAgents/com.homelab.wechat-bot.plist"`
### 14. 配置 Mac mini 自动挂载极空间 Z4 (`192.168.31.185`) 20TB SMB 存储与断线自动重连
- **操作时间**:2026-11-06 22:40
- **目标设备**:Mac mini (`192.168.31.164`) & 极空间 Z4 (`192.168.31.185`)
- **变更内容**:
1. 编写 [`scripts/mount-zspace.sh`](file:///Users/ixvii0iv/homelab/scripts/mount-zspace.sh),将极空间 Z4 的 `共享文件` 与 `185XXXX1015`(个人空间,总计 20TB,剩余可用 17TB)挂载至 Mac mini 的 `/Users/ixvii0iv/nas/共享文件` 与 `/Users/ixvii0iv/nas/个人空间`。
2. 在 Mac mini 注册 `~/Library/LaunchAgents/com.homelab.mount-zspace.plist`(每 120 秒巡检一次,若极空间或路由器重启后自动重新挂载)。
- **回滚方式**:`ssh mini "launchctl unload ~/Library/LaunchAgents/com.homelab.mount-zspace.plist && umount ~/nas/共享文件 ~/nas/个人空间"`
+3 -4
View File
@@ -55,8 +55,7 @@
- [x] **4.1 家庭统一导航总入口 (`https://nav.961504.xyz` / `https://home.961504.xyz:10443`) 与反代安全锁**: - [x] **4.1 家庭统一导航总入口 (`https://nav.961504.xyz` / `https://home.961504.xyz:10443`) 与反代安全锁**:
- 已部署 **Sun-Panel** ([`stacks/sun-panel/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/sun-panel/docker-compose.yml)) 并预置 **极空间 Z4、Clash 路由面板、小米路由器后台、Lucky 工具箱、Uptime 外部监控** 卡片。 - 已部署 **Sun-Panel** ([`stacks/sun-panel/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/sun-panel/docker-compose.yml)) 并预置 **极空间 Z4、Clash 路由面板、小米路由器后台、Lucky 工具箱、Uptime 外部监控** 卡片。
- 已在 [`stacks/gateway/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/gateway/Caddyfile) 为 `clash.home.961504.xyz:10443` 与 `router.home.961504.xyz:10443` 开启 HTTP Basic Auth 密码锁保护。 - 已在 [`stacks/gateway/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/gateway/Caddyfile) 为 `clash.home.961504.xyz:10443` 与 `router.home.961504.xyz:10443` 开启 HTTP Basic Auth 密码锁保护。
- [x] **4.2 个人微信 / 企业微信双向控制与通知网关 (`https://wx.961504.xyz`)**: - [x] **4.2 极空间 Z4 (`192.168.31.185`) 20TB 存储自动挂载与保活**:
- 已在小米路由器将企业微信接口 `qyapi.weixin.qq.com` 固定路由至 SG Azure (`104.43.105.243`),满足企业微信固定可信 IP 白名单要求。 - 已编写 [`scripts/mount-zspace.sh`](file:///Users/ixvii0iv/homelab/scripts/mount-zspace.sh) 并在 Mac mini 注册 `com.homelab.mount-zspace.plist` 守护任务(每 2 分钟巡检断线自动重连)。
- 已在 Mac mini 部署微信双向网关守护进程 ([`stacks/wechat-bot/server.py`](file:///Users/ixvii0iv/homelab/stacks/wechat-bot/server.py),监听 `3005`),并通过 Azure 标准 `443` 端口反代暴露为 `https://wx.961504.xyz/wechat/callback`。 - 已成功将极空间 20TB 磁盘挂载至 Mac mini 的 `~/nas/共享文件` 与 `~/nas/个人空间`(可用空间 17TB)。
- [ ] **4.2 极空间 SMB 自动挂载与影视自动化**:挂载 `192.168.31.185` 共享目录,部署 **MoviePilot + qBittorrent**。
- [ ] **4.3 智能家居中枢**:部署 **Home Assistant + Scrypted**(摄像头接入 Apple HomeKit 安全视频)。 - [ ] **4.3 智能家居中枢**:部署 **Home Assistant + Scrypted**(摄像头接入 Apple HomeKit 安全视频)。
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# ==============================================================================
# mount-zspace.sh
# 用途:在 Mac mini 上自动挂载极空间 Z4 (192.168.31.185) 的 SMB 共享目录并保持断线自动重连
# 挂载点:~/nas/共享文件 & ~/nas/个人空间
# ==============================================================================
set -euo pipefail
NAS_IP="192.168.31.185"
if [ -f "$HOME/homelab/.env" ]; then
# shellcheck disable=SC1091
source "$HOME/homelab/.env"
fi
NAS_BASE="$HOME/nas"
mkdir -p "$NAS_BASE/共享文件" "$NAS_BASE/个人空间"
# 检查极空间是否在线
if ! ping -c 1 -W 1000 "$NAS_IP" >/dev/null 2>&1; then
exit 0
fi
# 1. 挂载「共享文件」(%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6)
if ! mount | grep -q "$NAS_BASE/共享文件"; then
mount_smbfs "//${SMB_USER}:${SMB_PASS}@${NAS_IP}/%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6" "$NAS_BASE/共享文件" 2>/dev/null || true
fi
# 2. 挂载「185XXXX1015」(个人空间)
if ! mount | grep -q "$NAS_BASE/个人空间"; then
mount_smbfs "//${SMB_USER}:${SMB_PASS}@${NAS_IP}/185XXXX1015" "$NAS_BASE/个人空间" 2>/dev/null || true
fi