A chatbot with configurable plugins to use in Telegram channels
|
|
||
|---|---|---|
| .woodpecker | ||
| assets | ||
| cmd/butterrobot | ||
| docs | ||
| internal | ||
| .env-example | ||
| .gitignore | ||
| .goreleaser.yml | ||
| Containerfile | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| README.md | ||
Butter Robot
| Stable | Master |
|---|---|
Go framework to create bots for several platforms.
What is my purpose?
Features
- Support for multiple chat platforms (Slack, Telegram)
- Plugin system for easy extension
- Admin interface for managing channels and plugins
- Message queue for asynchronous processing
Documentation
Installation
From Source
# Clone the repository
git clone https://git.nakama.town/fmartingr/butterrobot.git
cd butterrobot
# Build the application
go build -o butterrobot ./cmd/butterrobot
Containers
The fmartingr/butterrobot/butterrobot container image is published on Github packages:
docker pull docker.pkg.git.nakama.town/fmartingr/butterrobot/butterrobot:latest
docker run -d --name butterrobot -p 8080:8080 docker.pkg.git.nakama.town/fmartingr/butterrobot/butterrobot:latest
Configuration
Configuration is done through environment variables:
DEBUG: Set to "y" to enable debug modeBUTTERROBOT_HOSTNAME: Hostname for webhook URLsLOG_LEVEL: Logging level (DEBUG, INFO, WARN, ERROR)SECRET_KEY: Secret key for sessions and password hashingDATABASE_PATH: Path to SQLite database file
Platform-specific configuration
Slack
SLACK_TOKEN: Slack app access tokenSLACK_BOT_OAUTH_ACCESS_TOKEN: Slack bot OAuth access token
Telegram
TELEGRAM_TOKEN: Telegram bot token
Contributing
git clone git@github.com:fmartingr/butterrobot.git
cd butterrobot
go mod download
Create a .env-local file with the required environment variables:
SLACK_TOKEN=xxx
TELEGRAM_TOKEN=xxx
...
And then you can run it directly:
go run ./cmd/butterrobot/main.go
License
GPL-2.0