Homebutler

Polar Sponsor
爱发电 赞助
.NET 9.0

通过 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_status
  • report
  • inventory_scan、inventory_export
  • docker_list、docker_restart、docker_stop、docker_logs、docker_stats
  • wake、open_ports、network_scan、alerts
  • backup_create、backup_list、backup_drill、backup_restore
  • install_list、install_app、install_status、install_uninstall、install_purge

版本信息

homebutler version

输出格式

所有命令默认输出人类可读文本。如需机器可解析的 JSON 输出(推荐用于 AI 或脚本集成),请添加 --json 参数。

配置文件

配置文件按以下顺序自动查找:

  1. --config — 显式指定路径
  2. $HOMEBUTLER_CONFIG — 环境变量指定路径
  3. ~/.config/homebutler/config.yaml — XDG 标准路径(推荐)
  4. ./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

使用指南

  1. 始终执行命令,切勿猜测 — 使用 homebutler status 获取真实数据
  2. 为用户提供结果解读 — 不要直接输出原始 JSON,应以自然语言总结关键信息
  3. 及时预警异常 — 若任一资源状态为 “warning” 或 “critical”,需明确高亮提示
  4. 使用 --all 获取全局视图 — 当用户询问 “所有服务器” 或 “全部” 时,优先使用 --all
  5. 使用 --server 聚焦特定目标 — 当用户提及具体服务器名称时,使用 --server
  6. Docker 错误处理 — 若目标服务器未安装 Docker 或 Docker daemon 未运行,需清晰说明原因
  7. 网络扫描提示 — 提醒用户该操作可能耗时约 30 秒
  8. 安全注意事项 — 切勿在群聊等公开场景中暴露含主机名/IP 的原始 JSON,应做脱敏摘要
  9. 离线部署建议 — 对无外网环境,推荐使用 --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,反馈通过/失败结果及健康状态。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习