Your project should have a YAML file with the configuration, botella will read it and launch your bot.
$ cat botella.yaml
adapters:
- name: slack
environment:
key: xoxb-xxx
plugins:
- image: agonzalezro/botella-test
environment:
KEY: this-is-a-secret
only_mentions: true
$ ./botella # just launch it!
It supports more options than the ones shown above, check the readme to learn them.
Plugins for botella are just Docker containers that receive a JSON an return plain text. For example, this is an Slack message:
{
"version": -1,
"emitter": "U02SLLLH7",
"receiver": "G2TF58RH9",
"body": "u003c@U1PQFQ2SJu003e hi there my friend, do a deploy please"
}
You can find an example here and a list of available plugins here.
Probably in some point you would like to add storage, just use environment variables to define where it is (ex: host) and how to access it (ex: username & password).
The idea behind botella is reach the maximum level of plugability with the minimum effort. For that reason, just editing the yaml file you will be able to add your bot to different stream, for example, to Slack and as an HTTP server.
Also, if you are a Go developer adding your own adapter wouldn't be complicated at all (check the current ones and the interface, it's pretty straigh forward). We have plans to add Telegram, IRC, Github et al.