4

GitHub - webmeshproj/webmesh: A simple, distributed, zero-configuration WireGuar...

 10 months ago
source link: https://github.com/webmeshproj/webmesh
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Webmesh

Webmesh is a simple, distributed, and zero-configuration WireGuard™ mesh solution for Linux, FreeBSD, macOS, and Windows. It allows for easily creating a mesh network between multiple hosts, and provides a simple API for managing the network. It is designed to be easy to use, and to work well with existing network infrastructure. For a more detailed introduction and extended documentation, please see the project website.

This repository contains the core functionality of the Webmesh Project. It implements the Webmesh API in Go.

This project is not yet ready for production use, but I hope to rapidly get there. For now, expect backwards-incompatible changes.

Getting Started

Detailed instructions can be found in the Getting Started guide on the project website. For examples of different topologies and the various features available, see the examples directory.

If you'd like to play with the project on Kubernetes, there is a work-in-progress Operator in the operator repository. It works fine on most clusters, including ephemeral docker-based ones, but is not yet ready for production use.

Building

The Makefile contains several targets for building the project. You can run make help to see all the available targets.

Roadmap

  • GUI Application. In the works over here.
  • Potential SaaS offering for those who don't want to run their own controllers or have a simple off-site backup of the mesh state.

Most other functionality that is provided by other similar projects already exists in the kernel or in other projects. For example, NAT64 and DNS64 have several ways of being configured, but could still be seen as a potential common use-case. There is a question as to how many of those things should be "auto-configured" by a node and how much should be left up to the user.

Contributing

Contributions are welcome and encouraged. Please see the contributing docs for more information.

Community

Join me in the webmesh channel on the Gophers Slack.

Special Thanks

The developers of rqlite for inspiration on managing a distributed database.

The incredible work done by the pion team for WebRTC in Go.

Legal

WireGuard is a registered trademark of Jason A. Donenfeld.

Support


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK