Skip to main content

Synchronizes your WireGuard settings with Pro Custodibus.

Project description

Pro Custodibus Agent

Pro Custodibus is a service that makes WireGuard networks easy to deploy and manage. You run the Pro Custodibus agent on each WireGuard host you want to manage, and the agent monitors and synchronizes the hosts' WireGuard settings with the remote Pro Custodibus service.

Installing

Requires python 3.8 or newer and libsodium. Installer script can install requirements, plus the agent itself, on most linuxes, FreeBSD, OpenBSD, and macOS (if macOS has Homebrew). 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 for full details (or to download the pre-built Windows installer).

Docker

The docker/wireguard.dockerfile is built weekly and pushed to the docker.io/procustodibus/wireguard repository. It produces a base WireGuard image without the agent.

The docker/agent.dockerfile is built weekly and pushed to the docker.io/procustodibus/agent repository. It produces a Docker image with WireGuard and the latest agent installed together.

Run either image by placing your WireGuard or Pro Custodibus configuration files in a host directory like /srv/containers/wireguard/conf, and then running the image like the following:

docker run \
    --cap-add NET_ADMIN \
    --publish 51820:51820/udp \
    --name wireguard \
    --rm \
    --volume /srv/containers/wireguard/conf:/etc/wireguard \
    procustodibus/agent

See the Container Documentation for full details.

Development

Set up dev env

  1. Create a virtualenv with pyenv:

    pyenv virtualenv 3.10.4 procustodibus-agent
    
  2. Activate the virtualenv:

    pyenv local procustodibus-agent 3.8.19 3.9.19 3.10.14 3.11.9 3.12.4
    
  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

Build and run docker dev image (with *.conf files in /srv/containers/wireguard/conf):

tox -e build
docker/dev.sh dev
docker run \
    --cap-add NET_ADMIN \
    --publish 51820:51820/udp \
    --name wireguard \
    --rm \
    --volume /srv/containers/wireguard/conf:/etc/wireguard \
    procustodibus-agent:dev

Run all (docker-based) installer tests:

docker-compose -f test_install/docker-compose.yml build --pull
tox -e py310 -- test_install

Manually run pre-push hook on all version-controlled files:

tox -e pre-commit -- run -a --hook-stage push

Build Windows installer

  1. Install Python.

  2. Install Inno Setup.

  3. Create a virtualenv:

    python -m venv C:\venvs\procustodibus-agent
    
  4. Activate the virtualenv:

    C:\venvs\procustodibus-agent\Scripts\activate.bat
    
  5. Install tox:

    pip install tox
    
  6. Build the Windows executables with cx_freeze:

    tox -e build_exe
    
  7. Build the Windows installer with Inno Setup:

    "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\windows.iss
    

The installer will be built as dist\ProCustodibusAgentInstaller.exe.

Contributing

Resources

License

The MIT License

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

procustodibus_agent-1.7.4.tar.gz (52.4 kB view details)

Uploaded Source

Built Distribution

procustodibus_agent-1.7.4-py3-none-any.whl (57.7 kB view details)

Uploaded Python 3

File details

Details for the file procustodibus_agent-1.7.4.tar.gz.

File metadata

  • Download URL: procustodibus_agent-1.7.4.tar.gz
  • Upload date:
  • Size: 52.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for procustodibus_agent-1.7.4.tar.gz
Algorithm Hash digest
SHA256 80f2d67b07bde19c6d76d7346077647db245482c351f326fe3fd668c79c9616c
MD5 0a9d4d52c0bab9a66ccc004de1f6d490
BLAKE2b-256 f85517ed6f5064b89f2c56846f6f3516836133d24aa1c25cda39f3de3461b784

See more details on using hashes here.

File details

Details for the file procustodibus_agent-1.7.4-py3-none-any.whl.

File metadata

File hashes

Hashes for procustodibus_agent-1.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 81bc6654d08e5c19061a2f85fb53c0fa6add3c6f60d46b86f2fa65b686fcc95c
MD5 0325774507e34752481c1b1197355fd2
BLAKE2b-256 34ab1382c12b87fe8bbcf63b6bfd0a4505dcde2d98c20f466d6e04369b666f44

See more details on using hashes here.

Supported by

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