butterrobot/README.md
Felipe M. 7c684af8c3
All checks were successful
ci/woodpecker/tag/release Pipeline was successful
refactor: python -> go
2025-04-20 14:13:44 +02:00

2.3 KiB

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

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