Convert Figma logo to code with AI

gravitl logonetmaker

Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.

9,373
544
9,373
178

Top Related Projects

18,532

The easiest, most secure way to use WireGuard and 2FA.

A Smart Ethernet Switch for Earth

14,290

A scalable overlay networking tool with a focus on performance, simplicity and security

10,528

Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.

10,528

Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.

A private network system that uses WireGuard under the hood.

Quick Overview

Netmaker is an open-source platform for creating and managing virtual networks. It allows users to build secure, high-performance networks across multiple cloud providers, data centers, and edge locations using WireGuard. Netmaker simplifies the process of setting up and maintaining complex network infrastructures.

Pros

  • Easy deployment and management of WireGuard-based networks
  • Supports multiple cloud providers and on-premises infrastructure
  • Offers a user-friendly web UI for network administration
  • Provides automatic key rotation and peer management

Cons

  • Requires some networking knowledge for optimal configuration
  • Limited documentation for advanced use cases
  • May have a steeper learning curve for users new to WireGuard or virtual networking
  • Potential performance overhead in large-scale deployments

Getting Started

To get started with Netmaker, follow these steps:

  1. Install Docker and Docker Compose on your system.
  2. Clone the Netmaker repository:
    git clone https://github.com/gravitl/netmaker.git
    
  3. Navigate to the cloned directory and start Netmaker:
    cd netmaker
    docker-compose up -d
    
  4. Access the Netmaker UI at http://localhost:8080 and follow the setup wizard to create your first network.
  5. Install Netmaker agents on your nodes:
    curl -sL 'https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/nm-quick.sh' | sudo bash
    
  6. Use the Netmaker UI or API to manage your network, add nodes, and configure settings.

For more detailed instructions and advanced configurations, refer to the official Netmaker documentation.

Competitor Comparisons

18,532

The easiest, most secure way to use WireGuard and 2FA.

Pros of Tailscale

  • More mature and widely adopted project with a larger user base
  • Offers a managed service option for easier setup and maintenance
  • Provides robust client applications for various platforms

Cons of Tailscale

  • Closed-source core components limit customization options
  • Requires a central coordination server, which may introduce privacy concerns
  • Free tier has limitations on number of devices and users

Code Comparison

Tailscale (Go):

func (c *Conn) Close() error {
    c.mu.Lock()
    defer c.mu.Unlock()
    if c.closed {
        return nil
    }
    c.closed = true
    return c.pconn.Close()
}

Netmaker (Go):

func (node *Node) SetLastCheckIn() {
    node.LastCheckIn = time.Now().Unix()
}

Both projects use Go as their primary language. Tailscale's code snippet shows a connection closing method with mutex locking, while Netmaker's example demonstrates a simple node check-in time update. Tailscale's codebase tends to be more complex due to its broader feature set and maturity.

Netmaker focuses on self-hosted, open-source networking solutions, offering more flexibility for customization and control. It may be preferred by users who prioritize complete ownership of their network infrastructure and data. Tailscale, on the other hand, provides a more polished and user-friendly experience, especially for those who don't mind relying on a managed service.

A Smart Ethernet Switch for Earth

Pros of ZeroTierOne

  • More mature and established project with a larger user base
  • Offers a centralized management interface for easier network administration
  • Supports a wider range of platforms and devices

Cons of ZeroTierOne

  • Closed-source core components limit customization options
  • Relies on centralized infrastructure, which may raise privacy concerns
  • Free tier has limitations on network size and features

Code Comparison

ZeroTierOne (C++):

void Node::processVirtualNetworkFrame(const SharedPtr<Network> &network,const MAC &fromMac,const MAC &toMac,unsigned int etherType,const void *data,unsigned int len)
{
    // Implementation details
}

Netmaker (Go):

func (network *Network) ProcessPacket(packet []byte) error {
    // Implementation details
}

Both projects implement packet processing functions, but ZeroTierOne uses C++ with more detailed parameter passing, while Netmaker uses Go with a simpler function signature. ZeroTierOne's implementation suggests a more complex network model, while Netmaker's approach appears more straightforward.

14,290

A scalable overlay networking tool with a focus on performance, simplicity and security

Pros of Nebula

  • Simpler setup and configuration process
  • Lightweight and efficient, with lower resource usage
  • Better suited for smaller networks and individual users

Cons of Nebula

  • Limited centralized management capabilities
  • Fewer advanced features and customization options
  • Less scalable for large enterprise networks

Code Comparison

