# Butter Robot ![Status badge](https://woodpecker.local.fmartingr.dev/api/badges/5/status.svg) Go framework to create bots for several platforms. ![Butter Robot](./assets/icon@120.png) > 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](./docs) ### 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](./docs/migrations.md) ## Installation ### From Source ```bash # 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: ```bash 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 ```bash 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: ```bash go run ./cmd/butterrobot/main.go ``` ## License GPL-2.0