Skip to main content

A client/server tool to securely auto-registers peers to a wireguard VPN

Project description

wg-federation

A WireGuard federation server and client.

Development

Python virtualenv must be installed on your system.

# Setup
python -m venv venv
source ./venv/bin/activate
pip install -e ".[dev]"
pip install -e ".[build]" # optional: if you want to build locally
wg-federation # To run wg-federation

# Deactivate
deactivate

Run Unit Tests

pytest -v --spec
pytest -v --cov # To see coverage

Run Functional Tests

behave tests/features
behave tests/features -w # To see all outputs of all features tagged @wip

Run SAST Tests

bandit -c pyproject.toml -r -q .

Setup IDE and Debugger

To avoid having to install the dependencies on your operating system, setup your IDE to use a python virtual environment “SDK”. E.g. the venv directory you may have created above. Intellij/PyCharm provides this feature. This will allow the IDE to find the libraries in the virtual environment, run and debug the application.

To debug the application, run src/wg_federation/__init__.py

Deploy Manually

Build

python -m build

Publish to Test PyPI

Use __token__ as a username to publish using a token

twine upload --repository testpypi dist/*

Publish in Production (PyPI)

Use __token__ as a username to publish using a token

twine upload dist/*VERSION_HERE

Generate the Documentation

sphinx-apidoc -o doc/ src/wg_federation # Generate API documentation directly from the code
pyreverse -o png -d doc/img --colorized --ignore container.py,federation.py,wireguard_interface.py,hq_state.py,controller_events.py,hq_event.py,wireguard_peer.py,constants.py,main.py,status.py,raw_options.py,log_level.py,is_argument_data_class.py,is_data_class.py,interface_status.py,configuration_saver_interface.py,configuration_loader_interface.py,can_save_configuration_interface.py,can_load_configuration_interface.py,user_input.py,command_line_argument.py,configuration_backend.py,argparse_action.py,command_line_option.py src/wg_federation # Generate UML diagram
make -C doc html # Generate HTML documentation fr²om .rst source code

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

wg-federation-0.5.1.tar.gz (45.0 kB view hashes)

Uploaded Source

Built Distribution

wg_federation-0.5.1-py3-none-any.whl (71.9 kB view hashes)

Uploaded Python 3

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