英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
蜂箱
Beehive 是一个事件和代理系统,它允许你创建自己的代理,这些代理可以执行由事件和过滤器触发的自动化任务。它是模块化的、灵活的,而且对于任何人来说都非常容易扩展。它有模块(我们称之为 Hives),因此它可以与 Twitter、Tumblr、电子邮件、IRC、Jabber、RSS、Jenkins、Hue 等进行接口、通信或检索信息,仅列举其中一部分。请在我们的 Wiki 查看完整的 可用 Hives 列表。
将这些模块彼此连接可以让你创建非常有用的代理。
以下是 Beehive 可以为你做的一些示例:
- 在你的 Tumblr 博客上重新发布推文
- 将收到的聊天消息转发到你的电子邮件账户
- 如果温度降到某个值以下则开启供热系统
- 运行你自己的 IRC 机器人,让你启动 Jenkins CI 的构建
- 控制你的 Hue 灯光系统
- 当股票价格跌至某个值以下时通知你
安装
软件包与二进制文件
- Arch Linux:蜂巢([AUR](https://aur.archlinux.org/packages/beehive/))
- Linux 静态 64位
- Linux 静态 armv6
- macOS 64位
- Windows 64位
你可以在这里找到更多官方版本 here。
部署工具
- Docker:
docker run --name beehive -d -p 8181:8181 fribbledom/beehive - Ansible
从源码安装
Beehive 需要 Go 1.13 或更高版本。确保你有一个可用的 Go 环境。请参阅 安装说明。
推荐的方法是获取源码并运行 make。
git clone --recursive https://github.com/muesli/beehive.git
cd beehive
make
你可以像安装其他 Go 二进制文件那样构建并安装 beehive 二进制文件 (go get),但你需要确保 Beehive 能找到资源文件(图片、JavaScript、CSS 等)。详见故障排除/注意事项部分。
运行 beehive --help 查看完整的选项列表。
配置
可以把 Hives 想象成小插件,通过你可以响应的事件和你可以执行的动作来扩展 Beehive 的功能。
作为例子,有一个 Twitter 插件可以
- 响应你关注的人发布推文(一个事件)
- 为你发布一条新推文(一个动作)
- ...
或者一个允许你
- 监控 RSS 订阅并对新订阅项做出反应(另一个事件)的 RSS 插件
或者一个让你能够
- 发送电子邮件(另一个动作)的电子邮件插件
每个蜂巢允许你在其中生成一个或多个蜜蜂,每个蜜蜂独立运行。这使你能够创建单独的插件实例,例如一个用于你的私人邮箱的电子邮件蜜蜂,另一个用于你的工作邮箱的电子邮件蜜蜂。
创建蜜蜂
听起来很复杂?其实不然!只是为了好玩,我们来设置蜂巢,让它在 RSS 订阅更新时发送电子邮件给我们。启动 beehive 并在浏览器中打开 http://localhost:8181/。注意,除非你使用 -config 选项指定了其他文件,否则 Beehive 会在当前工作目录创建一个配置文件 beehive.conf。
注意:如果你是用 go build 而不是 make 构建 Beehive,你将必须从源代码目录启动 beehive,以便找到管理界面的所有资源。另请参见本 README 的故障排除与注意事项部分。
管理界面将向你展示可用蜂巢列表。我们需要在这里创建两个蜜蜂,一个用于 RSS 订阅,另一个用于你的电子邮件账户。
设置链
现在我们需要创建一个新的链,将刚创建的两个蜜蜂连接起来。首先选择我们想要响应的蜜蜂及事件,然后选择我们希望执行动作的蜜蜂。RSS 蜜蜂的事件为我们提供了一整套可以使用的参数:订阅项的标题、链接和描述等。你可以使用完整的模板语言来操作和组合这些参数。例如,我们可以将电子邮件的内容设置为类似这样的内容:
Title: {{.title}} - Link: {{index .links 0}}
每当此操作执行时,Beehive 会将 {{.title}} 替换为 RSS 事件的 title 参数,即它获取到的 Feed 项目的标题。以同样的方式,{{index .links 0}} 会变成该事件 links 数组中的第一个 URL。
就这么简单。每当 RSS feed 更新时,Beehive 就会向你发送电子邮件!让不同的 Bees 无缝协作并为你执行聪明的操作真的非常容易。你可以自己试试!
你可以在 我们的 Wiki 中找到有关如何配置 Beehive 以及示例的更多信息。
故障排除与备注
Web界面和其他资源默认嵌入在二进制文件中。当使用 make noembed 时,Beehive 会尝试在其当前工作目录中查找这些文件,因此如果你计划使用Web界面,当前建议从其 git 仓库目录中启动 Beehive。
如果你仍然无法访问Web界面,请检查 git 仓库中的 config 目录是否为空。如果是这种情况,请确保通过运行 git submodule update --init 初始化 git 子模块。
Web界面当前不需要认证。Beehive 默认仅接受来自回环设备的所有连接。
如果你想将 Beehive 绑定到不同的接口/地址,请使用 -bind 和 -canonicalurl 参数运行 Beehive。例如:
beehive -bind "192.168.0.1:8181" -canonicalurl "http://192.168.0.1:8181"
或
docker run --name beehive -d -e CANONICAL_URL="http://192.168.0.1:8181" -p 8181:8181 fribbledom/beehive
开发
需要帮助吗?想要自己动手破解 Hives 吗?加入我们的 IRC(irc://freenode.net/#beehive)或 Gitter。关注蜜蜂的 Twitter!
- 本文标题:beehive - 一个灵活的事件/代理和自动化系统
- 本文链接:https://www.cn121.com/automation/muesli-beehive.html
- 原项目:muesli/beehive 版权归原作者 muesli 及贡献者所有
- 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 AGPL-3.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。基于本页内容形成的衍生作品, 须同样以该协议发布。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 muesli/beehive。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。