Skip to main content

A Fediverse bot framework

Project description

Roboherd

Roboherd is a framework for building Fediverse bots using the Cattle Drive Protocol.

For more information, see the documentation or the repository.

Developping with cattle_grid

In your catle_grid config directory add a roboherd user, e.g. a file testing.toml with content

[testing]
enable = true

[[testing.accounts]]
name = "herd"
password = "pass"
permissions = ["admin"]

Configure roboherd via roboherd.toml, e.g.

base_url = "http://abel"
connection_string = "ws://herd:pass@localhost:3000/ws/"

[cow.rooster]
bot = "roboherd.examples.rooster:bot"

This will trigger a periodic message to cattle_grid.

nginx for cattle_grid

The nginx in the cattle_grid configuration should forward the path /ws/ to rabbitmq (supporting mqtt over websockets)

server {
    listen 80;
    
    location /ws/ {
        proxy_pass http://rabbitmq:15675;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 86400; # neccessary to avoid websocket timeout disconnect
        proxy_send_timeout 86400; # neccessary to avoid websocket timeout disconnect
        proxy_redirect off;
        proxy_buffering off;
    }
}

similarly nginx should forward port 80 to 3000 (in the docker compose file).

BDD Tests

Start the pasture currently from containers. Run a runner container via

docker run --rm -it -e UV_PROJECT_ENVIRONMENT=/tmp/venv\
    -v .:/app --workdir /app\
    --network fediverse-pasture\
    ghcr.io/astral-sh/uv:alpine /bin/sh

Then run

uv sync --group bdd
uv run behave

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roboherd-0.1.14.tar.gz (344.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roboherd-0.1.14-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file roboherd-0.1.14.tar.gz.

File metadata

  • Download URL: roboherd-0.1.14.tar.gz
  • Upload date:
  • Size: 344.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for roboherd-0.1.14.tar.gz
Algorithm Hash digest
SHA256 160e7edf83769988af7d9951df27f6625e7101c02d74cca932f576ed2da87362
MD5 a64277dc040492477b919c8c7610f664
BLAKE2b-256 2a1e5796d22091a2373ead5fefcaf6867d121ae2d6c156b011e2374a85e2d41d

See more details on using hashes here.

File details

Details for the file roboherd-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: roboherd-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for roboherd-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 d1c6bc20101f2c6888bbd3544b3340db6fcf772a691e88f8c2809794c280276b
MD5 d9ca3b96e15fce770cd578dfedf17444
BLAKE2b-256 0113a183476afa31c83cb60aa41f907b5f628ea57205002137cdfaa58f670d9b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page