• Stars
    star
    398
  • Rank 108,325 (Top 3 %)
  • Language
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated list of WireGuard tools, projects, and resources.

Awesome WireGuard Awesome



A curated list of WireGuard tools, projects, and resources.

WireGuard® - fast, modern, secure VPN tunnel.

You can see the updates on Twitter (coming soon)

Please, help organize these resources so that they are easy to find and understand for newcomers. See how to Contribute for tips!

If you see a link here that is not (any longer) a good fit, you can fix it by submitting a pull request to improve this file. Thank you!


Status Badges

We use emoji to determine repository status.

🟢 active repos (last commit date is less than 3 months)

🟡 stale repos (last commit date is more than 6 months)

🔴 inactive repos (last commit date is more than 1 year)

repos that were superseded

🟦 repos that were code completed

repos that weren't found (broken link)


Contents

Expand Table of Contents

What is WireGuard

WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.

Source: Official WireGuard project website

Official Resources

Where to Start


Projects

Tools

  • wg-quick - Official cross-platform tool to set up a WireGuard interface simply.
  • easy-wg-quick - Creates Wireguard configuration for hub and peers with ease. GitHub last commit 🟢
  • dsnet - Simple command to manage a centralised wireguard VPN. Think wg-quick but quicker: key generation + address allocation. GitHub last commit 🟢
  • wgctrl - Package wgctrl enables control of WireGuard interfaces on multiple platforms. GitHub last commit 🟢
  • wgzero - Zero overhead wireguard setup. GitHub last commit 🟡
  • wg-make - A tool to help set up WireGuard based networks. Currently, it generates configurations for peers according to a single configuration file. GitHub last commit 🔴
  • onetun - A user-space WireGuard port-forwarder -- access ports running on peers in your WireGuard network from any device; without having to install WireGuard locally or without root access (no iptables configs). GitHub last commit 🟢
  • wireproxy - A userspace WireGuard client that connects to a WireGuard peer, and exposes a SOCKS5 proxy. (Use cases: Setting up WG as a VPN requires special privilege. It tells the kernel to create a special network interface to handle WG connection. This can get messy if you do not have any special permission (i.e., root), if you do not have proper firewall configuration, or if you want to connect to multiple WG peers at once. wireproxy static tunneling is basically openssh -D, which supports SOCKS5 protocols.) GitHub last commit 🟢
  • wireguard-manager-and-api - A tool for rotating the keys on peers to increase their privacy by removing their IP address from memory. GitHub last commit 🟡
  • sandialabs/wiretap - Wiretap is a transparent, VPN-like proxy server that tunnels traffic via WireGuard and requires no special privileges to run. GitHub last commit 🟢

Mesh Network

  • Tailscale - Tailscale is a WireGuard-based app that makes secure, private networks easy for teams of any scale.
  • Headscale - An open source implementation of the Tailscale control server. GitHub last commit 🟢
  • innernet - A private network system that uses WireGuard under the hood. It is similar in its goals to Slack's nebula or Tailscale. GitHub last commit 🟢
  • Kilo - Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg). GitHub last commit 🟢
  • NetBird - (Previously Wiretrustee) NetBird is an open-source VPN management platform built on top of WireGuard® making it easy to create secure private networks for your organization or home. Technically, it creates an overlay network using ICE protocol (WebRTC) to negotiate P2P connections and WG (kernel module, when possible) to create a fast and encrypted tunnel between machines, falling back to relay (TURN) in case a P2P connection isn't possible. Pretty much just a client app is needed, the rest is done by the software. Their vision is to go beyond traditional VPN by bringing advanced NetSec (Zero Trust security model) like OpenZiti. GitHub last commit 🟢
  • wesher - wesher creates and manages an encrypted mesh overlay network across a group of nodes. GitHub last commit 🟢
  • gravitl/netmaker - Netmaker is a VPN platform that automates WireGuard from homelab to enterprise. The key distinctions in their solutions are: fast because it can use kernel WireGuard (instead of userspace WireGuard, which is slower), tailored towards the Cloud and Kubernetes, and fully self-hostable. GitHub last commit 🟢
  • HarvsG/WireGuardMeshes - Compare WireGuard mesh tools. GitHub last commit 🟢

