# WireGuard GUI (Easy Admin UI)
![Screenshot](assets/screenshot-1.png)
| | |
|:------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------:|
| | |
## Features
- Easy-to-use web-based admin UI
- Support for multiple users and servers
- Support for **Tor for anonymized 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.
- [Install Docker Engine](https://docs.docker.com/engine/install/)
### 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
```bash
docker volume create wireadmin-data --driver local
```
### 3. Run WireAdmin
Install WireAdmin using the command line:
```bash
docker run --rm \
-e WG_HOST="🚨YOUR_SERVER_IP" \
-e UI_PASSWORD="🔐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" \
litehex/wireadmin:latest
```
Please note that the port `3000` is for the WebUI, and it's 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 | 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://:3000`. | ✔️ |
| `TOR_USE_BRIDGES` | Set this to `1` and then mount the bridges file at `/etc/torrc.d/bridges.conf`. | ✔️ |
| `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](LICENSE) file for details