https://github.com/hexastack/hexabot-helper-minio
The Minio Hexabot Helper Extension for Hexabot to store for attachment files.
https://github.com/hexastack/hexabot-helper-minio
chatbot chatbot-framework files minio minio-client storage
Last synced: 3 months ago
JSON representation
The Minio Hexabot Helper Extension for Hexabot to store for attachment files.
- Host: GitHub
- URL: https://github.com/hexastack/hexabot-helper-minio
- Owner: Hexastack
- License: agpl-3.0
- Created: 2025-01-20T06:47:14.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-01-30T17:11:03.000Z (4 months ago)
- Last Synced: 2025-01-30T17:25:45.335Z (4 months ago)
- Topics: chatbot, chatbot-framework, files, minio, minio-client, storage
- Language: TypeScript
- Homepage: https://hexabot.ai
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hexabot MINIO Helper
Hexabot MINIO Helper is an extension that integrates MINIO storage for managing attachment files in your Hexabot project. This helper allows you to store, retrieve, and manage files efficiently using MINIO as the storage backend.
[Hexabot](https://hexabot.ai/) is an open-source chatbot / agent solution that allows users to create and manage AI-powered, multi-channel, and multilingual chatbots with ease. If you would like to learn more, please visit the [official github repo](https://github.com/Hexastack/Hexabot/).
## Features
- Seamless integration with MINIO storage.
- Configurable settings for MINIO endpoint, port, SSL usage, and authentication.
- Option to set a default storage bucket.
- Compatible with Hexabot's attachment file management system.---
## Settings Configuration
To configure the MINIO Helper, use the following settings in the Hexabot admin panel under **Settings > Minio**:
| **Label** | **Default Value** | **Type** | **Description** |
|---------------|-------------------------|---------------|-------------------------------------------------|
| `endpoint` | `minio` | Text | The endpoint for the MINIO server. |
| `port` | `9000` | Text | The port for the MINIO server. |
| `use_ssl` | `false` | Checkbox | Whether to use SSL for connections. |
| `access_key` | `` | Secret | The access key for MINIO authentication. |
| `secret_key` | `` | Secret | The secret key for MINIO authentication. |
| `bucket` | `hexabot` (default) | Text | The default bucket for storing attachments. |---
## Environment Setup
Set your environment variables in the **./docker/.env** file. These variables will be utilized in the Docker Compose files when you run the project. Below is an example of the required environment variables:
```bash
MINIO_CONSOLE_PORT=9001
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
MINIO_DEFAULT_BUCKET_NAME=hexabot
```## Installation
First, navigate to your Hexabot project directory and make sure the dependencies are installed:
```sh
cd ~/projects/my-hexabot-project
npm install hexabot-helper-minio
```Then follow these steps:
1. Add the `docker-compose.minio.yml` and `docker-compose.minio.dev.yml` files under the `docker/` folder.
2. Start the MINIO service with the following command: `hexabot dev --services minio`
3. Access the MINIO Console at http://localhost:9001.
4. Create or update your API keys (access key and secret key) via the MINIO Console.
5. Navigate to Settings > Minio in the admin panel and update the settings.
6. Set the default storage helper: Navigate to Settings > Chatbot and update the Default Storage Helper to use minio-helper.## Docker compose files
Below an example of MINIO docker compose file `docker/docker-compose.minio.yml`:
```yaml
version: "3.8"services:
api:
networks:
- minio-network
depends_on:
minio:
condition: service_healthyminio:
container_name: minio
image: minio/minio:latest
command: server /data --console-address ":${MINIO_CONSOLE_PORT}"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
healthcheck:
test:
[
"CMD",
"mc",
"ready",
"local"
]
interval: 30s
timeout: 20s
retries: 3
volumes:
- minio-data:/data
networks:
- minio-networkminio-mc:
image: minio/mc
container_name: minio-mc
depends_on:
minio:
condition: service_healthy
restart: true
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set minio http://minio:9000/ ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
&& /usr/bin/mc mb --quiet minio/${MINIO_DEFAULT_BUCKET_NAME}
"
networks:
- minio-networkvolumes:
minio-data:networks:
minio-network:
```As well as the MINIO Console docker compose file `docker/docker-compose.minio.dev.yml`:
```yaml
version: "3.8"services:
minio:
ports:
- "9005:9000"
- "${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}"```
## Support
If you encounter any issues or have questions about using Hexabot MINIO Helper, feel free to contribute or open an issue on the Hexabot GitHub repository.Feel free to join us on [Discord](https://discord.gg/rNb9t2MFkG)