# Butter Robot | Stable | Master | | --- | --- | | ![Build stable tag docker image](https://git.nakama.town/fmartingr/butterrobot/workflows/Build%20stable%20tag%20docker%20image/badge.svg?branch=stable) | ![Build latest tag docker image](https://git.nakama.town/fmartingr/butterrobot/workflows/Build%20latest%20tag%20docker%20image/badge.svg?branch=master) | | ![Test](https://git.nakama.town/fmartingr/butterrobot/workflows/Test/badge.svg?branch=stable) | ![Test](https://git.nakama.town/fmartingr/butterrobot/workflows/Test/badge.svg?branch=master) | 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, Telegram) - Plugin system for easy extension - Admin interface for managing channels and plugins - Message queue for asynchronous processing ## Documentation [Go to documentation](./docs) ## 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