richard

Crates.iorichard
lib.rsrichard
version0.1.4
sourcesrc
created_at2024-01-18 12:17:59.29803
updated_at2024-03-22 09:58:04.811099
descriptionrichard is a modular chatbot
homepage
repositoryhttps://github.com/outscale/richard
max_upload_size
id1104143
size141,306
Jérôme Jutteau (jerome-jutteau)

documentation

README

Richard

Project Sandbox

Richard is a friendly chatbot which can help you trigger alerts.

For now, the bot only support Webex room to speak for has a modular architecture to add any other communication protocols.

Features

Richard is modular and every module must be explicitely enabled.

Available modules:

  • webex: interface with Webex chat service
  • ping: responds to /ping commands with "pong"
  • help: responds to /help command
  • triggers: allow commands to be sent to all other modules
  • down_detectors: watch for one or more URL. Alert when target goes down
  • github_orgs: watch for all releases of all repositories of one or more github organisation
  • github_repos: watch one or more specific githib repositories, trigger message on new release
  • hello: send a random quote at a specific time interval
  • ollama: interface with ollama API, respond when no command is triggered
  • feeds: watch for one or more RSS feeds, alert on new items
  • roll: responds to /roll commands. e.g. /roll 1d20
  • webpages: watch for one or more webpages. Alert when page content change.
  • outscale_api_versions: watch for new API version of one or more Outscale API endpoints

Build

  1. Install Rustlang
  2. Run cargo build --release

If you need to have a static binary:

  1. Install musl toolchain: rustup target add x86_64-unknown-linux-musl
  2. Install musl-gcc (for Debian apt install musl-tools)
  3. Build with cargo build --target x86_64-unknown-linux-musl --release

Configure

Parameters are passed through environment variables. See config.env.ori example. Use --show-params flag to print all needed var env per modules

As a facility, you can:

  1. copy config.env.ori to config.env
  2. edit config.env
  3. load options by running source config.env

Run

source myconf.env && cargo run
Commit count: 195

cargo fmt