A chatbot with configurable plugins to use in Telegram channels
  • Go 84.6%
  • HTML 14.6%
  • Makefile 0.5%
  • Dockerfile 0.3%
Find a file
Felipe M. 29538b7d63
All checks were successful
CI / format (push) Successful in 1m50s
CI / lint (push) Successful in 3m0s
CI / goreleaser-lint (push) Successful in 10s
CI / test (push) Successful in 1m35s
CI / build (push) Successful in 1m35s
chore: remove Slack platform support
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.
2026-07-06 07:52:31 +02:00
.github/workflows feat: add !gallerydl command to download media from links 2026-07-05 20:05:57 +02:00
assets What is my purpose? 2020-04-23 11:00:19 +02:00
cmd/butterrobot chore: make format 2025-04-22 18:10:24 +02:00
docs chore: remove Slack platform support 2026-07-06 07:52:31 +02:00
internal chore: remove Slack platform support 2026-07-06 07:52:31 +02:00
.env-example chore: remove Slack platform support 2026-07-06 07:52:31 +02:00
.gitignore chore: ignore all test db files 2025-06-13 12:04:22 +02:00
.goreleaser.yml ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1) 2026-04-08 10:50:27 +02:00
CLAUDE.md chore: try to ensure that code is checked after each session 2025-06-23 11:35:30 +02:00
Containerfile feat: add !gallerydl command to download media from links 2026-07-05 20:05:57 +02:00
go.mod feat: added help command 2025-06-13 12:04:07 +02:00
go.sum fix: missing ca-certs 2025-04-21 17:12:29 +02:00
Makefile ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1) 2026-04-08 10:50:27 +02:00
README.md chore: remove Slack platform support 2026-07-06 07:52:31 +02:00

Butter Robot

Status badge

Go framework to create bots for several platforms.

Butter Robot

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

Go to 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.

Learn more about migrations

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

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