Deployment

  • WireHole - A combination of WireGuard, Pi-hole, and Unbound in a docker-compose project with the intent of enabling users to quickly and easily create a personally managed full or split-tunnel WireGuard VPN with ad blocking capabilities thanks to Pi-hole, and DNS caching, additional privacy options, and upstream providers via Unbound. GitHub last commit 🟢
  • Autowire - Automatically configure Wireguard interfaces in distributed system. It supports Consul as backend. GitHub last commit 🟡
  • Cloudblock - Deploys WireGuard VPN, Pi-Hole DNS Ad-blocking, and DNS over HTTPS in a cloud provider - or locally - using Terraform and Ansible. GitHub last commit 🟢
  • ansible-role-wireguard - Ansible role for installing WireGuard VPN. Supports Ubuntu, Debian, Archlinx, Fedora and CentOS. GitHub last commit 🟢
  • terraform-aws-wireguard - Terraform module to deploy WireGuard on AWS. GitHub last commit 🔴
  • Firezone - An open-source WireGuard-based VPN server alternative to OpenVPN Access Server. You can self-host this. GitHub last commit 🟢
  • Algo VPN - Set up a DIY/personal VPN in the cloud. It is a set of Ansible scripts that simplify the setup of a personal WireGuard and IPsec VPN, open-sourced by Trail of Bits. GitHub last commit 🟢
  • Place1/wg-access-server - An all-in-one WireGuard VPN solution with a Web UI for connecting devices. This project aims to deliver a simple VPN solution for developers, homelab enthusiasts and anyone else feeling adventurous. GitHub last commit 🔴
  • WirtBot - Think of it as a component that will allow you to extend your LAN over the Internet. WirtBot simplifies the process of creating your own private network into 3 steps. No registration, no accounts - Just a network that belongs to you. And it will always be completely free (except for the server/VPS you run it on). GitHub last commit 🟢
  • seashell/drago - A self-hosted and flexible configuration manager designed to make it simple to configure secure network overlays spanning heterogeneous nodes via a Web UI. GitHub last commit 🔴

Container

  • linuxserver/docker-wireguard - A WireGuard container image brought to you by LinuxServer.io. Not all image authors are as great as LinuxServer.io team. GitHub last commit 🟢
  • cmulk/wireguard-docker - A Docker image and configuration for a simple personal VPN, used for the goal of security over insecure (public) networks, not necessarily for Internet anonymity. There are currently 3 flavors. GitHub last commit 🟡
  • masipcat/wireguard-go-docker - WireGuard docker image. GitHub last commit 🟡

Monitoring

Security

Protocol

Encryption

Runtime

User Interface

Terminal / CLI

Web

  • vx3r/wg-gen-web - Simple Web based configuration generator for WireGuard. GitHub last commit 🟢
  • Subspace - A simple WireGuard VPN server GUI. GitHub last commit 🟢
  • WireGuard UI - WireGuard Web UI for self-serve client configurations, with optional auth. GitHub last commit 🟢
  • WeeJeWel/wg-easy - The easiest way to run WireGuard VPN + Web-based Admin UI. GitHub last commit 🟢

Desktop

Dashboards

  • Wireguard Dashboard - A simple and easy to use WireGuard dashboard written in Python and Flask. GitHub last commit 🟡

Development

Development Environment

Testing

Boilerplate

Homeserver

Services based on WireGuard

Cloud Service

  • Warp - A free WireGuard VPN from Cloudflare that's trying to fix mobile Internet performance and security.
  • wgcf - Cross-platform, unofficial CLI for Cloudflare Warp. GitHub last commit 🟢

VPN

  • Mullvad GitHub last commit 🟢
  • MozWire - An unofficial configuration manager giving Linux, macOS users (among others), access to Mozilla VPN. GitHub last commit 🟢
  • LNVPN - A wireguard VPN provider with Ligthning only payments, pay as you use. GitHub last commit 🟢

