Beehive

Beehive is an event and agent system, which allows you to create your own agents that perform automated tasks triggered by events and filters. It is modular, flexible and really easy to extend for anyone. It has modules (we call them Hives), so it can interface with, talk to, or retrieve information from Twitter, Tumblr, Email, IRC, Jabber, RSS, Jenkins, Hue - to name just a few. Check out the full list of available Hives in our Wiki.

Connecting those modules with each other lets you create immensely useful agents.


Note

For this guide you should be familiar with the basic concepts of

License

Beehive is released under the AGPL-3.0 License.

Installation

Check for the latest version on the Beehive release page, then download and unpack that version and move the binary to ~/bin:

[isabell@stardust ~]$ cd ~/tmp
[isabell@stardust beehive]$ wget https://github.com/muesli/beehive/releases/download/v0.4.0/beehive_0.4.0_Linux_x86_64.tar.gz
[isabell@stardust beehive]$ tar -xzvf beehive_0.4.0_Linux_x86_64.tar.gz
[isabell@stardust beehive]$ mv beehive ~/bin
[isabell@stardust beehive]$

Configuration

Beehive will generate default config in the working directory, we will use the --config flag to store the config file in ~/etc/beehive.conf.

Supervisord Daemon Setup

Create ~/etc/services.d/beehive.ini with the following content:

[program:beehive]
command=beehive --config ~/etc/beehive.conf
autostart=yes
autorestart=yes
startsecs=30s

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

Finishing installation

Since Beehive does not support any kind of authentication we will not make it public using a web backend but use SSH port forwarding to create a secure tunnel from your local device. To do so, execute the following on your local device:

[you@localhost ~]$ ssh -L 8181:localhost:8181 isabell@stardust.uberspace.de -N -v
[...]
debug1: Connection to port 8181 forwarding to localhost port 8181 requested.

Now you can open http://localhost:8181 in your browser and this will forward to the Uberspace and deliver the Beehive web frontend.

Updates

Update by downloading new binary for x86 64 from https://github.com/muesli/beehive/releases and restarting the service with supervisorctl restart beehive.


Tested on Uberspace U7 with Go v1.15.7, Beehive Version 0.4.0

Written by: momoaux <momoaux@koma666.de>