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

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.13.tar.gz (333.0 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.13-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for roboherd-0.1.13.tar.gz
Algorithm Hash digest
SHA256 fb3c5760cf164070d6f86ac6dc9fe96ad1d3bfbb50d8d80ddfe6ec23172ec60c
MD5 c00f07887ac672a7dca4e1bfcdb18cf1
BLAKE2b-256 4bafb215d747bfcc841643546e6b6bb6898da21a9e4b2484ecc9a3397cb17ed5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for roboherd-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 e8a98a5938ee09b64fe52d8be4043930c533a36fc1c28c6573c35eaced6120c9
MD5 cf8ab50b0e0961e3df6f625ca2d9e56e
BLAKE2b-256 37b91c63f61d9d50f2ec990f45bede3e695384fda63a2a6a2b08ce6710d9b341

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