boubli/AMUD-Dashboard
boubli/AMUD-Dashboard has 27 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 11:46 UTC. Last push 2026-11-11.
实测星标增长
- 24小时
- 0
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
关于
Unify your homelab. A fast, Rust-powered, zero-YAML dashboard with live Proxmox & Docker telemetry, container controls, and integrations for popular self-hosted services - all from the UI.
自托管readmes/README.zh.md
原文
AMUD Dashboard
English | Español | Português | Français | Deutsch | Italiano | Русский | 中文 | 日本語 | हिन्दी | 한국어 | العربية
更新日志 · 博客 · 主题画廊 · 路线图 · 文档 · 常见问题
main 分支新增(下一版本)
- 法语界面 — 可选,在 Settings → Appearance → Interface language 中切换(默认仍为英语)
- Catppuccin Frappé 主题 — 柔和的蓝灰色搭配淡紫色点缀,浅色模式为 Catppuccin Latte
感谢 @Lib-LOCALE 贡献了这两项功能(#18)。
v1.9.5 新特性
- Multi-node agents — 一台 AMUD 服务器,在每台 Proxmox / Unraid / CasaOS / Docker 主机上安装 agent(Remote agents)
- Nodes strip — 选择主机查看 CPU/RAM;容器控制按
node_tag路由 - TCP + 可选 TLS — 远程 agent 走 VPN 或 TLS;本机仍可用 UDS
v1.9.3 新特性
- Clock timezone & format — IANA 时区 + 12h/24h
- Custom search engines — 自定义搜索引擎 (#17)
- v1.9.2 — Docs / 41 主题
完整历史:Changelog
发布状态
当前推荐:1.9.5。详情与已撤回版本:见 英文 README(Release status 部分)。

统一你的家庭实验室。 一个快速、基于 Rust、零 YAML 的仪表板,提供 Proxmox 与 Docker 实时遥测、容器控制,以及对热门自托管服务的集成——全部通过界面完成。
与运行在笨重运行时(PHP-FPM、Node.js)并依赖复杂的嵌套 YAML 配置文件的主流仪表板(Heimdall、Homepage、Homarr)不同,AMUD 采用编译型 Rust 编写,并完全持久化在 SQLite 中。服务器和遥测代理在空闲时合计 30–50 MB RAM(完整集成网格峰值约 150 MB),路由执行时间在亚毫秒级。
架构与设计决策
AMUD Dashboard 拆分为两个原生二进制文件:
amud-server:基于 Axum 的 Web 服务器,负责提供服务器端渲染的 HTML(通过 Alpine.js 模版化),并通过 SQLite 管理状态。amud-agent:安装在家庭实验室主机上的独立守护进程。它查询主机指标、Proxmox VE 容器和 Docker 运行时,并通过 Unix 域套接字 (UDS) 或 TCP 将原始 JSON 负载流式传输回服务器。
graph TD
User[Web 浏览器] -->|HTML / WebSockets| Server[amud-server]
Server -->|SQLite WAL| DB[(amud.db)]
Agent[amud-agent] -->|UNIX 套接字上的 JSON| Server
Agent -->|直接 HTTPS REST API| PVE[Proxmox VE API]
Agent -->|Unix 域套接字| Docker[Docker 守护进程]
技术栈决策合理性
Rust & Axum
- 无运行时开销:直接编译为原生机器码。消除 JVM/V8 启动和堆 (heap) 开销。
- 并发事件循环 (Tokio):遥测流和第三方集成(AdGuard、Pi-hole、Plex、Home Assistant)在 Tokio 绿色线程上并发轮询。遥测数据在每次轮询 tick 时序列化一次,并使用
tokio::sync::watch通道广播到 WebSockets。
SQLite 持久化 (rusqlite)
- 零 YAML:配置存储在嵌入式 SQLite 数据库中。布局、分类标签和设置直接通过 UI 进行配置,避开了 YAML 语法排错的烦恼。
- 性能:配置为 WAL(预写日志)模式,支持并发读取和低延迟写入,无需外部网络开销。
直接遥测收集
- 零 Shell 子进程:传统方案每隔几秒就会 fork 一次系统调用(如
pvesh或curl)来抓取容器状态,导致高 CPU 开销。 - 原生网络通信:
amud-agent利用hyper和rustls向 Proxmox VE 发送原生的 HTTPS REST API 调用,并使用hyperlocal直接通过 UNIX 套接字读取 Docker 守护进程。
遥测配置
Proxmox VE 集成
主机指标自动运行。如需监控 LXC 容器,代理必须通过 Proxmox VE REST API 的身份验证。
1. 生成 API 令牌
在 Proxmox VE Web UI 中:
- 导航至 Datacenter → Permissions → API Tokens。
- 点击 Add。选择用户(例如
root@pam)和令牌 ID(例如amud)。 - 取消勾选 Privilege Separation,以便令牌继承该用户的虚拟机/系统审计权限。
- 复制返回的密钥 (Secret key)。
2. 将令牌传递给代理
在运行代理的主机上设置环境变量:
PVE_API_TOKEN=PVEAPIToken=root@pam!amud=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
部署
Docker Compose
对于容器化主机(结合服务器和代理,通过共享的 Unix 套接字卷进行通信):
version: '3.8'
services:
app:
image: tradmss/amud-dashboard:latest
container_name: amud_app
restart: always
ports:
- "8000:8000"
environment:
- PORT=8000
- BIND_ADDR=0.0.0.0
- DB_PATH=/app/data/amud.db
- AMUD_SOCKET_PATH=/var/run/amud/amud.sock
- AMUD_AGENT_SECRET=change-me-to-a-long-random-string # 必须与下方的代理密钥一致
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
volumes:
- ./data:/app/data
- amud_run:/var/run/amud
agent:
image: tradmss/amud-dashboard:latest
container_name: amud_agent
entrypoint: ["/app/amud-agent"]
restart: always
environment:
- AMUD_SOCKET_PATH=/var/run/amud/amud.sock
- AMUD_AGENT_SECRET=change-me-to-a-long-random-string # 必须与上方的应用密钥一致
- AMUD_DOCKER=1 # 挂载 docker.sock 时自动启用;设为 0 可禁用
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
volumes:
- amud_run:/var/run/amud
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
amud_run:
name: amud_run
Unraid (Community Applications)
从 Unraid 的 Apps 标签页安装两个应用(它们需要互相通信):
两个容器使用相同的 Agent Secret。指南:Unraid 安装文档
首次启动权限错误? 若日志出现 .amud-secrets-key: Permission denied,请更新到 v1.7.2+ 并重建容器,或查看故障排除与 appdata 权限。
模板 XML 位于 templates/,附带用于提交到 Community Applications 的 ca_profile.xml。
Proxmox LXC 自动引导脚本
如果要在 Proxmox VE LXC 容器内进行原生安装(运行在 Docker 之外),请在 Proxmox VE 主机上执行以下命令:
curl -sSL https://github.com/boubli/AMUD-Dashboard/releases/latest/download/setup-amud.sh | bash
生产资源占用
| 维度 | Heimdall (旧版 PHP) | AMUD Dashboard (Rust) |
|---|---|---|
| 引擎 | PHP 8+ / Laravel | Rust / Axum / Tokio |
| 运行开销 | 高 (解释型 PHP-FPM) | 零 (原生机器码) |
| 静态资源分发 | 每次请求读取磁盘 | 通过 include_str! 嵌入二进制文件中 |
| 空闲 RAM 占用 | ~150MB | 30–50 MB(峰值 ~150 MB) |
| 启动时间 | ~2 - 5 秒 | 亚毫秒级 |
支持与赞助
错误与功能请求: GitHub Issues(首选 — 按版本跟踪)
问题与讨论: GitHub Discussions
文档 / 故障排除: boubli.github.io/AMUD-Dashboard/docs