{"id":15162138,"url":"https://github.com/embarkstudios/wg-ui","last_synced_at":"2025-09-30T15:31:29.631Z","repository":{"id":38840410,"uuid":"184240717","full_name":"EmbarkStudios/wg-ui","owner":"EmbarkStudios","description":"WireGuard Web UI for self-serve client configurations, with optional auth.","archived":true,"fork":false,"pushed_at":"2023-04-12T08:45:42.000Z","size":1625,"stargazers_count":1497,"open_issues_count":27,"forks_count":130,"subscribers_count":32,"default_branch":"main","last_synced_at":"2024-10-31T06:34:54.644Z","etag":null,"topics":["go","svelte","ui","vpn","web","web-ui","wg-ui","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EmbarkStudios.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-30T10:17:09.000Z","updated_at":"2024-10-26T09:23:11.000Z","dependencies_parsed_at":"2024-06-18T19:50:58.302Z","dependency_job_id":"ea66e588-6d00-4055-9018-b1ba834b55d4","html_url":"https://github.com/EmbarkStudios/wg-ui","commit_stats":{"total_commits":196,"total_committers":28,"mean_commits":7.0,"dds":0.7704081632653061,"last_synced_commit":"12fba36a558927f7c5149927bee969d995408d74"},"previous_names":["embarkstudios/wireguard-ui"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Fwg-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Fwg-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Fwg-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Fwg-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmbarkStudios","download_url":"https://codeload.github.com/EmbarkStudios/wg-ui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234747836,"owners_count":18880513,"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":["go","svelte","ui","vpn","web","web-ui","wg-ui","wireguard"],"created_at":"2024-09-27T01:07:41.480Z","updated_at":"2025-09-30T15:31:29.167Z","avatar_url":"https://github.com/EmbarkStudios.png","language":"Go","readme":"# WG UI\n![Build Status](https://github.com/EmbarkStudios/wg-ui/actions/workflows/push_master.yaml/badge.svg)\n[![Embark](https://img.shields.io/badge/embark-open%20source-blueviolet.svg)](https://github.com/EmbarkStudios)\n[![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)\n\nA basic, self-contained management service for [WireGuard](https://wireguard.com) with a self-serve web UI.  \nCurrent stable release: [v1.3.0](https://github.com/EmbarkStudios/wg-ui/releases/tag/v1.3.0)  \n\n## Features\n\n * Self-serve and web based\n * QR-Code for convenient mobile client configuration\n * Optional multi-user support behind an authenticating proxy\n * Simple authentication support\n * Zero external dependencies - just a single binary using the wireguard kernel module\n * Binary and container deployment\n\n![Screenshot](wireguard-ui.png)\n\n## Running\n\nThe easiest way to run wg-ui is using the container image. To test it, run:\n\n```docker run --rm -it --privileged --entrypoint \"/wireguard-ui\" -v /tmp/wireguard-ui:/data -p 8080:8080 embarkstudios/wireguard-ui:latest --data-dir=/data --log-level=debug```\n\nWhen running in production, we recommend using the latest release as opposed to `latest`.\n\nImportant to know is that you need to have WireGuard installed on the machine in order for this to work, as this is 'just' a UI to manage WireGuard configs. \n\n### Configuration\n\nYou can configure wg-ui using commandline flags or environment variables.\nTo see all available flags run:\n\n```\ndocker run --rm -it embarkstudios/wireguard-ui:latest -h\n./wireguard-ui -h\n```\n\nYou can alternatively specify each flag through an environment variable of the form `WIREGUARD_UI_\u003cFLAG_NAME\u003e`, where `\u003cFLAG_NAME\u003e` is replaced with the flag name transformed to `CONSTANT_CASE`, e.g.\n\n```docker run --rm -it embarkstudios/wireguard-ui:latest --log-level=debug```\n\nand\n\n```docker run --rm -it -e WIREGUARD_UI_LOG_LEVEL=debug embarkstudios/wireguard-ui:latest```\n\nare the same.\n\n### Authentication\nYou can configure basic authentication using the flags/environment variables `--auth-basic-user=\u003cuser\u003e` and `--auth-basic-pass=\u003cbcrypt hash\u003e` The password is\na bcrypt hash that you can generate yourself using the docker container:\n```\n$ docker run -it embarkstudios/wireguard-ui:latest passwd mySecretPass\nINFO[0001] Password Hash: $2a$14$D2jsPnpJixC0U0lyaGUd0OatV7QGzQ08yKV.gsmITVZgNevfZXj36\n```\n\n## Docker images\n\nThere are two ways to run wg-ui today, you can run it with kernel module installed on your host which is the best way to do it if you want performance.  \n\n```\ndocker pull embarkstudios/wireguard-ui:latest\n```\n\nIf you however do not have the possibility or interest in having kernel module loaded on your host, there is now a solution for that using a docker image based on wireguard-go. Keep in mind that this runs in userspace and not in kernel module.  \n\n```\ndocker pull embarkstudios/wireguard-ui:userspace\n```\n\nBoth images are built for `linux/amd64`, `linux/arm64` and `linux/arm/v7`. If you would need it for any other platform you can build wg-ui binaries with help from the documentation.  \n\n\n## Install without Docker\n\nYou need to have WireGuard installed on the machine running `wg-ui`.\n\nUnless you use the userspace version with docker you're required to have WireGuard installed on your host machine.  \n\nA few installation guides:  \n[Ubuntu 20.04 LTS](https://www.cyberciti.biz/faq/ubuntu-20-04-set-up-wireguard-vpn-server/)  \n[CentOS 8](https://www.cyberciti.biz/faq/centos-8-set-up-wireguard-vpn-server/)  \n[Debian 10](https://www.cyberciti.biz/faq/debian-10-set-up-wireguard-vpn-server/)  \n\n### Go installation (Debian)\nInstall latest version of Go from (https://golang.org/dl/)\n\n```\nsudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz\n```\n\n### Setup environment\nBash: ~/.bash_profile  \nZSH: ~/.zshrc\n\n```\nexport PATH=$PATH:/usr/local/go/bin:$HOME/go/bin\nexport GOPATH=$HOME/go\n```\n\n### Install LTS version of nodejs for frontend.\n\n```\nsudo apt-get install curl software-properties-common\ncurl -sL https://deb.nodesource.com/setup_12.x | sudo bash -\nsudo apt-get install nodejs\n```\n\n### Fetch wg-ui\n\n```\ngit clone https://github.com/EmbarkStudios/wg-ui.git \u0026\u0026 cd wg-ui\n```\n\n### Build binary with ui\n\n```\nmake build\n```\n\n### Crosscompiling\n\n```\nmake build-amd64\n```\n\n```\nmake build-armv5\n```\n\n```\nmake build-armv6\n```\n\n```\nmake build-armv7\n```\n\n### Build step by step\n\n```\nmake ui\nmake build\n```\n\n## Developing\n\n### Start frontend server\n```\nnpm install --prefix=ui\nnpm run --prefix=ui dev\n```\n\n### Use frontend server when running the server\n\n```\nmake build\nsudo ./bin/wireguard-ui --log-level=debug --dev-ui-server http://localhost:5000\n```\n\n## Contributing\n\nWe welcome community contributions to this project.\n\nPlease read our [Contributor Guide](CONTRIBUTING.md) for more information on how to get started.\n\n## License\nLicensed under either of\n\n* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembarkstudios%2Fwg-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembarkstudios%2Fwg-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembarkstudios%2Fwg-ui/lists"}