This is the EdgeBox VPN Agent project.
Documentation can be found in the docs/ folder.
For Linux, install the following libraries (see requirements.txt):
libcurl4-openssl-devlibssl-devwireguard-toolslibmnl-dev
Note: For other operating systems (macOS, Windows), these dependencies are not required or are replaced by platform-specific mocks or implementations.
To build the project with CMake:
Debug build:
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Linux
cmake --build buildRelease build:
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Linux
cmake --build build
cd build
cpack
## install
sudo dpkg -i <file.deb>Debug app with vscode:
sudo gdbserver localhost:2345 ./build/AgentService
Debug build:
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Darwin
cmake --build buildRelease build:
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Darwin
cmake --build buildDebug app with vscode:
sudo debugserver localhost:2345 ./build/AgentService
Run with elevated privileges (if needed):
sudo ./build/AgentServiceLinux integration tests spin up two network namespaces, a Python mock control plane, and two agent instances to verify end-to-end WireGuard peer exchange.
See tests/integration/linux/README.md for setup, topology, and run instructions.
A stateful Python mock server (control_plane_mock/mock_server.py) implements the full Control Plane API (/register, /ping) for local development and integration testing.
See control_plane_mock/README.md for usage and curl examples.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.