Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 2.21 KB

README.md

File metadata and controls

66 lines (44 loc) · 2.21 KB

RoboMonit

Let robots monitor your apps and files.

What's that?!?

Pipe your data into RoboMonit and let it control your hardware when defined patterns match.

RoboMonit is powered by GoBot, so you'll have support for a lot of platforms like Raspberry Pi, Arduino, Beaglebone, Edison and why not drones. Blink LED's, move your Sphero or sound an alarm.

Demos

youtube

asciicast

Requirements

Install

go install github.com/frozenminds/robomonit

Configure

Create a new YAML configuration file named robomonit.yaml and place it under $HOME or /etc.

Sample configuration to match HTTP request methods (GET or HEAD, POST, PATCH or PUT, DELETE) and light up an LED:

platforms:
  raspi:
    direct-pin:
      green: "15"
      yellow: "16"
      blue: "17"
      red: "18"
patterns:
  raspi.direct-pin.green: (GET|HEAD)
  raspi.direct-pin.yellow: POST
  raspi.direct-pin.blue: (PATCH|PUT)
  raspi.direct-pin.red: DELETE

Then pipe the logs into RoboMonit:

ssh domain.com tail -f /var/log/nginx/access.log | robomonit monitor

There's convenience machine MachineFactory built in that configurable via the configuration file. It supports Arduino, Beaglebone, C.H.I.P, Edison and Raspberry Pi with direct PIN and LED drivers.

For more control, safety, drivers and so on, create your own struct. The sole purpose of MachineFactory is to easily configure and use RobotMonit.

Special Thanks

  • Golang - The Go Programming Language
  • Viper - Go configuration with fangs!
  • Cobra - A Commander for modern Go CLI interactions
  • Gobot - Golang Powered Robotics
  • RaspberryPi - Credit card-sized single-board computers