No description
Find a file
Felipe M. 21e4c434fd
All checks were successful
ci/woodpecker/tag/release Pipeline was successful
docs: updated plugin docs
2025-04-21 18:10:30 +02:00
.woodpecker ci: limit goreleaser to two tasks per release 2025-04-21 15:12:03 +02:00
assets What is my purpose? 2020-04-23 11:00:19 +02:00
cmd/butterrobot fix: missing ca-certs 2025-04-21 17:12:29 +02:00
docs docs: updated plugin docs 2025-04-21 18:10:30 +02:00
internal feat: show version in admin page 2025-04-21 18:08:40 +02:00
.env-example Added admin interface to manage channels and enabled plugins (#9) 2022-02-05 13:00:20 +01:00
.gitignore refactor: python -> go 2025-04-20 14:13:44 +02:00
.goreleaser.yml fix: missing ca-certs 2025-04-21 17:12:29 +02:00
Containerfile refactor: python -> go 2025-04-20 14:13:44 +02:00
go.mod fix: missing ca-certs 2025-04-21 17:12:29 +02:00
go.sum fix: missing ca-certs 2025-04-21 17:12:29 +02:00
Makefile refactor: python -> go 2025-04-20 14:13:44 +02:00
README.md feat: db migrations, encrypted passwords 2025-04-21 15:32:46 +02:00

Butter Robot

Stable Master
Build stable tag docker image Build latest tag docker image
Test Test

Go framework to create bots for several platforms.

Butter Robot

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

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

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