Extensions / Plugins

  • wgsd - A CoreDNS plugin that serves WireGuard peer information via DNS-SD (RFC6763) semantics. This enables use cases such as mesh networking, NAT-to-NAT connectivity, and dynamic discovery of WireGuard endpoint. GitHub last commit 🟢

Optimization

  • nr-wg-mtu-finder - A Python project to help you find the optimal MTU values for WG server and WG peer that maximizes the upload or download speeds between a peer and server. GitHub last commit 🟢

Language Bindings

Alternative Implementations

Beside Jason Donenfeld's implementation of the WireGuard protocol, written in C and Go, other implementations include:

Useful Resources

Blog Posts

Articles

Demos and Examples

Good Tips

Tutorials

Videos

Books

Podcasts and Interviews

Presentations

Newsletters

Uncategorized

Communities and Meetups

English

Chinese

Contribute

Contributions welcome! If you would like to contribute, please read the contribution guidelines first. It contains a lot of tips and guidelines to help keep things organized.

Future: Implement GitHub Actions to monitor and verify all the links with a simple Node.js script

Copyright

"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

License

Expand License

This repository contains a variety of content; some developed by Cedric Chee, and some from third-parties. The third-party content is distributed under the license provided by those parties.

I am providing code and resources in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code and resources is from me and not my employer.

The content developed by Cedric Chee is distributed under the following license:

Text

The text content is released under the CC-BY-NC-ND license. Read more at Creative Commons.

Code

The code in this repository is released under the MIT license.

More Repositories

1

awesome-transformer-nlp

A curated list of NLP resources focused on Transformer networks, attention mechanism, GPT, BERT, ChatGPT, LLMs, and transfer learning.
904
star
2

awesome-ml-model-compression

Awesome machine learning model compression research papers, tools, and learning material.
328
star
3

chatgpt-universe

ChatGPT Universe is fleeting notes on ChatGPT, GPT, and large language models (LLMs)
288
star
4

capsule-net-pytorch

[NO MAINTENANCE INTENDED] A PyTorch implementation of CapsNet architecture in the NIPS 2017 paper "Dynamic Routing Between Capsules".
Python
166
star
5

knowledge

Everything I know. My knowledge wiki. My notes (mostly for fast.ai). Document everything. Brain dump.
123
star
6

pytorch-android

[EXPERIMENTAL] Demo of using PyTorch 1.0 inside an Android app. Test with your own deep neural network such as ResNet18/SqueezeNet/MobileNet v2 and a phone camera.
C++
103
star
7

data-science-notebooks

Data science Python notebooks—a collection of Jupyter notebooks on machine learning, deep learning, statistical inference, data analysis and visualization.
Jupyter Notebook
87
star
8

react-typescript-jest-enzyme-testing

Testing React.JS + TypeScript component with Jest and Enzyme. A simple example for reference.
TypeScript
52
star
9

saas-starter

Everything you need to get your next Unicorn-For-X startup off the ground.
JavaScript
43
star
10

realtime-detectron

Real-time Detectron using webcam.
Python
41
star
11

transformers-llama

LLaMA implementation for HuggingFace Transformers
Python
25
star
12

YDKGo

You Don't Know Go Yet book.
Go
24
star
13

rnnoise-nodejs

Node.js bindings to Xiph's RNNoise denoising C library
Rust
17
star
14

e-mart

Open source full stack React and Next.js online mart complete with shopping cart and real credit checkout.
JavaScript
16
star
15

pytorch-serving

[UNMAINTAINED] A starter pack for creating a lightweight responsive web app for Fast.AI PyTorch models.
Python
16
star
16

ssd-yolo-retinanet

Multi-class object detection pipeline—Single Shot MultiBox Detector (SSD) + YOLOv3 (real-time) + focal loss (RetinaNet) + Pascal VOC 2007 dataset
Python
16
star
17

pytorch-lite

[Deprecated] PyTorch Lite is a lightweight machine learning framework for on-device mobile inference.
Jupyter Notebook
14
star
18

tch-js

A JavaScript and TypeScript port of PyTorch C++ library (libtorch) - Node.js N-API bindings for libtorch.
C++
9
star
19

pytorch-mobile-kit

