butterrobot/README.md
Felipe M. ece8280358
All checks were successful
ci/woodpecker/tag/release Pipeline was successful
feat: db migrations, encrypted passwords
2025-04-21 15:32:46 +02:00

98 lines
2.5 KiB
Markdown

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