Files

199 lines
9.2 KiB
YAML

theme:
background-color: 240 10 4
primary-color: 210 90 65
contrast-multiplier: 1.2
custom-css-file: /assets/user.css
pages:
- name: HomeLab 中控台
columns:
- size: small
widgets:
- type: clock
hour-format: 24h
timezones:
- timezone: Asia/Shanghai
label: 北京 / 家庭主节点
- timezone: Asia/Singapore
label: 新加坡 / Azure AI 专线
- type: weather
location: Hangzhou, China
units: metric
hour-format: 24h
- type: docker-containers
title: OrbStack 运行容器
- size: full
widgets:
- type: search
search-engine: google
autofocus: false
bangs:
- title: GitHub
shortcut: "!gh"
url: https://github.com/search?q={QUERY}
- title: YouTube
shortcut: "!yt"
url: https://www.youtube.com/results?search_query={QUERY}
- type: custom-api
title: 全屋硬件与 AI 专线实时遥测 (Custom Widget 二次开发模块)
cache: 3s
url: http://host.docker.internal:3004/api/telemetry
template: |
<div class="hl-grid">
<!-- 1. M6 Mac mini -->
<div class="hl-card">
<div>
<div class="hl-row">
<span class="size-h4 color-primary">🖥️ Apple M6 Mac mini</span>
<span class="hl-badge color-subdue">UP {{ .JSON.String "mini.uptime" }}</span>
</div>
<div class="size-h6 color-subdue" style="margin-top: 2px;">内网 {{ .JSON.String "mini.ip" }} · Tailscale {{ .JSON.String "mini.tailscale_ip" }}</div>
</div>
<div style="display: flex; flex-direction: column; gap: 8px;">
<div>
<div class="hl-row">
<span class="color-subdue">CPU (12核 M6 · Load {{ .JSON.Float "mini.load_1m" }})</span>
<span class="color-highlight">{{ .JSON.Float "mini.cpu_pct" }}%</span>
</div>
<div class="hl-bar-bg"><div class="hl-bar-fill" style="width: {{ .JSON.Float "mini.cpu_pct" }}%;"></div></div>
</div>
<div>
<div class="hl-row">
<span class="color-subdue">统一内存 ({{ .JSON.Float "mini.mem_used_gb" }} / 24 GB)</span>
<span class="color-highlight">{{ .JSON.Float "mini.mem_pct" }}%</span>
</div>
<div class="hl-bar-bg"><div class="hl-bar-fill" style="width: {{ .JSON.Float "mini.mem_pct" }}%;"></div></div>
</div>
<div>
<div class="hl-row">
<span class="color-subdue">NVMe 闪存 ({{ .JSON.Float "mini.disk_used_gb" }} / {{ .JSON.Float "mini.disk_total_gb" }} GB)</span>
<span class="color-highlight">{{ .JSON.Float "mini.disk_pct" }}%</span>
</div>
<div class="hl-bar-bg"><div class="hl-bar-fill-green" style="width: {{ .JSON.Float "mini.disk_pct" }}%;"></div></div>
</div>
</div>
</div>
<!-- 2. 极空间 Z4 20TB -->
<div class="hl-card">
<div>
<div class="hl-row">
<span class="size-h4 color-primary">💾 极空间 Z4 存储池</span>
<span class="hl-badge color-positive">SMB 已挂载 ~/nas</span>
</div>
<div class="size-h6 color-subdue" style="margin-top: 2px;">内网 {{ .JSON.String "nas.ip" }} · 每日 03:30 自动灾备</div>
</div>
<div style="display: flex; flex-direction: column; gap: 8px;">
<div class="hl-row">
<span class="color-subdue">剩余可用容量</span>
<span class="size-h3 color-positive">{{ .JSON.Float "nas.free_tb" }} TB</span>
</div>
<div>
<div class="hl-row">
<span class="color-subdue">已用 {{ .JSON.Float "nas.used_tb" }} TB / 总计 {{ .JSON.Float "nas.total_tb" }} TB</span>
<span class="color-highlight">{{ .JSON.Float "nas.pct" }}%</span>
</div>
<div class="hl-bar-bg"><div class="hl-bar-fill-green" style="width: {{ .JSON.Float "nas.pct" }}%;"></div></div>
</div>
<div class="hl-row" style="padding-top: 4px; border-top: 1px solid rgba(255,255,255,0.06);">
<span class="color-subdue">最近自动备份</span>
<span class="color-highlight">{{ .JSON.String "nas.latest_backup" }}</span>
</div>
</div>
</div>
<!-- 3. AI 专线与路由网关 -->
<div class="hl-card">
<div>
<div class="hl-row">
<span class="size-h4 color-primary">🛡️ AI 狮城专线 & 路由</span>
<span class="hl-badge color-positive">{{ .JSON.Int "network.sg_delay_ms" }} ms</span>
</div>
<div class="size-h6 color-subdue" style="margin-top: 2px;">小米路由 192.168.31.1 ⇄ SG Azure</div>
</div>
<div style="display: flex; flex-direction: column; gap: 7px;">
<div class="hl-row">
<span class="color-subdue">AGY 分流锁定</span>
<span class="color-highlight">{{ .JSON.String "network.ai_policy" }}</span>
</div>
<div class="hl-row">
<span class="color-subdue">AI 固定出口 IP</span>
<span class="color-positive">{{ .JSON.String "network.sg_egress_ip" }}</span>
</div>
<div class="hl-row">
<span class="color-subdue">当前生效节点</span>
<span class="color-highlight">{{ .JSON.String "network.sg_node" }}</span>
</div>
<div class="hl-row" style="padding-top: 4px; border-top: 1px solid rgba(255,255,255,0.06);">
<span class="color-subdue">家庭联通公网 IP</span>
<span class="color-highlight">{{ .JSON.String "network.home_wan_ip" }}</span>
</div>
</div>
</div>
</div>
- type: monitor
cache: 10s
title: 全屋核心服务矩阵 (点击直达)
sites:
- title: AGY 云端工作台 (24h Web 终端)
url: https://agy.961504.xyz
check-url: http://host.docker.internal:7681
icon: si:gnometerminal
- title: 极空间 Z4 私有云 (20TB 存储)
url: https://z4.home.961504.xyz:10443
check-url: http://host.docker.internal:3004/api/telemetry
icon: si:synology
- title: Vaultwarden 密码保险箱
url: https://vw.961504.xyz
check-url: http://host.docker.internal:8222
icon: si:bitwarden
- title: Mihomo 路由分流面板
url: https://clash.home.961504.xyz:10443/ui/
check-url: http://192.168.31.1:9999
icon: si:cloudflare
- title: 小米主路由器后台
url: https://router.home.961504.xyz:10443
check-url: http://192.168.31.1
icon: si:xiaomi
- title: Uptime Kuma 外部哨兵
url: https://status.961504.xyz
check-url: https://status.961504.xyz
icon: si:uptimekuma
- type: bookmarks
groups:
- title: 🌐 443 免端口直达 (全网通用)
links:
- title: AGY 云端工作台
url: https://agy.961504.xyz
- title: Vaultwarden 密码库
url: https://vw.961504.xyz
- title: Uptime Kuma 监控
url: https://status.961504.xyz
- title: ⚡ 10443 家宽公网直连
links:
- title: 极空间 Z4
url: https://z4.home.961504.xyz:10443
- title: AGY 工作台 (10443)
url: https://agy.home.961504.xyz:10443
- title: Mihomo 分流面板
url: https://clash.home.961504.xyz:10443/ui/
- title: 🔌 局域网原生地址 (192.168.31.x)
links:
- title: AGY 终端 (7681)
url: http://192.168.31.164:7681
- title: 极空间 (5055)
url: http://192.168.31.185:5055
- title: 小米路由器 (31.1)
url: http://192.168.31.1