syntropy-agent

module
v0.6.3-beta01 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2022 License: MIT

README

made-with-Go Build Tests GitHub release GitHub license

FAQ

What is Syntropy Platform Agent

Syntropy Agent is an easy-to-use dependency to automatically encrypt and connect endpoints within a network. Full documentation here.

Why Syntropy Agent

Syntropy Agent allows you to easy setup encrypted network using a nice WebUI without getting your hands dirty with Wireguard and network/routes configuration. Also it constantly monitors configured network and chooses best SDN path automatically, taking into account packet loss and latency.

How Syntropy Agent finds best path

It uses DARP.

Where can I can find full documentation

Full, constantly maintained documentation can be found here.

How do I know which Agent version I am running
  • Running plain binary on bare-metal: syntropy-agent -version
  • Running Docker container: docker logs `docker ps | grep syntropynet\/agent | cut -b1-10` | grep started
Why GO

Every programming language has pros and cons, but motivation for GO is:

  • allows quickly and easily refactor code and make big changes fast. That's a huge benefit for projects that are in active development stage;
  • is very effective and uses less resources if compared with scriptable languages;
  • compiles to single binary without dependencies;
  • is quite simple language and in this project we like KISS principle.
Why don't you rewrite it in Rust

It may or may not happen in future. But right now see Why GO and why not Rewrite It In Rust.

I think this project would benefit from "feature X"

Thanks. Propose your idea in issues.

I've found a bug and have a fix for it

Thanks. Create a fork of this project, fix a bug and submit a Merge Request for the review.

I've found a bug and don't have a fix for it

Thanks. Submit a bug report in issues.

I want to compile this software myself

No problem. Do a git clone and run make inside project directory. Run make docker if you want to run this application in docker container. Note - project versioning relies on git tags and if you remove git information or download tar.gz from GitHub, then it will result in 0.0.0 agent version. Thus proper git clone is recommended.

I want additional software in docker container

No problem. The recommended way is to use syntropynet/agent docker image as a base. Create Dockerfile:

FROM  syntropynet/agent:stable
RUN apk update && apk add --no-cache --update brctl vim <other required packages>

and run docker build -t <your desired image name>

Alternative approach would be to checkout source code (also read I want to compile this software myself) and run packages="brctl bird vim <other packages>" make docker

Directories

Path Synopsis
autoping
autoping package implement both: controller.Command and controller.Service
autoping package implement both: controller.Command and controller.Service
mole
mole is tunnel maker package.
mole is tunnel maker package.
mole/ipfilter
Package ipfilter wraps iptables commands and is used to setup Syntropy releated rules
Package ipfilter wraps iptables commands and is used to setup Syntropy releated rules
router
router package is used to setup routes also actively monitores direct and (sdn) wireguard peers and setups best routing path
router package is used to setup routes also actively monitores direct and (sdn) wireguard peers and setups best routing path
swireguard
* swireguard package is wireguard on steroids super-wireguard, smart-wireguar, Syntropy-wireguard This package is a helper for agent to configure (kernel or userspace) wireguard tunnels It also collects peer status, monitores latency, and other releated work *
* swireguard package is wireguard on steroids super-wireguard, smart-wireguar, Syntropy-wireguard This package is a helper for agent to configure (kernel or userspace) wireguard tunnels It also collects peer status, monitores latency, and other releated work *
internal
env
Env packet describes all settings, common to whole application
Env packet describes all settings, common to whole application
pkg
multiping
This file code is based on https://github.com/go-ping/ping
This file code is based on https://github.com/go-ping/ping
netcfg
netcfg is a stateless helper to setup interface attributes IP, route, interface state, etc
netcfg is a stateless helper to setup interface attributes IP, route, interface state, etc
pubip
pubip is self contained package to get host public IP Ip may be get from several providers (STUN and fallback to webpage currently) Also caches IP for some time to reduce requests to servers.
pubip is self contained package to get host public IP Ip may be get from several providers (STUN and fallback to webpage currently) Also caches IP for some time to reduce requests to servers.
pubip/stunip
stunip gets public IP from public STUN servers
stunip gets public IP from public STUN servers
pubip/webip
Gets public IP address from Syntropy web microservice
Gets public IP address from Syntropy web microservice
state
A simple wrapper to have State changes based on atomic variable
A simple wrapper to have State changes based on atomic variable

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL