92 lines
2.3 KiB
Markdown
92 lines
2.3 KiB
Markdown
# Butter Robot
|
|
|
|
| Stable | Master |
|
|
| --- | --- |
|
|
|  |  |
|
|
|  |  |
|
|
|
|
Go framework to create bots for several platforms.
|
|
|
|

|
|
|
|
> 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
|