MCPcopy Index your code
hub / github.com/gravitl/netmaker

github.com/gravitl/netmaker @v1.6.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.6.0 ↗
2,639 symbols 10,559 edges 369 files 1,163 documented · 44%
README

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



WireGuard® automation from homelab to enterprise

Create Manage Automate
:heavy_check_mark: WireGuard Networks :heavy_check_mark: Admin UI :heavy_check_mark: Linux
:heavy_check_mark: Remote Access Gateways :heavy_check_mark: OAuth :heavy_check_mark: Docker
:heavy_check_mark: Mesh VPNs :heavy_check_mark: Private DNS :heavy_check_mark: Mac
:heavy_check_mark: Site-to-Site :heavy_check_mark: Access Control Lists :heavy_check_mark: Windows

Try Netmaker SaaS

If you're looking for a managed service, you can get started with just a few clicks, visit netmaker.io to create your netmaker server.

Self-Hosted Open Source Quick Start

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

  1. Get a cloud VM with Ubuntu 24.04 and a static public IP.
  2. Allow inbound traffic on port 443,51821 TCP and UDP to the VM firewall in cloud security settings, and for simplicity, allow outbound on All TCP and All UDP.
  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 public IP.
  4. Run the script to setup open source version of Netmaker:

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

To Install Self-Hosted PRO Version - https://docs.netmaker.io/docs/server-installation/netmaker-professional-setup

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 centres, clouds, and edge devices, so you don't have to.

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

  • Netmaker is built to scale from small businesses to enterprises.

  • 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 content that resides under the "pro/" directory of this repository, if that directory exists, is licensed under the license defined in "pro/PRO_LICENSE". All third party components incorporated into the Netmaker Software are licensed under the original license provided by the owner of the applicable component. Content outside of the above mentioned directories or restrictions above is available under the "Apache Version 2.0" license as defined below. All details for the licenses used can be found here: LICENSE.md.

Extension points exported contracts — how you extend this code

SIEMClient (Interface)
(no doc) [6 implementers]
pro/integration/siem.go
Mail (Interface)
(no doc) [5 implementers]
pro/email/email.go
Client (Interface)
(no doc) [3 implementers]
pro/idp/idp.go
Emqx (Interface)
(no doc) [2 implementers]
mq/emqx.go
HookFunc (FuncType)
HookFunc - function type for hooks that can accept optional parameters
models/structs.go
NodeExtensions (Interface)
(no doc) [2 implementers]
orchestrator/extensions/node.go
Option (FuncType)
(no doc)
db/types/options.go
Option (FuncType)
(no doc)
orchestrator/options.go

Core symbols most depended-on inside this repo

String
called by 928
models/tags.go
Error
called by 823
models/error.go
Log
called by 624
logger/logger.go
Get
called by 623
schema/job.go
ReturnErrorResponse
called by 516
logic/errors.go
FormatError
called by 471
logic/errors.go
WithContext
called by 443
db/db.go
FromContext
called by 212
db/db.go

Shape

Function 1,743
Method 526
Struct 298
TypeAlias 50
Interface 18
FuncType 4

Languages

Go100%

Modules by API surface

grpc/flow/flow.pb.go77 symbols
servercfg/serverconf.go74 symbols
logic/acls.go70 symbols
models/structs.go63 symbols
pro/logic/user_mgmt.go48 symbols
pro/controllers/users.go41 symbols
logic/settings.go41 symbols
schema/nodes.go36 symbols
logic/acls_selected_ips_test.go36 symbols
grpc/auditlogs/auditlogs.pb.go34 symbols
pro/logic/jit.go30 symbols
logic/nodes.go30 symbols

Dependencies from manifests, versioned

cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
filippo.io/edwards25519v1.2.0 · 1×
github.com/ClickHouse/ch-gov0.71.0 · 1×
github.com/Masterminds/semver/v3v3.5.0 · 1×
github.com/andybalholm/brotliv1.2.0 · 1×
github.com/biter777/countriesv1.7.5 · 1×
github.com/blang/semverv3.5.1+incompatible · 1×
github.com/boombuler/barcodev1.0.1-0.20190219062 · 1×
github.com/c-robinson/iplibv1.0.8 · 1×

For agents

$ claude mcp add netmaker \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact