Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
Find a file
Abhishek K 166e619f82
NET-602: delete ext clients when ingress node is removed from network (#2554)
* add superadmin role, apis to create superadmin user

* apis to attach and remove user from remote access gateways

* add api to list user's remote client has gateway clients

* remove code related user groups

* remove networks and groups from user model

* refactor user CRUD operations

* fix network permission test

* add superadmin to authorize func

* remove user network and groups from cli

* api to transfer superadmin role

* add api to list users on a ingress gw

* restrict user access to resources on server

* deny request from remote access client if extclient is already created

* fix user tests

* fix static checks

* fix static checks

* add limits to extclient create handler

* set username to superadmin on if masterkey is used

* allow creation of extclients using masterkey

* add migration func to assign superadmin role for existing admin user

* check for superadmin on migration if users are present

* allowe masterkey to extcleint apis

* check ownerid

* format error, on jwt token verification failure return unauthorized rather than forbidden

* user update fix

* move user remote functionality to ee

* fix update user api

* security patch

* initalise ee user handlers

* allow user to use master key to update any user

* use slog

* fix auth user test

* table headers

* remove user role, it's covered in middleware

* setuser defaults fix

* if ingress node is deleted, cleanup gateway clients

* delete ext clients in a go routine

* remove response writer from go routine
2023-09-05 20:37:11 +05:30
.github [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
auth NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
cli NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
compose [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
config [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
controllers NET-602: delete ext clients when ingress node is removed from network (#2554) 2023-09-05 20:37:11 +05:30
database moved data structure to db 2023-03-03 14:23:51 -05:00
docker [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
functions NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
k8s update develop to 0.20.7 (#2522) 2023-08-18 11:55:12 +05:30
logger ee license check 2023-04-12 10:45:06 -04:00
logic NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
migrate NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
models NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
mq [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
netclient/ncutils random string 2023-05-02 13:28:00 -04:00
nginx remove references to grpc/comms net 2022-04-21 15:53:44 -04:00
pro NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
scripts [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
servercfg NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
serverctl NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
test remove agentbackend 2023-02-20 02:22:48 -07:00
tls initial changes to make cert <-> broker comms work 2022-07-05 15:04:45 -04:00
validation merge conflicts resolved 2022-09-26 17:47:20 +05:30
.dockerignore NET-163: Return 403 instead of 401 (#2326) 2023-05-25 09:40:39 -04:00
.fpm add rpms 2022-03-09 15:28:39 -05:00
.gitignore make goreleaser work on publish release 2023-02-15 15:29:42 -05:00
.goreleaser.prerelease.yaml update release asset naming pattern to match netclient 2023-04-14 08:33:53 -04:00
.goreleaser.update.yaml cleanup 2023-02-25 08:03:16 -05:00
.goreleaser.yaml update release asset naming pattern to match netclient 2023-04-14 08:33:53 -04:00
CONTRIBUTING.md Create CONTRIBUTING.md 2022-01-20 08:19:23 -05:00
dev.yaml remove grpc parameters 2023-02-20 09:09:26 -07:00
Dockerfile Bump alpine from 3.18.2 to 3.18.3 (#2500) 2023-08-08 23:15:37 +05:30
Dockerfile-quick Bump alpine from 3.18.2 to 3.18.3 (#2500) 2023-08-08 23:15:37 +05:30
go.mod Bump github.com/c-robinson/iplib from 1.0.6 to 1.0.7 (#2546) 2023-08-29 17:01:49 +05:30
go.sum Bump github.com/c-robinson/iplib from 1.0.6 to 1.0.7 (#2546) 2023-08-29 17:01:49 +05:30
LICENSE.txt updating docs 2021-04-14 13:16:56 -04:00
main.go NET-551: User Mgmt Re-Design (#2547) 2023-09-01 14:27:08 +05:30
main_ee.go [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
README.md update develop to 0.20.7 (#2522) 2023-08-18 11:55:12 +05:30
release.md [NET-546] Move ee code to ee package, unify ee status and terminology (#2538) 2023-09-01 07:42:05 +05:30
SECURITY.md Update SECURITY.md 2022-11-02 09:10:50 -04:00
swagger.yaml update develop to 0.20.7 (#2522) 2023-08-18 11:55:12 +05:30

ROSS Index - Fastest Growing Open-Source Startups | Runa Capital Y-Combinator

WireGuard® automation from homelab to enterprise

Create Manage Automate
✔️ WireGuard Networks ✔️ Admin UI ✔️ Linux
✔️ Remote Access Gateways ✔️ OAuth ✔️ FreeBSD
✔️ Mesh VPNs ✔️ Private DNS ✔️ Mac
✔️ Site-to-Site ✔️ Access Control Lists ✔️ Windows

Try Online

If you're just looking to use Netmaker, you can create an account for free at netmaker.io.

Self-Hosted Quick Start

These are the instructions for deploying a Netmaker server on your own cloud VM as quickly as possible. For more detailed instructions, visit the Install Docs.

  1. Get a cloud VM with Ubuntu 22.04 and a public IP.
  2. Open ports 443, 80, 3479, 8089 and 51821-51830/udp on the VM firewall and in cloud security settings.
  3. (recommended) Prepare DNS - Set a wildcard subdomain in your DNS settings for Netmaker, e.g. *.netmaker.example.com, which points to your VM's pubic IP.
  4. Run the script:

sudo wget -qO /root/nm-quick.sh https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/nm-quick.sh && sudo chmod +x /root/nm-quick.sh && sudo /root/nm-quick.sh

This script gives you the option to deploy the Community or Enterprise version of Netmaker. It also gives you the option to use your own domain (recommended) or an auto-generated domain.

After installing Netmaker, check out the Walkthrough and Getting Started guides to learn more about configuring networks. Or, check out some of our other Tutorials for different use cases, including Kubernetes.

Get Support

Why Netmaker + WireGuard?

  • Netmaker automates virtual networks between data centers, clouds, and edge devices, so you don't have to.

  • Kernel WireGuard offers maximum speed, performance, and security.

  • Netmaker is built to scale from the small business to the enterprise.

  • Netmaker with WireGuard can be highly customized for peer-to-peer, site-to-site, Kubernetes, and more.

Community Projects

Disclaimer

WireGuard is a registered trademark of Jason A. Donenfeld.

License

Netmaker's source code and all artifacts in this repository are freely available. All versions are published under the Server Side Public License (SSPL), version 1, which can be found here: LICENSE.txt.