# README
Plexus
Plexus provides tools to easily manage private wireguard networks.
Overview
This repository provides the code for plexus-server and plexus-agent. Plexus-server serves the web ui and controls communications with plexus agents for peer and network updates. Plexus-agent runs as a daemon to communicate with the plexus server for peer and network updates. It also provided a cli to register and leave servers and to join/leave networks.
Quick Start
Server
- Requirements
- linux VPS with minimum 1CPU/1GB memory (eg. $6 DigitalOcean droplet)
- DNS record pointing to the IP of your server
- systemd
- tcp ports 443 and 4222 -- for server
- udp ports 51820 -- for agent: additional ports are needed for each network
- Download install script
- make script executable (chmod +x install-server.sh)
- run script (as root)
- script will ask for
- FQDN of server
- email to use with Let's Encrypt
- name/password for web ui admin user
- script will install and start plexus-server and plexus-agent daemons
- script will ask for
- log into server web ui
- create registration key via web ui
- create network via web ui
- register agent(s) with server vi agent cli
- join peer to network : can use server web ui or agent cli
Agent
- Requirements
- Linux host with systemd
- Download install script
- make script executable (chmod +x install-server.sh)
- run script (as root)
- script will install and start plexus-agent daemon
- copy registration key from server
- register with server and join network
plexus-agent register <registraton key>
plexus-agent join <network name>
Tech Stack
- Language: Go
- HTTP Framework: Gin
- FrontEnd Framework: html/htmx
- CSS Library: w3schools
- Database(key/value): bbolt
- Pub/Sub Broker: nats.io
- Automatic SSL Certificates: certmagic
Docs
Installation
Configuration
Security
Server
Agent
Legal
WireGuard and the WireGuard logo are registered trademarks of Jason A. Donenfeld.
Support
Please use Issues or Discussions for support requests
# Packages
No description provided by the author
# Functions
No description provided by the author
Get returns an existing wireguard interface as a plexus.Wireguard.
GetDevice returns a wireguard device as wgtype.Device.
New returns a new wireguard interface.
No description provided by the author
# Constants
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
nats topics.
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author