.changeset | ||
.github/workflows | ||
assets | ||
rootfs/etc | ||
web | ||
.dockerignore | ||
.gitignore | ||
.prettierignore | ||
.prettierrc | ||
docker-bake.hcl | ||
docker-compose.dev.yml | ||
docker-compose.yml | ||
docker-entrypoint.sh | ||
Dockerfile | ||
Dockerfile-Dev | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
README.md |
WireGuard (Easy Admin UI)
Features
- Simple and friendly UI
- Support for multiple users and servers
- Support for Tor for anonymized connections
- Server connection statistics
- List, create, delete, or modify any server or user
- Create QR codes
- Easily download the client configurations.
- Automatic Light/Dark Mode
Image
Registry | Image |
---|---|
Docker Hub | shahradel/wireadmin |
GitHub Container Registry | ghcr.io/wireadmin/wireadmin |
Ports
53
: Dnsmasq3000
: WebUI
And for any additional ports of WireGuard instance, should be exposed through Docker.
Usage
Docker Compose
Docker compose is the recommended way to run this image. You can use the following docker compose template, then run the container:
docker compose up -d
docker compose logs -f
Command line
$ docker run -d \
--name wireadmin \
-e WG_HOST="<YOUR_SERVER_IP>" \
-e ADMIN_PASSWORD="<ADMIN_PASSWORD>" \
-p "3000:3000/tcp" \
-p "51820:51820/udp" \
--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/wireadmin/wireadmin
💡 Replace
<YOUR_SERVER_IP>
with the IP address of your server.
💡 Replace
<ADMIN_PASSWORD>
with the password for the admin UI.
The Web UI will now be available on http://0.0.0.0:3000
.
Persistent Data
It's important to mount a volume to ensure that your data is not lost during container restarts or updates. Here is the list of required volumes:
wireadmin-data
:/data
tor-data
:/var/lib/tor
To create a docker volume, use the following command:
$ docker volume create "<volume>" --driver local
💡 Replace
<volume>
with the name of the volume.
Finally, to mount the volumes with -v
flag in the docker run
command:
$ docker run -d \
-v wireadmin-data:/data \
-v tor-data:/var/lib/tor \
ghcr.io/wireadmin/wireadmin
Environment variables
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. | - | |
ADMIN_PASSWORD |
The password for the web UI. | insecure-password |
|
HOST |
The hostname for the WebUI. | 127.0.0.1 |
✔️ |
PORT |
The port for the WebUI. | 3000 |
✔️ |
TOR_USE_BRIDGES |
Set this to 1 and then mount the bridges file at /etc/tor/torrc.d/bridges.conf . |
- | ✔️ |
TOR_* |
The Torrc proxy configuration. (e.g. SocksPort as TOR_SOCKS_PORT="9050" ) |
- | ✔️ |
Upgrade
Recreate the container whenever I push an update:
$ docker compose pull
$ docker compose up -d
Contributing
Want to contribute? Awesome! To show your support is to star the project, or to raise issues on GitHub
Thanks again for your support, it is much appreciated! 🙏