{"id":13588756,"url":"https://github.com/Place1/wg-access-server","last_synced_at":"2025-04-08T06:32:42.632Z","repository":{"id":37752538,"uuid":"217543900","full_name":"Place1/wg-access-server","owner":"Place1","description":"An all-in-one WireGuard VPN solution with a web ui for connecting devices","archived":false,"fork":false,"pushed_at":"2024-08-20T03:17:24.000Z","size":3782,"stargazers_count":1802,"open_issues_count":77,"forks_count":226,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-04-03T11:07:01.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Place1.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-25T13:48:50.000Z","updated_at":"2025-03-31T11:54:53.000Z","dependencies_parsed_at":"2024-06-18T19:44:58.989Z","dependency_job_id":"c75452bf-9ee9-49f9-b45d-d0b7b5d0cb88","html_url":"https://github.com/Place1/wg-access-server","commit_stats":{"total_commits":198,"total_committers":14,"mean_commits":"14.142857142857142","dds":"0.16161616161616166","last_synced_commit":"3a4a15f9c41015990efaa64b5466524a816b6727"},"previous_names":["place1/wireguard-access-server"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Place1%2Fwg-access-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Place1%2Fwg-access-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Place1%2Fwg-access-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Place1%2Fwg-access-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Place1","download_url":"https://codeload.github.com/Place1/wg-access-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247792159,"owners_count":20996878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:06:54.346Z","updated_at":"2025-04-08T06:32:37.623Z","avatar_url":"https://github.com/Place1.png","language":"TypeScript","funding_links":[],"categories":["Proxy and VPN","TypeScript","Projects","TypeScript (64)","others"],"sub_categories":["Python","Deployment"],"readme":"# wg-access-server\n\nwg-access-server is a single binary that provides a WireGuard\nVPN server and device management web ui. We support user authentication,\n_1 click_ device registration that works with Mac, Linux, Windows, Ios and Android\nincluding QR codes. You can configure different network isolation modes for\nbetter control and more.\n\nThis project aims to deliver a simple VPN solution for developers,\nhomelab enthusiasts and anyone else feeling adventurous.\n\nwg-access-server is a functional but young project. Contributions are welcome!\n\n## Documentation\n\n[See our documentation website](https://place1.github.io/wg-access-server/)\n\nQuick Links:\n\n- [Configuration Overview](https://place1.github.io/wg-access-server/2-configuration/)\n- [Deploy With Docker](https://place1.github.io/wg-access-server/deployment/1-docker/)\n- [Deploy With Helm](https://place1.github.io/wg-access-server/deployment/2-docker-compose/)\n- [Deploy With Docker-Compose](https://place1.github.io/wg-access-server/deployment/2-docker-compose/)\n\n## Running with Docker\n\nHere's a quick command to run the server to try it out.\n\n```bash\nexport WG_ADMIN_PASSWORD=\"example\"\nexport WG_WIREGUARD_PRIVATE_KEY=\"$(wg genkey)\"\n\ndocker run \\\n  -it \\\n  --rm \\\n  --cap-add NET_ADMIN \\\n  --device /dev/net/tun:/dev/net/tun \\\n  -v wg-access-server-data:/data \\\n  -e \"WG_ADMIN_PASSWORD=$WG_ADMIN_PASSWORD\" \\\n  -e \"WG_WIREGUARD_PRIVATE_KEY=$WG_WIREGUARD_PRIVATE_KEY\" \\\n  -p 8000:8000/tcp \\\n  -p 51820:51820/udp \\\n  place1/wg-access-server\n```\n\nIf you open your browser using your LAN ip address you can even connect your\nphone to try it out: for example, i'll open my browser at http://192.168.0.XX:8000\nusing the local LAN IP address.\n\nYou can connect to the web server on the local machine browser at http://localhost:8000\n\n## Running on Kubernetes via Helm\n\nwg-access-server ships a Helm chart to make it easy to get started on\nKubernetes.\n\nHere's a quick start, but you can read more at the [Helm Chart Deployment Docs](https://place1.github.io/wg-access-server/deployment/3-kubernetes/)\n\n```bash\n# deploy\nhelm install my-release --repo https://place1.github.io/wg-access-server wg-access-server\n\n# cleanup\nhelm delete my-release\n```\n\n## Running with Docker-Compose\n\nDownload the the docker-compose.yml file from the repo and run the following command.\n\n```bash\nexport WG_ADMIN_PASSWORD=\"example\"\nexport WG_WIREGUARD_PRIVATE_KEY=\"$(wg genkey)\"\n\ndocker-compose up\n```\n\nYou can connect to the web server on the local machine browser at http://localhost:8000\n\nIf you open your browser to your machine's LAN IP address you'll be able\nto connect your phone using the UI and QR code!\n\n## Screenshots\n\n![Devices](https://github.com/Place1/wg-access-server/raw/master/screenshots/devices.png)\n\n![Connect iOS](https://github.com/Place1/wg-access-server/raw/master/screenshots/connect-mobile.png)\n\n![Connect MacOS](https://github.com/Place1/wg-access-server/raw/master/screenshots/connect-desktop.png)\n\n![Sign In](https://github.com/Place1/wg-access-server/raw/master/screenshots/signin.png)\n\n## Changelog\n\nSee the [CHANGELOG.md](https://github.com/Place1/wg-access-server/blob/master/CHANGELOG.md) file\n\n## Development\n\nThe software is made up a Golang Server and React App.\n\nHere's how I develop locally:\n\n1. run `cd website \u0026\u0026 npm install \u0026\u0026 npm start` to get the frontend running on `:3000`\n2. run `sudo go run ./main.go` to get the server running on `:8000`\n\nHere are some notes about the development configuration:\n\n- sudo is required because the server uses iptables/ip to configure the VPN networking\n- you'll access the website on `:3000` and it'll proxy API requests to `:8000` thanks to webpack\n- in-memory storage and generated wireguard keys will be used\n\nGRPC codegeneration:\n\nThe client communicates with the server via gRPC-Web. You can edit the API specification\nin `./proto/*.proto`.\n\nAfter changing a service or message definition you'll want to re-generate server and client\ncode using: `./codegen.sh`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPlace1%2Fwg-access-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPlace1%2Fwg-access-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPlace1%2Fwg-access-server/lists"}