{"id":23050069,"url":"https://github.com/kennix88/wg-easy","last_synced_at":"2026-07-16T15:38:12.508Z","repository":{"id":132867810,"uuid":"524450899","full_name":"Kennix88/wg-easy","owner":"Kennix88","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-20T17:13:47.000Z","size":760,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T02:46:16.706Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kennix88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-08-13T16:27:58.000Z","updated_at":"2022-09-24T20:35:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"452ecd13-aa7f-4aeb-8f03-e7b2013fed03","html_url":"https://github.com/Kennix88/wg-easy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Kennix88/wg-easy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kennix88%2Fwg-easy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kennix88%2Fwg-easy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kennix88%2Fwg-easy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kennix88%2Fwg-easy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kennix88","download_url":"https://codeload.github.com/Kennix88/wg-easy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kennix88%2Fwg-easy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35549640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-16T02:00:06.687Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12-15T23:19:06.039Z","updated_at":"2026-07-16T15:38:12.449Z","avatar_url":"https://github.com/Kennix88.png","language":"JavaScript","funding_links":["https://github.com/sponsors/WeeJeWel"],"categories":[],"sub_categories":[],"readme":"# WireGuard Easy\n\n[![Build \u0026 Publish Docker Image to Docker Hub](https://github.com/WeeJeWel/wg-easy/actions/workflows/deploy.yml/badge.svg?branch=production)](https://github.com/WeeJeWel/wg-easy/actions/workflows/deploy.yml)\n[![Lint](https://github.com/WeeJeWel/wg-easy/actions/workflows/lint.yml/badge.svg?branch=master)](https://github.com/WeeJeWel/wg-easy/actions/workflows/lint.yml)\n[![Docker](https://img.shields.io/docker/v/weejewel/wg-easy/latest)](https://hub.docker.com/r/weejewel/wg-easy)\n[![Docker](https://img.shields.io/docker/pulls/weejewel/wg-easy.svg)](https://hub.docker.com/r/weejewel/wg-easy)\n[![Sponsor](https://img.shields.io/github/sponsors/weejewel)](https://github.com/sponsors/WeeJeWel)\n![GitHub Stars](https://img.shields.io/github/stars/weejewel/wg-easy)\n\nYou have found the easiest way to install \u0026 manage WireGuard on any Linux host!\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/screenshot.png\" width=\"802\" /\u003e\n\u003c/p\u003e\n\n## Features\n\n* All-in-one: WireGuard + Web UI.\n* Easy installation, simple to use.\n* List, create, edit, delete, enable \u0026 disable clients.\n* Show a client's QR code.\n* Download a client's configuration file.\n* Statistics for which clients are connected.\n* Tx/Rx charts for each connected client.\n* Gravatar support.\n\n## Requirements\n\n* A host with a kernel that supports WireGuard (all modern kernels).\n* A host with Docker installed.\n\n## Installation\n\n### 1. Install Docker\n\nIf you haven't installed Docker yet, install it by running:\n\n```bash\n$ curl -sSL https://get.docker.com | sh\n$ sudo usermod -aG docker $(whoami)\n$ exit\n```\n\nAnd log in again.\n\n### 2. Run WireGuard Easy\n\nTo automatically install \u0026 run wg-easy, simply run:\n\n\u003cpre\u003e\n$ docker run -d \\\n  --name=wg-easy \\\n  -e WG_HOST=\u003cb\u003e🚨YOUR_SERVER_IP\u003c/b\u003e \\\n  -e PASSWORD=\u003cb\u003e🚨YOUR_ADMIN_PASSWORD\u003c/b\u003e \\\n  -v ~/.wg-easy:/etc/wireguard \\\n  -p 51820:51820/udp \\\n  -p 51821:51821/tcp \\\n  --cap-add=NET_ADMIN \\\n  --cap-add=SYS_MODULE \\\n  --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\\n  --sysctl=\"net.ipv4.ip_forward=1\" \\\n  --restart unless-stopped \\\n  weejewel/wg-easy\n\u003c/pre\u003e\n\n\u003e 💡 Replace `YOUR_SERVER_IP` with your WAN IP, or a Dynamic DNS hostname.\n\u003e \n\u003e 💡 Replace `YOUR_ADMIN_PASSWORD` with a password to log in on the Web UI.\n\nThe Web UI will now be available on `http://0.0.0.0:51821`.\n\n\u003e 💡 Your configuration files will be saved in `~/.wg-easy`\n\n### 3. Sponsor\n\nAre you enjoying this project? [Buy me a beer!](https://github.com/sponsors/WeeJeWel) 🍻\n\n## Options\n\nThese options can be configured by setting environment variables using `-e KEY=\"VALUE\"` in the `docker run` command.\n\n| Env | Default | Example | Description |\n| - | - | - | - |\n| `PASSWORD` | - | `foobar123` | When set, requires a password when logging in to the Web UI. |\n| `WG_HOST` | - | `vpn.myserver.com` | The public hostname of your VPN server. |\n| `WG_PORT` | `51820` | `12345` | The public UDP port of your VPN server. WireGuard will always listen on `51820` inside the Docker container. |\n| `WG_MTU` | `null` | `1420` | The MTU the clients will use. Server uses default WG MTU. |\n| `WG_PERSISTENT_KEEPALIVE` | `0` | `25` | Value in seconds to keep the \"connection\" open. If this value is 0, then connections won't be kept alive. |\n| `WG_DEFAULT_ADDRESS` | `10.8.0.x` | `10.6.0.x` | Clients IP address range. |\n| `WG_DEFAULT_DNS` | `1.1.1.1` | `8.8.8.8, 8.8.4.4` | DNS server clients will use. |\n| `WG_ALLOWED_IPS` | `0.0.0.0/0, ::/0` | `192.168.15.0/24, 10.0.1.0/24` | Allowed IPs clients will use. |\n| `WG_PRE_UP` | `...` | - | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L19) for the default value. |\n| `WG_POST_UP` | `...` | `iptables ...` | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L20) for the default value. |\n| `WG_PRE_DOWN` | `...` | - | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L27) for the default value. |\n| `WG_POST_DOWN` | `...` | `iptables ...` | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L28) for the default value. |\n\n\u003e If you change `WG_PORT`, make sure to also change the exposed port.\n\n## Updating\n\nTo update to the latest version, simply run:\n\n```bash\ndocker stop wg-easy\ndocker rm wg-easy\ndocker pull weejewel/wg-easy\n```\n\nAnd then run the `docker run -d \\ ...` command above again.\n\n## Common Use Cases\n\n* [Using WireGuard-Easy with Pi-Hole](https://github.com/WeeJeWel/wg-easy/wiki/Using-WireGuard-Easy-with-Pi-Hole)\n* [Using WireGuard-Easy with nginx/SSL](https://github.com/WeeJeWel/wg-easy/wiki/Using-WireGuard-Easy-with-nginx-SSL)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkennix88%2Fwg-easy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkennix88%2Fwg-easy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkennix88%2Fwg-easy/lists"}