feat(agy-web): deploy persistent ttyd+tmux AGY web workbench at https://agy.961504.xyz

Browse Source
This commit is contained in:
Yin Kou committed 2026-11-06 22:48:45 +08:00
1 parent 88af316845
commit b4358f74c0
5 files changed
+61 -2

No files matched your search

+13
View File
@@ -144,6 +144,19 @@
2. 在 Mac mini 注册 `~/Library/LaunchAgents/com.homelab.mount-zspace.plist`(每 120 秒巡检一次,若极空间或路由器重启后自动重新挂载)。 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/个人空间"` - **回滚方式**:`ssh mini "launchctl unload ~/Library/LaunchAgents/com.homelab.mount-zspace.plist && umount ~/nas/共享文件 ~/nas/个人空间"`
### 15. 部署 24 小时常驻 AGY 云端 Web 工作台 (`https://agy.961504.xyz` / `ttyd` + `tmux`)
- **操作时间**:2026-11-06 22:46 ~ 22:48
- **目标设备**:Mac mini (`192.168.31.164`) & SG Azure (`104.43.105.243`)
- **变更内容**:
1. **同步 `agy` 配置**:将本机 `~/.gemini/antigravity-cli/{jetski_state.pbtxt,settings.json}` 同步至 Mac mini。
2. **安装与调优 `ttyd` + `tmux`**:在 Mac mini 安装 `ttyd` (`1.7.7`),编写 `~/.tmux.conf`(开启鼠标滚轮、触屏滑动与 30 万行历史缓存),编写 [`scripts/start-agy-web.sh`](file:///Users/ixvii0iv/homelab/scripts/start-agy-web.sh) 并注册 `~/Library/LaunchAgents/com.homelab.agy-web.plist` 常驻守护进程(监听 `7681` 端口,自动附着到名为 `agy` 的 `tmux` 会话并启动 `agy`)。
3. **配置双通道 HTTPS 密码锁反代与导航页卡片**:
- 免端口访问:`https://agy.961504.xyz`(走 Azure 443 + Basic Auth 密码锁)
- 家宽直连访问:`https://agy.home.961504.xyz:10443`(走家里 10443 + Basic Auth 密码锁)
- 已将 **「AGY 云端工作台」** 添加至 `https://nav.961504.xyz` 导航页第一张卡片。
- **回滚方式**:`ssh mini "launchctl unload ~/Library/LaunchAgents/com.homelab.agy-web.plist"`
+4 -2
View File
@@ -45,8 +45,10 @@
- [x] **3.2 VS Code / AI IDE Remote-SSH 与 `agy` 流量出口锁定**: - [x] **3.2 VS Code / AI IDE Remote-SSH 与 `agy` 流量出口锁定**:
- 已验证本机 MacBook Air 通过 `ssh mini` 免密直连开发。 - 已验证本机 MacBook Air 通过 `ssh mini` 免密直连开发。
- **已完成底层网络规则固化**:在小米路由器 `/userdisk/ShellCrash/yamls/config.yaml` 中将 `antigravity.google`、`gemini.google.com`、`googleapis.com`、`deepmind.com` 与 `RULE-SET,google` 统一路由至 `Ai平台`,并将 `Ai平台` 首选默认锁定为 `狮城节点`(仅含 `104.43.105.243` SG Azure 双协议节点),不受其他节点测速波动影响。 - **已完成底层网络规则固化**:在小米路由器 `/userdisk/ShellCrash/yamls/config.yaml` 中将 `antigravity.google`、`gemini.google.com`、`googleapis.com`、`deepmind.com` 与 `RULE-SET,google` 统一路由至 `Ai平台`,并将 `Ai平台` 首选默认锁定为 `狮城节点`(仅含 `104.43.105.243` SG Azure 双协议节点),不受其他节点测速波动影响。
- [ ] **3.3 本地 AI 算力服务(可选)**: - [x] **3.3 部署 24 小时常驻 AGY 云端 Web 工作台 (`ttyd` + `tmux` 最佳实践)**:
- 利用 M6 24GB 统一内存部署 **Ollama + Open WebUI**,向内网与本机提供私有大模型 API。 - 已同步本机 `agy` 登录凭证与配置至 Mac mini (`~/.gemini/antigravity-cli/`)。
- 已配置 `~/.tmux.conf`(支持鼠标/触屏滑动与 30 万行长历史回溯)及 `agy-work` 终端快捷指令。
- 已部署 `ttyd` + `tmux` Web 终端常驻服务 ([`scripts/start-agy-web.sh`](file:///Users/ixvii0iv/homelab/scripts/start-agy-web.sh)),并暴露免端口入口 **`https://agy.961504.xyz`** 与家宽直连入口 **`https://agy.home.961504.xyz:10443`**(带密码保护),同步添加至家庭导航页首位卡片。
--- ---
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
# ==============================================================================
# start-agy-web.sh
# 用途:在 Mac mini 上启动基于 ttyd + tmux 的 24 小时常驻 AGY Web 工作台
# 监听端口:0.0.0.0:7681 (外网由 Caddy HTTPS + Basic Auth 保护)
# ==============================================================================
export PATH="/Users/ixvii0iv/.local/bin:/Users/ixvii0iv/.orbstack/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export TERM="xterm-256color"
mkdir -p "$HOME/workspace"
# 确保 tmux 会话 agy 存在并在其中默认打开 zsh (可直接运行 agy)
if ! /opt/homebrew/bin/tmux has-session -t agy 2>/dev/null; then
/opt/homebrew/bin/tmux new-session -d -s agy -c "$HOME/workspace"
/opt/homebrew/bin/tmux send-keys -t agy "agy" C-m
fi
exec /opt/homebrew/bin/ttyd \
-W \
-p 7681 \
-t fontSize=15 \
-t 'titleFixed=Mac mini (M6) - AGY 云端工作台' \
/opt/homebrew/bin/tmux new-session -A -s agy -c "$HOME/workspace"
+9
View File
@@ -21,3 +21,12 @@ wx.961504.xyz:443 {
encode zstd gzip encode zstd gzip
reverse_proxy 100.108.205.40:3005 reverse_proxy 100.108.205.40:3005
} }
# 4. AGY 24小时云端 Web 工作台 (443 免端口访问) -> https://agy.961504.xyz
agy.961504.xyz:443 {
encode zstd gzip
basic_auth {
ixvii0iv $2a$14$VaaNvgIjsCJFzXCpIxjcOerKUIdkN7GhVWAlGh3/ZZjBOADY9lg..
}
reverse_proxy 100.108.205.40:7681
}
+10
View File
@@ -48,3 +48,13 @@ lucky.home.961504.xyz:10443 {
encode zstd gzip encode zstd gzip
reverse_proxy 127.0.0.1:16601 reverse_proxy 127.0.0.1:16601
} }
# 5. AGY 24小时云端 Web 工作台 (https://agy.home.961504.xyz:10443)
agy.home.961504.xyz:10443 {
tls /Users/ixvii0iv/homelab/stacks/gateway/certs/fullchain.pem /Users/ixvii0iv/homelab/stacks/gateway/certs/privkey.pem
encode zstd gzip
basic_auth {
ixvii0iv $2a$14$VaaNvgIjsCJFzXCpIxjcOerKUIdkN7GhVWAlGh3/ZZjBOADY9lg..
}
reverse_proxy 127.0.0.1:7681
}