2023-09-06 10:23:31 +00:00
# WireGuard GUI (Easy Admin UI)
2023-09-29 05:55:03 +00:00
![Screenshot ](assets/screenshot-1.png )
| | |
|:------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------:|
| < img src = "assets/screenshot-2.png" alt = "screenshot" style = "width:100%;max-height:300px;" / > | < img src = "assets/screenshot-3.png" alt = "screenshot" style = "width:100%;max-height:300px;" / > |
## Features
- Easy-to-use web-based admin UI
- Support for multiple users and servers
2023-12-01 15:18:46 +00:00
- Support for **Tor for anonymized connections**
2023-09-29 05:55:03 +00:00
- 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/ )
2023-11-08 17:05:45 +00:00
### 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
2023-09-29 05:55:03 +00:00
Install WireAdmin using the command line:
```bash
2023-12-01 15:18:46 +00:00
docker run --rm \
2023-09-29 05:55:03 +00:00
-e WG_HOST="🚨YOUR_SERVER_IP" \
2023-12-01 15:18:46 +00:00
-e UI_PASSWORD="🔐ADMIN_PASSWORD" \
2023-09-29 05:55:03 +00:00
-p "3000:3000/tcp" \
-p "51820:51820/udp" \
2023-11-08 17:05:45 +00:00
-v "wireadmin-data:/data" \
2023-09-29 05:55:03 +00:00
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
2023-10-15 15:38:59 +00:00
--sysctl="net.ipv4.ip_forward=1" \
2023-12-01 15:18:46 +00:00
litehex/wireadmin:latest
2023-09-29 05:55:03 +00:00
```
2023-12-01 15:18:46 +00:00
Please note that the port `3000` is for the WebUI, and it's up to you to remove it after configuring the Servers/Peers.
2023-09-29 05:55:03 +00:00
> IMPORTANT: When creating each server, ensure that you add the port exposure through Docker. (The port `51820` is added
> as an example.)
2023-11-08 17:05:45 +00:00
### 4. Enjoy 🎉
2023-09-29 05:55:03 +00:00
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.
2023-12-01 15:18:46 +00:00
| 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://hostname:port` . | ✔️ |
2023-12-10 23:20:54 +00:00
| `TOR_USE_BRIDGES` | Set this to `1` and then mount the bridges file at `/etc/torrc.d/bridges.conf` . | ✔️ |
2023-12-01 15:18:46 +00:00
| `TOR_*` | The `Torrc` proxy configuration. (e.g. `SocksPort` as `TOR_SOCKSPORT="9050"` ) | ✔️ |
2023-09-29 05:55:03 +00:00
## 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
2023-12-01 15:18:46 +00:00
This project is licensed under the GPL-3.0 License - see the [LICENSE ](LICENSE ) file for details