Go to file
Shahrad Elahi fd39a92ac7
fix
2024-05-29 20:04:36 +03:30
.changeset fix 2024-05-29 19:19:36 +03:30
.github/workflows fix 2024-05-29 20:04:36 +03:30
assets update 2024-05-29 20:01:36 +03:30
rootfs/etc feat: dns server 2024-05-29 19:01:08 +03:30
web update 2024-05-29 20:01:36 +03:30
.dockerignore update 2024-05-29 18:32:19 +03:30
.gitignore init with Bun + SvelteKit 2023-11-02 14:34:25 +03:30
.prettierignore update 2024-05-29 18:32:19 +03:30
.prettierrc fix 2024-05-29 20:04:36 +03:30
docker-bake.hcl update 2024-05-29 18:32:19 +03:30
docker-compose.dev.yml fix 2024-05-29 19:48:49 +03:30
docker-compose.yml fix 2024-05-29 19:48:49 +03:30
docker-entrypoint.sh feat: dns server 2024-05-29 19:01:08 +03:30
Dockerfile fix 2024-05-29 20:04:36 +03:30
Dockerfile-Dev feat: dns server 2024-05-29 19:01:08 +03:30
LICENSE Updates dependencies and License from MIT to GPLv3 2023-10-08 11:47:00 +03:30
package.json fix 2024-05-29 19:48:49 +03:30
pnpm-lock.yaml update 2024-05-29 18:32:19 +03:30
README.md update 2024-05-29 20:01:36 +03:30

WireGuard (Easy Admin UI)

CI GPL-3.0 Licensed

Screenshot

screenshot screenshot screenshot

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: Dnsmasq
  • 3000: 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! 🙏

License

GPL-3.0 © Shahrad Elahi