https://github.com/wireadmin/wireadmin
🐉 WireGuard VPN Server with an web-based admin UI + TOR
https://github.com/wireadmin/wireadmin
dnsmasq tor web-ui wireguard
Last synced: 4 months ago
JSON representation
🐉 WireGuard VPN Server with an web-based admin UI + TOR
- Host: GitHub
- URL: https://github.com/wireadmin/wireadmin
- Owner: wireadmin
- License: gpl-3.0
- Created: 2023-09-18T18:15:14.000Z (over 1 year ago)
- Default Branch: canary
- Last Pushed: 2024-09-09T23:44:17.000Z (8 months ago)
- Last Synced: 2024-12-30T15:16:26.159Z (4 months ago)
- Topics: dnsmasq, tor, web-ui, wireguard
- Language: Svelte
- Homepage: https://hub.docker.com/r/shahradel/wireadmin
- Size: 6.61 MB
- Stars: 313
- Watchers: 7
- Forks: 14
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# WireGuard (Easy Admin UI)
[](https://github.com/wireadmin/wireadmin/actions/workflows/ci.yml)
[](https://opensource.org/licenses/GPL-3.0)
| | | |
| :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: |
||
|
|
---
- [Features](#features)
- [Build locally](#build-locally)
- [Image](#image)
- [Ports](#ports)
- [Usage](#usage)
- [Docker Compose](#docker-compose)
- [Command line](#command-line)
- [Persistent Data](#persistent-data)
- [Environment variables](#environment-variables)
- [Upgrade](#upgrade)
- [Contributing](#contributing)
- [License](#license)## 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](https://hub.docker.com/r/shahradel/wireadmin/) | `shahradel/wireadmin` |
| [GitHub Container Registry](https://github.com/users/shahradelahi/packages/container/package/cfw-proxy) | `ghcr.io/wireadmin/wireadmin` |## Ports
- `53`: Dnsmasq
- `3000`: WebUIAnd 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](docker-compose.yml), then run the container:```bash
docker compose up -d
docker compose logs -f
```### Command line
```shell
$ docker run -d \
--name wireadmin \
-e WG_HOST="" \
-e 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 `` with the IP address of your server.
> 💡 Replace `` 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:
```bash
$ docker volume create "" --driver local
```> 💡 Replace `` with the name of the volume.
Finally, to mount the volumes with `-v` flag in the `docker run` command:
```bash
$ 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:
```bash
$ 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](https://github.com/wireadmin/wireadmin)Thanks again for your support, it is much appreciated! 🙏
## License
[GPL-3.0](/LICENSE) © [Shahrad Elahi](https://github.com/shahradelahi)