A Zulip bot that runs arbitrary, un-sandboxed Clojure code. Currently stalking around Hacker School.
Lazubot can be deployed using Docker.
git clone git@github.com:thieman/lazubot
lazubot/start_lazubot # see this script for the full Docker commands
Lazubot itself is deployed with Docker. The main Lazubot instance is referred to as the "master" and is responsible for connecting to Zulip and responding to any messages it receives. This runs on top of your actual machine, the "host."
Lazubot executes any Clojure code you throw at it with no restrictions at all. To allow this with a modicum of sanity, the master spins off child Docker containers to execute the Clojure code. These containers are modeled off of Docker in Docker and are fully expendable. They are cut off from the Internet and are only allowed to communicate on port 8080, which they use to talk to the master container using ZeroMQ. If anything causes an executor to time out when executing Clojure code, the master will kill it and spin up a new container to replace it.
Copyright © 2013 Travis Thieman
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.