Go to file
2023-11-08 22:57:41 +03:30
.github/workflows fix 2023-10-03 11:40:52 +03:30
assets update 2023-11-08 04:00:10 +03:30
config add few pre-provided tor bridges 2023-11-07 22:36:03 +03:30
web add empty component and add a fallback for no server and users sections. 2023-11-08 22:57:41 +03:30
.dockerignore add tailwindcss and shadcn 2023-11-03 18:29:09 +03:30
.gitignore init with Bun + SvelteKit 2023-11-02 14:34:25 +03:30
docker-compose.dev.yml (chore): revert to nodejs and update dependencies 2023-11-05 19:50:21 +03:30
docker-compose.yml fix 2023-09-27 05:30:23 +03:30
docker-entrypoint.sh (fix): watchdog for conf health and, if the wg instance is down, don't restart 2023-11-07 22:31:12 +03:30
Dockerfile (fix): grabbing envs from $env was a mistake 2023-11-08 01:36:32 +03:30
Dockerfile-Dev (fix): grabbing envs from $env was a mistake 2023-11-08 01:36:32 +03:30
LICENSE Updates dependencies and License from MIT to GPLv3 2023-10-08 11:47:00 +03:30
package.json add tailwindcss and shadcn 2023-11-03 18:29:09 +03:30
pnpm-lock.yaml add tailwindcss and shadcn 2023-11-03 18:29:09 +03:30
README.md docs 2023-11-08 20:35:45 +03:30

WireGuard GUI (Easy Admin UI)

Screenshot

screenshot screenshot

Features

  • Easy-to-use web-based admin UI
  • Support for multiple users and servers
  • Support for Tor to anonymize connections
  • List, create, delete, or modify any server or user
  • Scan QR codes or easily download the client configurations.

Requirements

  • A host with a kernel that supports WireGuard.
  • A host with Docker installed.

Installation

1. Install Docker

To install Docker, go to the official documentation and install a version that meets your environment's requirements.

2. Persistent Data

WireAdmin uses redis to store the WireGuard configurations and their data at /data. It's important to mount a volume at this location to ensure that your data is not lost during container restarts or updates.

Create a docker volume

docker volume create wireadmin-data --driver local

3. Run WireAdmin

Install WireAdmin using the command line:

docker run -d \
 --name wireadmin \
 --restart unless-stopped \
 -e WG_HOST="🚨YOUR_SERVER_IP" \
 -e UI_PASSWORD="🔐OPTIONAL_ADMIN_PASSWORD" \
 -p "3000:3000/tcp" \
 -p "51820:51820/udp" \
 -v "wireadmin-data:/data" \
 --cap-add=NET_ADMIN \
 --cap-add=SYS_MODULE \
 --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
 --sysctl="net.ipv4.ip_forward=1" \
  ghcr.io/shahradelahi/wireadmin:latest

Please note that the port 3000 is for the UI and it is up to you to remove it after configuring the Servers/Peers.

IMPORTANT: When creating each server, ensure that you add the port exposure through Docker. (The port 51820 is added as an example.)

4. Enjoy 🎉

Please feel free to open an issue if you have any questions or suggestions.

Environment Options

These options can be configured by setting environment variables using -e KEY="VALUE" in the docker run command.

Option Description Default Optional
WG_HOST The public IP address of the WireGuard server. ""
UI_PASSWORD The password for the admin UI. "" ✔️
ORIGIN In case you want to access the web-admin remotely, you must set this to the host you are using, for example, http://hostname:port. "" ✔️
TOR_USE_BRIDGES Set this to true for quick setup of obfs4 Tor bridges. You have to mount the bridges file at /etc/tor/bridges. "" ✔️
TOR_* The Torrc proxy configuration. (e.g. SocksPort as TOR_SOCKSPORT="9050") "" ✔️

Support the Project

Seriously, this project is free and open-source, and all I ask for as support is for you to give a star to the repository.

License

This project is licensed under the GPL-3.0 license. See the LICENSE file for more info.