通过 homebutler CLI/MCP 实现 Homelab 服务器运维:检查系统状态、生成 butler 报告、扫描资产/拓扑、管理 Docker 容器、安装...
Homebutler : 管理家居栏服务器, 使用 Homebutler CLI.
功能概述
Homebutler : 管理家居栏服务器, 使用 Homebutler CLI.是一项面向实际任务的技能,主要用于单双进制, 不需要守护进程/ 数据库, JSON 输出, 方便 MCP;Prerequists. homebutler 必须安装和在 PAT 中可用。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Homebutler
使用 homebutler CLI 管理家庭实验室(homelab)服务器。单二进制文件,无需守护进程或数据库,输出 JSON 格式,兼容 MCP。
前提条件
homebutler 必须已安装并位于系统 PATH 中。
# 检查是否已安装 which homebutler # 方式 1:通过 Homebrew 安装(macOS/Linux) brew install Higangssh/homebutler/homebutler # 方式 2:通过 Go 安装 go install github.com/Higangssh/homebutler@latest # 方式 3:从源码构建 git clone https://github.com/Higangssh/homebutler.git cd homebutler && make build && sudo mv homebutler /usr/local/bin/
命令列表
初始化向导
homebutler init # 交互式配置初始化
在 ~/.config/homebutler/config.yaml 创建配置文件,并通过引导式提示完成配置。
系统状态
homebutler status # 本地服务器 homebutler status --server rpi # 指定远程服务器 homebutler status --all # 并行查询所有服务器
返回信息包括:主机名、操作系统、架构、运行时间、CPU(使用率% / 核心数)、内存(总量 / 已用 / 使用率%)、磁盘(挂载点 / 总量 / 已用 / 使用率%)
Butler 报告
homebutler report # 健康状态、警告、变更项及建议操作 homebutler report --no-save # 预览报告(不保存快照) homebutler report --keep 7 # 保留最近 7 个快照 homebutler report --json # 结构化输出,适用于自动化脚本或 MCP 集成
当用户询问“我的 homelab / 服务器当前状态如何?”并希望获得简洁的运行概览时,请优先使用该命令。它会捕获当前系统/容器/端口状态,并与上一次执行结果进行比对。
资产清单与拓扑结构
homebutler inventory scan # 以树状视图展示系统、容器、端口信息 homebutler inventory scan --json # 结构化资产清单输出 homebutler inventory export --format mermaid # 导出 Mermaid 格式拓扑图
当用户询问“当前运行了哪些服务?”、“哪个容器占用了该端口?”或需要为文档编写、AI 分析提供上下文和网络拓扑时,请使用该命令。
Docker 管理
homebutler docker list # 列出全部容器 homebutler docker list --server rpi # 列出指定远程服务器上的容器 homebutler docker list --all # 列出所有服务器上的容器 homebutler docker restart# 重启某容器 homebutler docker stop # 停止某容器 homebutler docker logs # 输出最后 50 行日志 homebutler docker logs 200 # 输出最后 200 行日志
Wake-on-LAN(网络唤醒)
homebutler wake# 按 MAC 地址唤醒 homebutler wake # 按配置中定义的名称唤醒 homebutler wake 192.168.1.255 # 自定义广播地址
配置中的名称需在 wake 目标节下定义。
开放端口
homebutler ports # 查询本地服务器 homebutler ports --server rpi # 查询远程服务器 homebutler ports --all # 查询所有服务器
返回信息包括:协议、地址、端口、PID、进程名
网络扫描
homebutler network scan
通过 ping 扫描 + ARP 表探测本地局域网设备。返回信息包括:IP 地址、MAC 地址、主机名、状态。
注意:扫描可能耗时最长达 30 秒;部分设备若未响应 ping 请求,则不会出现在结果中。
TUI 仪表盘
homebutler watch # 所有服务器的实时终端仪表盘
实时监控所有已配置服务器,自动刷新。终端 UI 中显示 CPU、内存、磁盘使用率及 Docker 容器状态。
Web 仪表盘
homebutler serve # 启动 Web 仪表盘(默认端口 8080) homebutler serve --port 3000 # 自定义端口 homebutler serve --demo # 演示模式(使用模拟数据,不调用真实系统接口)
浏览器访问地址:http://localhost:8080。只读视图,展示所有服务器、Docker 容器及告警信息。
SSH 主机密钥信任管理
homebutler trust# 信任远程服务器的 SSH 主机密钥 homebutler trust --reset # 删除旧密钥并重新建立信任
采用 TOFU(首次使用即信任)模型。首次通过 SSH 连接新服务器前必须执行此操作。
升级
homebutler upgrade # 升级本地及所有远程服务器上的 homebutler homebutler upgrade --local # 仅升级本地二进制文件
从 GitHub 下载最新发布版本并完成安装。对远程服务器,通过 SSH 执行升级操作。
资源告警
homebutler alerts # 查询本地服务器 homebutler alerts --server rpi # 查询远程服务器 homebutler alerts --all # 查询所有服务器
依据配置文件中设定的阈值检查 CPU、内存、磁盘使用情况,按资源分别返回状态(ok / warning / critical)。
部署(远程安装)
homebutler deploy --server rpi # 从 GitHub Releases 下载安装 homebutler deploy --server rpi --local ./homebutler # 离线环境:复制本地二进制文件 homebutler deploy --all # 部署至全部远程服务器
通过 SSH 在远程服务器上安装 homebutler,自动识别目标系统的 OS 和架构。
安装路径优先级: /usr/local/bin → sudo /usr/local/bin → ~/.local/bin(同时自动将该路径加入 .profile/.bashrc/.zshrc 的 PATH)。
应用安装
homebutler install list # 列出可用应用 homebutler install# 安装指定应用(基于 docker compose) homebutler install --port 9090 # 自定义端口 homebutler install status # 查看应用运行状态 homebutler install uninstall # 停止应用但保留数据 homebutler install purge # 停止应用并彻底删除所有数据
通过 docker compose 部署自托管应用。每个应用均独立部署于 ~/.homebutler/apps/ 目录下,含自动生成的 docker-compose.yml 文件及持久化数据目录。安装前自动检测 Docker 是否可用、端口是否冲突、是否存在重复安装。当前支持的应用包括:uptime-kuma、plex、vaultwarden、filebrowser、it-tools、gitea、jellyfin、homepage、stirling-pdf、speedtest-tracker、mealie、pi-hole、adguard-home、portainer、nginx-proxy-manager。
备份、恢复与备份验证
homebutler backup # 备份 Docker compose 卷及文件 homebutler backup --service uptime-kuma # 仅备份指定服务 homebutler backup list # 列出备份归档文件 homebutler backup drill uptime-kuma # 在隔离环境中启动备份并验证 HTTP 健康状态 homebutler backup drill --all # 对备份中所有支持的应用执行验证 homebutler backup drill --archive ./file # 验证指定归档文件 homebutler restore ./backup.tar.gz # 从归档文件恢复卷数据
当用户询问“我的备份是否可信?”时,请优先使用 backup drill:它会校验归档完整性,在隔离的 Docker 环境中启动应用、执行健康检查,并自动清理临时资源。
MCP 服务器
homebutler mcp # 启动 MCP 服务器(基于 stdio 的 JSON-RPC)
启动内置的 MCP(Model Context Protocol)服务器,供 Claude Desktop、ChatGPT、Cursor 及其他 MCP 客户端使用。不监听任何网络端口,仅通过 stdio 通信。
当前支持的 MCP 工具:
system_statusreportinventory_scan、inventory_exportdocker_list、docker_restart、docker_stop、docker_logs、docker_statswake、open_ports、network_scan、alertsbackup_create、backup_list、backup_drill、backup_restoreinstall_list、install_app、install_status、install_uninstall、install_purge
版本信息
homebutler version
输出格式
所有命令默认输出人类可读文本。如需机器可解析的 JSON 输出(推荐用于 AI 或脚本集成),请添加 --json 参数。
配置文件
配置文件按以下顺序自动查找:
--config— 显式指定路径$HOMEBUTLER_CONFIG— 环境变量指定路径~/.config/homebutler/config.yaml— XDG 标准路径(推荐)./homebutler.yaml— 当前工作目录
若未找到配置文件,则使用合理默认值。
配置项说明
servers— 服务器列表,含 SSH 连接参数wake— 命名的 WOL 目标(含 MAC 地址与广播地址)alerts.cpu/memory/disk— CPU / 内存 / 磁盘告警阈值(百分比)output— 默认输出格式
多服务器配置示例
servers:
- name: main-server
host: 192.168.1.10
local: true
- name: rpi
host: 192.168.1.20
user: pi
auth: key # "key"(默认,推荐)或 "password"
key: ~/.ssh/id_ed25519 # 可选,支持自动发现
- name: vps
host: example.com
user: deploy
port: 2222
auth: key
key: ~/.ssh/id_ed25519
使用指南
- 始终执行命令,切勿猜测 — 使用
homebutler status获取真实数据 - 为用户提供结果解读 — 不要直接输出原始 JSON,应以自然语言总结关键信息
- 及时预警异常 — 若任一资源状态为 “warning” 或 “critical”,需明确高亮提示
- 使用
--all获取全局视图 — 当用户询问 “所有服务器” 或 “全部” 时,优先使用--all - 使用
--server聚焦特定目标 — 当用户提及具体服务器名称时,使用--server - Docker 错误处理 — 若目标服务器未安装 Docker 或 Docker daemon 未运行,需清晰说明原因
- 网络扫描提示 — 提醒用户该操作可能耗时约 30 秒
- 安全注意事项 — 切勿在群聊等公开场景中暴露含主机名/IP 的原始 JSON,应做脱敏摘要
- 离线部署建议 — 对无外网环境,推荐使用
--local参数
安全说明
- SSH 认证:始终优先使用密钥认证而非密码;切勿在配置文件中明文存储密码。
- 网络扫描:仅限在您拥有的本地网络中运行;执行前应明确提醒用户。
- 部署操作:仅允许部署至您拥有控制权的服务器;远程安装前必须获得用户确认。
- 配置文件权限:确保配置文件仅对属主可读写(
chmod 600)。 - 无遥测机制:homebutler 不向外发送任何数据;所有操作均在本地执行,或仅连接用户明确配置的目标主机。
错误处理
- SSH 连接失败 → 检查配置中的 host/port/user 字段,确认远程服务器已注册对应 SSH 公钥
- 远程服务器未找到 homebutler → 首先运行
homebutler deploy --server - Docker 未安装 → 明确告知用户该服务器上未安装 Docker
- Docker daemon 未运行 → 建议执行
sudo systemctl start docker - 网络扫描超时 → 在大型子网中属正常现象,建议重试
- 权限被拒绝 → 某些系统上执行端口或 Docker 相关命令可能需要 sudo 权限
典型交互示例
用户:“服务器当前状态如何?”
→ 优先执行 homebutler report,汇总健康状态、告警、显著变更及建议操作;仅在需要原始瞬时状态时使用 homebutler status。
用户:“有什么变化?这个端口是谁在用?帮我梳理一下 homelab 拓扑。”
→ 执行 homebutler inventory scan 或 homebutler inventory export --format mermaid。
用户:“检查所有服务器。”
→ 执行 homebutler status --all,逐台简述各服务器状态。
用户:“树莓派怎么样?”
→ 执行 homebutler status --server rpi,并作简要总结。
用户:“当前运行了哪些 Docker 容器?”
→ 执行 homebutler docker list,列出容器名及其运行状态。
用户:“把 NAS 唤醒。”
→ 执行 homebutler wake nas(若已配置);否则请用户提供 MAC 地址。
用户:“所有服务器上有无告警?”
→ 执行 homebutler alerts --all,汇报所有 warning/critical 级别告警。
用户:“在新服务器上部署 homebutler。”
→ 执行 homebutler deploy --server ,并反馈执行结果。
用户:“安装 uptime-kuma。”
→ 执行 homebutler install uptime-kuma,反馈访问 URL 及部署状态。
用户:“有哪些应用可选?”
→ 执行 homebutler install list,展示全部可用应用列表。
用户:“彻底卸载 vaultwarden。”
→ 执行 homebutler install purge vaultwarden,并确认数据删除操作。
用户:“我的备份是否可靠?”
→ 执行 homebutler backup drill 或 homebutler backup drill --all,反馈通过/失败结果及健康状态。
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章