A chatbot with configurable plugins to use in Telegram channels
- Go 84.6%
- HTML 14.6%
- Makefile 0.5%
- Dockerfile 0.3%
Slack was always marked as untested and is being dropped, leaving Telegram as the sole supported platform. - Delete the internal/platform/slack connector package - Remove Slack registration in the platform factory - Remove SlackConfig and its SLACK_TOKEN env vars from config - Scrub Slack from README, docs, and .env examples - Drop incidental Slack references from the gallerydl plugin copy Also fixes a pre-existing staticcheck SA5011 warning in db_test.go so the tree lints cleanly. |
||
|---|---|---|
| .github/workflows | ||
| assets | ||
| cmd/butterrobot | ||
| docs | ||
| internal | ||
| .env-example | ||
| .gitignore | ||
| .goreleaser.yml | ||
| CLAUDE.md | ||
| Containerfile | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| README.md | ||
Butter Robot
Go framework to create bots for several platforms.
What is my purpose?
Features
- Support for chat platforms (Telegram)
- Plugin system for easy extension
- Admin interface for managing channels and plugins
- Message queue for asynchronous processing
Documentation
Database Management
ButterRobot includes an automatic database migration system. Migrations are applied automatically when the application starts, ensuring your database schema is always up to date.
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
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:
TELEGRAM_TOKEN=xxx
...
And then you can run it directly:
go run ./cmd/butterrobot/main.go
License
GPL-2.0