diff --git a/README.md b/README.md index 78f7eda..8c7af38 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ![Screenshot](assets/screenshot-1.png) | | | | -|:------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------:| +| :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | | screenshot | screenshot | screenshot | ## Features @@ -14,23 +14,16 @@ - 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 +### 1. Prerequisites -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/) +- [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. +WireAdmin store configurations 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 @@ -38,9 +31,30 @@ at this location to ensure that your data is not lost during container restarts docker volume create wireadmin-data --driver local ``` -### 3. Run WireAdmin +### 3. Download Image -Install WireAdmin using the command line: +#### Build from source + +```bash +git clone https://github.com/shahradelahi/wireadmin +docker buildx build --tag litehex/wireadmin . +``` + +#### Pull from Docker Hub (recommended) + +```bash +docker pull litehex/wireadmin +``` + +### 4. Run + +When creating each server, ensure that you add the port exposure through Docker. In the below command, the port `51820` +is added for the WireGuard server. + +**NOTE:** The port `3000` is for the WebUI, and can be changed with `PORT` environment variable, but for security +reasons, it's recommended to NOT expose **_any kind of WebUI_** to the public. It's up to you to remove it after +configuring +the Servers/Peers. ```bash docker run --rm \ @@ -53,35 +67,27 @@ docker run --rm \ --cap-add=SYS_MODULE \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --sysctl="net.ipv4.ip_forward=1" \ - litehex/wireadmin:latest + litehex/wireadmin ``` -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.) - ## 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. | | -| `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"`) | ✔️ | +| Option | Description | Optional | +| ----------------- | ------------------------------------------------------------------------------- | -------- | +| `WG_HOST` | The public IP address of the WireGuard server. | | +| `UI_PASSWORD` | The password for the admin UI. | | +| `HOST` | The hostname for the WebUI. (default: `127.0.0.1`) | ✔️ | +| `PORT` | The port for the WebUI. (default: `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"`) | ✔️ | ## Reporting -If you have any questions, bug reports, and feature requests, please create an issue +For bug reports, and feature requests, please create an issue on [GitHub](https://github.com/shahradelahi/wireadmin/issues). -## 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](https://github.com/shahradelahi/wireadmin). - ## License -This project is licensed under the GPL-3.0 License - see the [LICENSE](LICENSE) file for details +[GPL-3.0](LICENSE) © [Shahrad Elahi](https://github.com/shahradelahi)