PyTorch Mobile starter kit.
Java
8
star
20

experiments

A collection of little snippets of programs I write when I test out ideas. A code "playground".
Go
8
star
21

wasserstein-gan

PyTorch implementation of Wasserstein GAN paper
Jupyter Notebook
6
star
22

neural-network-in-13-lines

A neural network in 13 lines of Python.
Python
6
star
23

openintercom

An open source modern Intercom alternative.
JavaScript
5
star
24

react-18-beta

React 18 Beta (Suspense, concurrent rendering, HTTP streaming, Server Components) + Next.js 12.0.4 demo & benchmark (performance & UX)
JavaScript
5
star
25

painless-pg-node

Painless PostgreSQL Node.js backend with Objection + Knex + Express
JavaScript
4
star
26

fastai-course-v3

My notebooks for the 3rd edition of course.fast.ai - coming in 2019
Jupyter Notebook
4
star
27

kaggle-facial-detection

Facial keypoints detection challenge tutorial and solution for Singapore Kaggle ML Challenge meetup.
Jupyter Notebook
3
star
28

neocargo

neoCargo microservices in Go with PostgreSQL, MongoDB, Terraform, Google Kubernetes Engine, and CircleCI
Go
3
star
29

nodejs-in-depth

Master and understand deeper Node.js fundamentals and internals
JavaScript
3
star
30

kafka-eventsourcing-restapi

REST API service using Apache Kafka for event sourcing
Go
2
star
31

hou

Hou 🐒 programming language interpreter and compiler
Go
2
star
32

dawnbench-analysis

DAWNBench analysis of CIFAR-10 time-to-accuracy.
Jupyter Notebook
2
star
33

learn-ts-handbook

Learn TypeScript in 2021 by reading the Handbook.
TypeScript
2
star
34

fastai-dl2-2017

My notebooks for fast.ai cutting edge deep learning for coders part 2 2017 course.
Jupyter Notebook
2
star
35

data-science-hacks

A collection of notebooks for engineer practicing machine learning / deep learning through hacking project-based learning.
Jupyter Notebook
2
star
36

feed

A feed of things I'm reading and will read. It's sort of like bookmarks or favorites.
2
star
37

myapp

A ruby on rails app experiments
Ruby
2
star
38

snippetbox

A web app to paste and share snippets of text
Go
2
star
39

min-torrent

Yet another minimalistic torrent client
Go
2
star
40

advent-of-code-2022

Advent of Code (AoC) 2022 in Rust
Rust
2
star
41

bitcask

My key/value store (embedded database) solution for PingCAP training courses
Rust
1
star
42

migraine_diary

My personal migraine log.
Ruby
1
star
43

personal-website

The personal website of Cedric Chee
HTML
1
star
44

postgresql-consul-demo

A minimal demo app showing PostgreSQL HA cluster managed by Patroni and Consul in Docker
Python
1
star
45

squidgame

[WIP] Red Light, Green Light game inspired by Squid Game implemented in Rust, TypeScript & WebSocket. Play in your browser, multiplayer (at least 2 players), and tiny.
Rust
1
star
46

rails323_testing

An app to learn about what's new in Rails 3.2.3 compared to 3.0.10.
Ruby
1
star
47

shuttlecock

Badminton news & results
1
star
48

first_app

Testing new workstation for rails+git installation
Ruby
1
star
49

todos

Super simple todos app. Develop using Rails 3 to learn the changes to Rails 2.3.8.
Ruby
1
star
50

tensorflow-community-builds

TensorFlow prebuilt binary (Python wheels) from source by the community.
1
star
51

rl-algorithms

A collection of Reinforcement Learning algorithms.
Jupyter Notebook
1
star
52

amethyst

My digital garden
SCSS
1
star
53

skel

Skel is an idiomatic and flexible code structure for REST API project - practical code patterns and best practices for building (developing, managing, and deploying) APIs in Go.
Go
1
star
54

dockerfile-fastai

Dockerfile for building NVIDIA CUDA image for PyTorch 1.0 and fastai 1.0 deep learning
Dockerfile
1
star
55

soshiok

A full stack restaurant app
JavaScript
1
star