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 mode
- BUTTERROBOT_HOSTNAME: Hostname for webhook URLs
- LOG_LEVEL: Logging level (DEBUG, INFO, WARN, ERROR)
- SECRET_KEY: Secret key for sessions and password hashing
- DATABASE_PATH: Path to SQLite database file
Platform-specific configuration
Slack
- SLACK_TOKEN: Slack app access token
- SLACK_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
