A chatbot with configurable plugins to use in Telegram channels
  • Go 84.2%
  • HTML 14.9%
  • Makefile 0.6%
  • Dockerfile 0.3%
Find a file
Felipe M. 63d63d7a3b
All checks were successful
CI / goreleaser-lint (push) Successful in 7s
CI / format (push) Successful in 1m11s
CI / test (push) Successful in 1m42s
CI / lint (push) Successful in 2m48s
CI / build (push) Successful in 3m2s
ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1)
- Replace Woodpecker CI with Forgejo Actions workflows (ci.yml, release.yml)
- Add goreleaser-lint and build jobs to CI pipeline
- Simplify Makefile to match current project conventions
- Update Containerfile with multi-stage Alpine build for ca-certs, tzdata, and non-root user
- Use .Tag for docker image templates and enable latest manifest
- Add explicit release.gitea config to goreleaser

Reviewed-on: #1
Co-authored-by: Felipe M. <me@fmartingr.com>
Co-committed-by: Felipe M. <me@fmartingr.com>
2026-04-08 10:50:27 +02:00
.github/workflows ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1) 2026-04-08 10:50:27 +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 ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1) 2026-04-08 10:50:27 +02:00
internal ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1) 2026-04-08 10:50:27 +02:00
.env-example Added admin interface to manage channels and enabled plugins (#9) 2022-02-05 13:00:20 +01: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 ci: migrate from Woodpecker to Forgejo Actions and modernize build setup (#1) 2026-04-08 10:50:27 +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 docs: updated README 2025-04-22 11:41:56 +02:00

Butter Robot

Status badge

Go framework to create bots for several platforms.

Butter Robot

What is my purpose?

Features

  • Support for multiple chat platforms (Slack (untested!), 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