Skip to content

KostiantynYarovyiBf/AgentService

Repository files navigation

EdgeBox VPN Agent

This is the EdgeBox VPN Agent project.
Documentation can be found in the docs/ folder.

Requirements

For Linux, install the following libraries (see requirements.txt):

  • libcurl4-openssl-dev
  • libssl-dev
  • wireguard-tools
  • libmnl-dev

Note: For other operating systems (macOS, Windows), these dependencies are not required or are replaced by platform-specific mocks or implementations.

Building

To build the project with CMake:

Linux

Debug build:

cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Linux
cmake --build build

Release 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

macOS

Debug build:

cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Darwin
cmake --build build

Release build:

cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Darwin
cmake --build build

Debug app with vscode:

sudo debugserver localhost:2345 ./build/AgentService

Run with elevated privileges (if needed):

sudo ./build/AgentService

Integration Testing

Linux 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.

Control Plane Mock

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.

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors