- Avoid referencing conditions we know are false/true - Avoid using name of imported package as variable - Avoid broken (see list item 1) if else statement in `ipservice.go` by refactoring to switch statement - When assigning a pointer value to a variable along with an error, check that error before referencing that pointer. Thus avoiding de-referencing a nil and causing a panic. *** This item is the most important *** - Standard gofmt package sorting + linting; This includes fixing comment starts for go doc - Explicit non-handling of unhandled errors where appropriate (assigning errs to _ to reduce linter screaming) - Export ErrExpired in `netcache` package so that we can properly reference it using `errors.Is` instead of using `strings.Contains` against an `error.Error()` value |
||
---|---|---|
.github | ||
auth | ||
compose | ||
config | ||
controllers | ||
database | ||
docker | ||
ee | ||
functions | ||
k8s | ||
logger | ||
logic | ||
models | ||
mq | ||
netclient | ||
nginx | ||
scripts | ||
servercfg | ||
serverctl | ||
test | ||
tls | ||
validation | ||
.dockerignore | ||
.fpm | ||
.gitignore | ||
CONTRIBUTING.md | ||
dev.yaml | ||
Dockerfile | ||
Dockerfile-quick | ||
go.mod | ||
go.sum | ||
LICENSE.txt | ||
main.go | ||
main_ee.go | ||
README.md | ||
SECURITY.md | ||
swagger.yaml |
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 |
Get Started in 5 Minutes
(For production-grade installations, visit the Install Docs.)
- Get a cloud VM with Ubuntu 22.04 and a public IP.
- Open ports 443, 80, and 51821-51830/udp on the VM firewall and in cloud security settings.
- (optional) Prepare DNS - Set a wildcard subdomain in your DNS for Netmaker, e.g. *.netmaker.example.com
- Run the script:
sudo wget -qO /root/nm-quick-interactive.sh https://raw.githubusercontent.com/gravitl/netmaker/test_v0.17.0_compose/scripts/nm-quick-interactive.sh && sudo chmod +x /root/nm-quick-interactive.sh && sudo /root/nm-quick-interactive.sh
This script gives you the option to deploy the Community or Enterprise version of Netmaker. If deploying Enterprise, you get a free account with a 50 node limit by default. 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.