Metadata-Version: 2.1
Name: bovine-herd
Version: 0.2.5
Summary: 
Home-page: https://codeberg.org/bovine/bovine
Author: Helge
Author-email: helge.krueger@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: aiodns (>=3.0.0,<4.0.0)
Requires-Dist: aiohttp (>=3.8.3,<4.0.0)
Requires-Dist: asyncstdlib (>=3.10.5,<4.0.0)
Requires-Dist: bovine-process (>=0.2.0,<0.3.0)
Requires-Dist: bovine-pubsub (>=0.2.0,<0.3.0)
Requires-Dist: bovine-store (>=0.2.1,<0.3.0)
Requires-Dist: markdown (>=3.4.1,<4.0.0)
Requires-Dist: python-markdown-math (>=0.8,<0.9)
Requires-Dist: tortoise-orm[asyncpg] (>=0.19.3,<0.20.0)
Project-URL: Repository, https://codeberg.org/bovine/bovine
Description-Content-Type: text/markdown

# bovine_herd

`bovine_herd` is a `bovine` powered ActivityPub server, which interoperates with the rest of the FediVerse.

Running:

```bash
pip install bovine_herd
hypercorn bovine_herd:app
```

This will start `bovine_herd` using an sqlite3 database.

## Interacting with the fediverse

Assume that you alias `$DOMAIN` so that it redirects to the above server, e.g. via....

Then by running

```bash
pip install bovine_tool
python -mbovine_tool.register --domain $DOMAIN moocow
```

you create a new account for __moocow__. This command returns its bovine name, which will be of the form `moocow + uuid4()`, e.g. `moocow_09c80006-483c-4826-b48c-cf5134b4e898`. By running:

```bash
python -mbovine_tool.manage --new_did_key $BOVINE_NAME
```

you will be given a secret (an Ed25519 private key, i.e. starts with `z3u2`). Once you have this secret, you can send a message via

```bash
python -mbovine.msg --secret $SECRET --host $DOMAIN moooo
```

## Configuration

The default database connection is "sqlite://bovine.sqlite3". This can be overwridden with the environment variable "BOVINE_DB_URL".

- `BOVINE_REDIS` represents how to reach redis, e.g. `redis://localhost`. If not set, redis is not used. Redis is necessary when using more than one worker.
- `BOVINE_LOGFILE` gives the path of the log file. When not present bovine.log is used.

