Metadata-Version: 2.1
Name: procustodibus_broker
Version: 1.1.1
Summary: Pushes events from Pro Custodibus into your security management systems.
Home-page: https://www.procustodibus.com/
Author: Arcem Tene
Author-email: dev@arcemtene.com
License: MIT
Project-URL: Changelog, https://docs.procustodibus.com/guide/integrations/brokers/#changelog
Project-URL: Documentation, https://docs.procustodibus.com/guide/integrations/brokers/
Project-URL: Source, https://git.sr.ht/~arx10/procustodibus-broker
Project-URL: Tracker, https://todo.sr.ht/~arx10/procustodibus
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: System :: Networking :: Monitoring
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: docopt-ng~=0.9
Requires-Dist: inflection~=0.5
Requires-Dist: pynacl~=1.5
Requires-Dist: requests~=2.31
Provides-Extra: lint
Requires-Dist: cohesion; extra == "lint"
Requires-Dist: darglint; extra == "lint"
Requires-Dist: dlint; extra == "lint"
Requires-Dist: flake8; extra == "lint"
Requires-Dist: flake8-alfred; extra == "lint"
Requires-Dist: flake8-bandit; extra == "lint"
Requires-Dist: flake8-broken-line; extra == "lint"
Requires-Dist: flake8-bugbear; extra == "lint"
Requires-Dist: flake8-builtins; extra == "lint"
Requires-Dist: flake8-class-attributes-order; extra == "lint"
Requires-Dist: flake8-coding; extra == "lint"
Requires-Dist: flake8-cognitive-complexity; extra == "lint"
Requires-Dist: flake8-comprehensions; extra == "lint"
Requires-Dist: flake8-debugger; extra == "lint"
Requires-Dist: flake8-docstrings; extra == "lint"
Requires-Dist: flake8-eradicate; extra == "lint"
Requires-Dist: flake8-executable; extra == "lint"
Requires-Dist: flake8-expression-complexity; extra == "lint"
Requires-Dist: flake8-functions; extra == "lint"
Requires-Dist: flake8-fixme; extra == "lint"
Requires-Dist: flake8-isort; extra == "lint"
Requires-Dist: flake8-logging-format; extra == "lint"
Requires-Dist: flake8-pep3101; extra == "lint"
Requires-Dist: flake8-print; extra == "lint"
Requires-Dist: flake8-pytest; extra == "lint"
Requires-Dist: flake8-pytest-style; extra == "lint"
Requires-Dist: flake8-requirements; extra == "lint"
Requires-Dist: flake8-rst; extra == "lint"
Requires-Dist: flake8-spellcheck; extra == "lint"
Requires-Dist: flake8-string-format; extra == "lint"
Requires-Dist: pep8-naming; extra == "lint"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-datadir; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: pytest-timeout; extra == "test"
Requires-Dist: pytest-watch; extra == "test"

Pro Custodibus Broker
=====================

[Pro Custodibus](https://www.procustodibus.com/) is a service that makes [WireGuard](https://www.wireguard.com/) networks easy to deploy and manage.

To integrate Pro Custodibus with your own SIEM or other log tools, you can run the Pro Custodibus broker on one of your own internal hosts, and the broker will pull alerts and other events from Pro Custodibus and push them to your own security management systems.


Installing
----------

Requires python 3.8 or newer and libsodium. Installer script can install requirements, plus the broker itself, on most linuxes. Install from source like the following:
```
./install.sh --install
```

Or run it like the following to see more options:
```
./install.sh --help
```

See the [Installer Documentation](https://docs.procustodibus.com/guide/integrations/brokers/#install) for full details.


Development
-----------

### Set up dev env

1. Create a virtualenv with [pyenv](https://github.com/pyenv/pyenv):
```
pyenv virtualenv 3.8.18 procustodibus-broker
```

2. Activate the virtualenv:
```
pyenv local procustodibus-broker 3.8.18 3.9.18 3.10.13 3.11.7 3.12.1
```

3. Install tox:
```
pip install tox
```

4. Install pre-commit and pre-push hooks:
```
tox -e pre-commit -- install
tox -e pre-commit -- install -t pre-push
```

### Dev tasks

List all tox tasks you can run:
```
tox -av
```

Run unit tests in watch mode:
```
tox -e watch
```

Run all (docker-based) installer tests:
```
docker-compose -f test_install/docker-compose.yml build --pull
tox -e py38 -- test_install
```

Manually run pre-push hook on all version-controlled files:
```
tox -e pre-commit -- run -a --hook-stage push
```


Contributing
------------

* [Code of Conduct](https://docs.procustodibus.com/community/conduct/)
* [File a Bug](https://docs.procustodibus.com/guide/community/bugs/)
* [Report a Vulnerability](https://docs.procustodibus.com/guide/community/vulns/)
* [Submit a Patch](https://docs.procustodibus.com/guide/community/code/)


Resources
---------

* Home page: https://www.procustodibus.com/
* Documentation: https://docs.procustodibus.com/guide/integrations/brokers/
* Changelog: https://docs.procustodibus.com/guide/integrations/brokers/#changelog
* Issue tracker: https://todo.sr.ht/~arx10/procustodibus
* Mailing list: https://lists.sr.ht/~arx10/procustodibus
* Source code: https://git.sr.ht/~arx10/procustodibus-broker


License
-------

[The MIT License](https://git.sr.ht/~arx10/procustodibus-broker/tree/main/LICENSE)