Nebula configuration example:

pki:
  ca: /etc/nebula/ca.crt
  cert: /etc/nebula/host.crt
  key: /etc/nebula/host.key

static_host_map:
  "10.0.0.1": ["192.168.1.10:4242"]

lighthouse:
  am_lighthouse: false
  interval: 60

listen:
  host: 0.0.0.0
  port: 4242

Netmaker configuration example:

server:
  host: "0.0.0.0"
  port: 8081
  restbackend: "on"
  agentbackend: "on"
  masterkey: "secretkey"

database:
  type: "sqlite"
  conn: "/root/netmaker/netmaker.db"

api:
  port: 8081

Both projects aim to create secure overlay networks, but Nebula focuses on simplicity and efficiency, while Netmaker offers more advanced features and centralized management. Nebula is better suited for smaller networks and individual users, while Netmaker excels in large-scale enterprise deployments. The code examples highlight the difference in configuration complexity, with Nebula having a more straightforward setup compared to Netmaker's more detailed configuration options.

10,528

Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.

Pros of Netbird

  • User-friendly web UI for easier network management
  • Built-in DNS resolution for simplified peer discovery
  • Supports multiple authentication methods (SSO, OIDC)

Cons of Netbird

  • Less flexible networking options compared to Netmaker
  • Limited support for custom network topologies
  • Fewer advanced features for complex enterprise setups

Code Comparison

Netmaker configuration example:

server:
  apiport: "8081"
  masterkey: "secretkey"
  sqlconn: "host=localhost port=5432 user=postgres dbname=netmaker password=password sslmode=disable"

Netbird configuration example:

server:
  grpc_address: ":443"
  http_address: ":80"
  store:
    type: "sqlite"
    sqlite:
      connection_string: "/var/lib/netbird/netbird.db"

Both projects use YAML for configuration, but Netmaker's config focuses on API and database settings, while Netbird's config emphasizes server addresses and storage options. Netmaker's approach may offer more flexibility for advanced setups, while Netbird's configuration appears simpler and more focused on core functionality.

10,528

Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.

Pros of Netbird

  • User-friendly web UI for easier network management
  • Built-in DNS resolution for simplified peer discovery
  • Supports multiple authentication methods (SSO, OIDC)

Cons of Netbird

  • Less flexible networking options compared to Netmaker
  • Limited support for custom network topologies
  • Fewer advanced features for complex enterprise setups

Code Comparison

Netmaker configuration example:

server:
  apiport: "8081"
  masterkey: "secretkey"
  sqlconn: "host=localhost port=5432 user=postgres dbname=netmaker password=password sslmode=disable"

Netbird configuration example:

server:
  grpc_address: ":443"
  http_address: ":80"
  store:
    type: "sqlite"
    sqlite:
      connection_string: "/var/lib/netbird/netbird.db"

Both projects use YAML for configuration, but Netmaker's config focuses on API and database settings, while Netbird's config emphasizes server addresses and storage options. Netmaker's approach may offer more flexibility for advanced setups, while Netbird's configuration appears simpler and more focused on core functionality.

A private network system that uses WireGuard under the hood.

Pros of innernet

  • Written in Rust, offering better performance and memory safety
  • Simpler setup process with fewer dependencies
  • More focused on privacy and security with end-to-end encryption

Cons of innernet

  • Less feature-rich compared to Netmaker's extensive functionality
  • Smaller community and fewer integrations available
  • Limited cross-platform support (primarily Linux-focused)

Code Comparison

innernet (Rust):

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = Config::from_env()?;
    let server = Server::new(config).await?;
    server.run().await
}

Netmaker (Go):

func main() {
    config.InitializeConfig()
    controller.Initialize()
    servercfg := config.GetServerConfig()
    controller.SetupGRPC(servercfg.GRPCConnectPort)
}

Both projects aim to simplify network management, but innernet focuses on simplicity and security, while Netmaker offers more features and flexibility. innernet's Rust implementation may provide better performance, while Netmaker's Go codebase offers wider platform compatibility. The choice between them depends on specific use cases and requirements.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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

WireGuard® automation from homelab to enterprise

CreateManageAutomate
: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 few clicks, visit netmaker.io to create your netmaker server.

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 public 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 by default installs PRO version with 14-day trial, check out these instructions for post trial period https://docs.netmaker.io/install.html#after-trial-period-ends. 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 content that resides under the "pro/" directory of this repository, if that directory exists, is licensed under the license defined in "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.