All Projects → geniousphp → Autowire

geniousphp / Autowire

Licence: mpl-2.0
Automatically configure Wireguard interfaces in distributed system. It supports Consul as backend.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Autowire

Wireguard Manager
Self-hosted Wireguard Installer / Manager for CentOS, Debian, Ubuntu, Arch, Fedora, Redhat, Raspbian
Stars: ✭ 478 (+373.27%)
Mutual labels:  networking, vpn
Zerotierone
A Smart Ethernet Switch for Earth
Stars: ✭ 7,839 (+7661.39%)
Mutual labels:  networking, vpn
Libzt
ZeroTier Sockets - Put a network stack in your app
Stars: ✭ 486 (+381.19%)
Mutual labels:  networking, vpn
Devops Guide
DevOps Guide - Development to Production all configurations with basic notes to debug efficiently.
Stars: ✭ 4,119 (+3978.22%)
Mutual labels:  networking, devops
Hashi Ui
A modern user interface for @hashicorp Consul & Nomad
Stars: ✭ 1,119 (+1007.92%)
Mutual labels:  consul, devops
Dsnet
Simple command to manage a centralised wireguard VPN. Think wg-quick but quicker: key generation + address allocation.
Stars: ✭ 365 (+261.39%)
Mutual labels:  networking, vpn
Netaddr
A network address manipulation library for Python
Stars: ✭ 648 (+541.58%)
Mutual labels:  networking, devops
Drago
A flexible configuration manager for Wireguard networks
Stars: ✭ 204 (+101.98%)
Mutual labels:  networking, vpn
Kong
🦍 The Cloud-Native API Gateway
Stars: ✭ 30,838 (+30432.67%)
Mutual labels:  consul, devops
Kilo
Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)
Stars: ✭ 845 (+736.63%)
Mutual labels:  networking, vpn
Wireguard Docs
📖 Unofficial WireGuard Documentation: Setup, Usage, Configuration, and full example setups for VPNs supporting both servers & roaming clients.
Stars: ✭ 3,201 (+3069.31%)
Mutual labels:  networking, vpn
Addon Wireguard
WireGuard - Home Assistant Community Add-ons
Stars: ✭ 72 (-28.71%)
Mutual labels:  networking, vpn
Twist
A light script for you to setup shadowsocks-libev server with high-speed connections and newest powerful features
Stars: ✭ 229 (+126.73%)
Mutual labels:  networking, vpn
Wesher
wireguard overlay mesh network manager
Stars: ✭ 461 (+356.44%)
Mutual labels:  networking, vpn
Django Netjsonconfig
Configuration manager for embedded devices, implemented as a reusable django-app
Stars: ✭ 213 (+110.89%)
Mutual labels:  networking, vpn
Wireguard Install
WireGuard VPN server installer
Stars: ✭ 616 (+509.9%)
Mutual labels:  networking, vpn
Simple Vpn
A simple VPN allowing mesh-like communication between nodes, over websockets
Stars: ✭ 201 (+99.01%)
Mutual labels:  networking, vpn
Kubefwd
Bulk port forwarding Kubernetes services for local development.
Stars: ✭ 2,713 (+2586.14%)
Mutual labels:  networking, devops
Dockerfiles
50+ DockerHub public images for Docker & Kubernetes - Hadoop, Kafka, ZooKeeper, HBase, Cassandra, Solr, SolrCloud, Presto, Apache Drill, Nifi, Spark, Consul, Riak, TeamCity and DevOps tools built on the major Linux distros: Alpine, CentOS, Debian, Fedora, Ubuntu
Stars: ✭ 847 (+738.61%)
Mutual labels:  consul, devops
Terraform Modules
Reusable Terraform modules
Stars: ✭ 63 (-37.62%)
Mutual labels:  consul, devops

This project is at an early stage development and is not production ready even though we're running it in our production. Run it at your own risk.

Autowire

Run WireGuard VPN with zero configuration.

This project provides a convenient way to automatically configure WireGuard. If you're running a Consul cluster and willing to configure WireGuard as VPN solution, you'll find this project very helpful.

Autowire picks an IP Address from the available pool of addresses, configures the local WireGuard interface as well as the peers and starts it. Autowire leverages distributed locking of Consul to ensure that picked IP address is not used by any other WireGuard peer. This method is described in the leader election guide.

Autowire also takes advantage of Consul blocking queries to watch nodes and KV, this allows Autowire to automatically reconfigure WireGuard Peers when nodes join or leave the Consul cluster.

Autowire uses Consul KV to store WireGuard interface and Peers configurations. This makes WireGuard config distributed and available to all nodes of the cluster.

Installation

Autowire doesn't install WireGuard. It's expected to be installed and available in the $PATH Autowire is meant to be installed on every node of the cluster where WireGuard is need to be configured. It's better to schedule it as system daemon in all cluster nodes.

  1. Download a pre-compiled release from the release page.
  2. Extract the binary.
  3. Run it with ./autowire.

Configuration

Example usage:

  • if-name: Network interface whose IP Address will be used for WireGuard endpoints
  • wg-range: IP Address range. Autowire will pick address within this range
  • wg-config-folder: Folder where WireGuard configurations will be stored
  • wg-port: WireGuard Port

Find out the updated list of configurations in config.go

autowire --if-name enp0s2 --wg-range 192.168.10.0/24 --wg-config-folder /etc/wireguard --wg-port 51820

ToDo

  • Code Refactoring and cleaning and enhance logging
  • Write automated tests
  • Support more backends (etcd, zookeeper,...)
  • Support IPv6
  • And a lot more coming
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].