https://github.com/Place1/wg-access-server Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} Place1 / wg-access-server Public * Notifications * Star 939 * Fork 99 An all-in-one WireGuard VPN solution with a web ui for connecting devices MIT License 939 stars 99 forks Star Notifications * Code * Issues 46 * Pull requests 13 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 22 branches 29 tags Code Latest commit @Mau04 Mau04 fix screenshot path in README.md (#99) ... 3a4a15f Jan 16, 2021 fix screenshot path in README.md (#99) 3a4a15f Git stats * 209 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows fixed actions Nov 28, 2020 .vscode Postgresql ha (#89) Nov 28, 2020 cmd allowed config file to be optional Jan 9, 2021 deploy v0.4.6 - helm & docs update Jan 9, 2021 docs v0.4.6 - helm & docs update Jan 9, 2021 internal fixed sqlite + mysql storage Dec 14, 2020 pkg/authnz Fix OIDC claims granting admin by default (#86) Nov 28, 2020 proto admins can now delete devices Jul 19, 2020 screenshots updated screenshots Jul 20, 2020 scripts Postgresql ha (#89) Nov 28, 2020 website reduced dashboard update frequency, updated metadata scraping loop to... Nov 29, 2020 .dockerignore initial commit Oct 25, 2019 .gitignore removed dev db.sqlite3 Oct 18, 2020 CHANGELOG.md updated changelog Jan 9, 2021 Dockerfile updated docs Oct 17, 2020 LICENSE Create LICENSE Nov 6, 2019 README.md fix screenshot path in README.md (#99) Jan 17, 2021 TODO.md updated todo Apr 7, 2020 codegen.sh lots of updates to config - also added a data migration tool for movi... Oct 17, 2020 docker-compose.yml fixes #76 Nov 28, 2020 go.mod bug fix: devices are no longer disconnected when metadata is updated Nov 29, 2020 go.sum bug fix: devices are no longer disconnected when metadata is updated Nov 29, 2020 main.go fixed docs Nov 28, 2020 mkdocs.yml basic admin feature, network isolation, docs, helm, k8s, docs (#15) Mar 21, 2020 publish.py v0.3.0-rc1 - helm & docs update Oct 17, 2020 requirements-docs.txt basic admin feature, network isolation, docs, helm, k8s, docs (#15) Mar 21, 2020 View code [ ] wg-access-server Documentation Running with Docker Running on Kubernetes via Helm Running with Docker-Compose Screenshots Changelog Development README.md wg-access-server wg-access-server is a single binary that provides a WireGuard VPN server and device management web ui. We support user authentication, 1 click device registration that works with Mac, Linux, Windows, Ios and Android including QR codes. You can configure different network isolation modes for better control and more. This project aims to deliver a simple VPN solution for developers, homelab enthusiasts and anyone else feeling adventurous. wg-access-server is a functional but young project. Contributions are welcome! Documentation See our documentation website Quick Links: * Configuration Overview * Deploy With Docker * Deploy With Helm * Deploy With Docker-Compose Running with Docker Here's a quick command to run the server to try it out. export WG_ADMIN_PASSWORD="example" export WG_WIREGUARD_PRIVATE_KEY="$(wg genkey)" docker run \ -it \ --rm \ --cap-add NET_ADMIN \ --device /dev/net/tun:/dev/net/tun \ -v wg-access-server-data:/data \ -e "WG_ADMIN_PASSWORD=$WG_ADMIN_PASSWORD" \ -e "WG_WIREGUARD_PRIVATE_KEY=$WG_WIREGUARD_PRIVATE_KEY" \ -p 8000:8000/tcp \ -p 51820:51820/udp \ place1/wg-access-server If you open your browser using your LAN ip address you can even connect your phone to try it out: for example, i'll open my browser at http://192.168.0.XX:8000 using the local LAN IP address. You can connect to the web server on the local machine browser at http://localhost:8000 Running on Kubernetes via Helm wg-access-server ships a Helm chart to make it easy to get started on Kubernetes. Here's a quick start, but you can read more at the Helm Chart Deployment Docs # deploy helm install my-release --repo https://place1.github.io/wg-access-server wg-access-server # cleanup helm delete my-release Running with Docker-Compose Download the the docker-compose.yml file from the repo and run the following command. export WG_ADMIN_PASSWORD="example" export WG_WIREGUARD_PRIVATE_KEY="$(wg genkey)" docker-compose up You can connect to the web server on the local machine browser at http://localhost:8000 If you open your browser to your machine's LAN IP address you'll be able to connect your phone using the UI and QR code! Screenshots Devices Connect iOS Connect MacOS Sign In Changelog See the CHANGELOG.md file Development The software is made up a Golang Server and React App. Here's how I develop locally: 1. run cd website && npm install && npm start to get the frontend running on :3000 2. run sudo go run ./main.go to get the server running on :8000 Here are some notes about the development configuration: * sudo is required because the server uses iptables/ip to configure the VPN networking * you'll access the website on :3000 and it'll proxy API requests to :8000 thanks to webpack * in-memory storage and generated wireguard keys will be used GRPC codegeneration: The client communicates with the server via gRPC-Web. You can edit the API specification in ./proto/*.proto. After changing a service or message definition you'll want to re-generate server and client code using: ./codegen.sh. About An all-in-one WireGuard VPN solution with a web ui for connecting devices Resources Readme License MIT License Releases 29 tags Packages 0 No packages published Contributors 13 * @Place1 * @vincentbitter * @antoinebou13 * @halkeye * @michael-robbins * @nfg * @jamescarlos * @timtorChen * @Mau04 * @nqngo * @hongkongkiwi + 2 contributors Languages * TypeScript 49.2% * Go 45.8% * HTML 2.3% * Python 1.1% * Dockerfile 0.8% * CSS 0.4% * Other 0.4% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.