1
0
mirror of https://github.com/donaldzou/WGDashboard.git synced 2024-11-04 15:00:23 +01:00
WGDashboard/README.md

220 lines
9.5 KiB
Markdown
Raw Normal View History

2021-05-14 00:00:40 +02:00
<hr>
2021-07-11 19:07:27 +02:00
<p align=center>Please provide your OS name and version if you can run the dashboard on it perfectly in <a href="https://github.com/donaldzou/wireguard-dashboard/issues/31">#31</a>, since I only tested on Ubuntu. Thank you!</p>
2021-05-14 00:00:40 +02:00
<hr>
2021-07-11 19:07:27 +02:00
2021-04-13 05:18:57 +02:00
<p align="center">
<img src="https://raw.githubusercontent.com/donaldzou/wireguard-dashboard/main/img/Group%202.png" width="128">
</p>
2021-04-06 04:41:55 +02:00
<h1 align="center"> Wireguard Dashboard</h1>
2021-04-13 04:28:30 +02:00
2021-04-07 18:15:45 +02:00
<p align="center">
<img src="http://ForTheBadge.com/images/badges/made-with-python.svg">
</p>
<p align="center">
2021-04-07 18:19:23 +02:00
<a href="https://github.com/donaldzou/wireguard-dashboard/releases/latest"><img src="https://img.shields.io/github/v/release/donaldzou/wireguard-dashboard"></a>
2021-04-07 18:15:45 +02:00
</p>
2021-05-05 23:25:23 +02:00
<p align="center">Monitoring WireGuard is not convinient, need to login into server and type <code>wg show</code>. That's why this platform is being created, to view all configurations and manage them in a easier way.</p>
2021-05-05 03:26:40 +02:00
2021-05-05 20:38:10 +02:00
2021-07-12 22:35:07 +02:00
## 📣 What's New: Version 2.1
2021-05-05 20:38:10 +02:00
2021-07-02 19:23:04 +02:00
- Added **Ping** and **Traceroute** tools!
2021-05-14 00:00:40 +02:00
- Adjusted the calculation of data usage on each peers
- Added refresh interval of the dashboard
2021-07-02 19:23:04 +02:00
- Bug fixed when no configuration on fresh install ([Bug report](https://github.com/donaldzou/wireguard-dashboard/issues/23#issuecomment-869189672))
- Fixed crash when too many peers ([Bug report](https://github.com/donaldzou/wireguard-dashboard/issues/22#issuecomment-868840564))
2021-05-14 00:00:40 +02:00
<hr>
2021-08-04 00:06:43 +02:00
2021-08-04 00:06:22 +02:00
## Table of Content
- [💡Features](https://github.com/donaldzou/wireguard-dashboard#-features)
- [📝 Requirement](https://github.com/donaldzou/wireguard-dashboard#-requirement)
- [🛠 Install](https://github.com/donaldzou/wireguard-dashboard#-install)
- [🪜 Usage](https://github.com/donaldzou/wireguard-dashboard#-usage)
- [✂️ Dashboard Configuration](https://github.com/donaldzou/wireguard-dashboard#%EF%B8%8F-dashboard-configuration)
- [❓How to update the dashboard?](https://github.com/donaldzou/wireguard-dashboard#-how-to-update-the-dashboard)
- [⚠️ Update from v1.x.x](https://github.com/donaldzou/wireguard-dashboard#%EF%B8%8F--update-from-v1xx)
- [🔍 Screenshot](https://github.com/donaldzou/wireguard-dashboard#-screenshot)
2021-07-12 22:35:07 +02:00
2021-04-07 23:25:21 +02:00
## 💡 Features
2021-04-03 03:12:46 +02:00
2021-05-05 03:26:40 +02:00
- Add peers for each WireGuard configuration
2021-05-05 20:38:10 +02:00
2021-05-05 03:26:40 +02:00
- Manage peer
2021-05-05 20:38:10 +02:00
2021-04-03 03:12:46 +02:00
- Delete peers
2021-05-05 20:38:10 +02:00
2021-04-03 03:12:46 +02:00
- And many more coming up! Welcome to contribute to this project!
2021-05-05 20:38:10 +02:00
2021-04-07 23:25:21 +02:00
## 📝 Requirement
2021-04-03 03:12:46 +02:00
2021-05-05 03:26:40 +02:00
- Ubuntu or Debian based OS, other might work, but haven't test yet. Tested on the following OS:
- [x] Ubuntu 18.04.1 LTS
2021-07-11 19:07:27 +02:00
- [ ] If you have tested on other OS and it works perfectly please provide it to me in [#31](https://github.com/donaldzou/wireguard-dashboard/issues/31). Thank you!
2021-05-05 03:26:40 +02:00
- ‼️ Make sure you have **Wireguard** and **Wireguard-Tools (`wg-quick`)** installed.‼️ <a href="https://www.wireguard.com/install/">How to install?</a>
2020-10-18 08:09:14 +02:00
- Configuration files under **/etc/wireguard**
2021-04-07 23:25:21 +02:00
2021-07-02 20:31:33 +02:00
- **Note**:
- **For `[Interface]` in the `.conf` file, please make sure you have `SaveConfig = true` under `[Interface]`** (Bug mentioned in [#9](https://github.com/donaldzou/wireguard-dashboard/issues/9#issuecomment-852346481))
- **For peers, `PublicKey` & `AllowedIPs` is required.**
2021-04-07 21:58:00 +02:00
- Python 3.7+ & Pip3
2020-10-18 08:09:14 +02:00
2021-05-05 20:38:10 +02:00
2021-04-07 23:25:21 +02:00
## 🛠 Install
2021-07-11 19:07:27 +02:00
1. **Download Wireguard Dashboard**
2021-07-11 18:49:58 +02:00
2021-07-11 19:07:27 +02:00
```shell
$ git clone -b v2.1 https://github.com/donaldzou/Wireguard-Dashboard.git
2. **Install Python Dependencies**
2021-04-03 03:12:46 +02:00
2021-07-11 19:07:27 +02:00
```shell
$ cd Wireguard-Dashboard/src
$ python3 -m pip install -r requirements.txt
```
2021-04-03 03:12:46 +02:00
2021-07-11 19:07:27 +02:00
3. **Install & run Wireguard Dashboard**
2021-05-05 20:38:10 +02:00
2021-07-11 19:07:27 +02:00
```shell
$ sudo chmod -R 744 /etc/wireguard # Add read and execute permission of the wireguard config folder
$ sudo chmod u+x wgd.sh
$ ./wgd.sh start
```
**Note**:
> For [`pivpn`](https://github.com/pivpn/pivpn) user, please use `sudo ./wgd.sh start` to run if your current account does not have the permission to run `wg show` and `wg-quick`.
4. **Access dashboard**
Access your server with port `10086` ! e.g (http://your_server_ip:10086), continue to read to on how to change port and ip that dashboard is running with.
2021-05-05 20:38:10 +02:00
2021-05-05 03:26:40 +02:00
## 🪜 Usage
**1. Start/Stop/Restart Wireguard Dashboard**
2021-04-03 03:12:46 +02:00
2021-07-02 19:28:29 +02:00
2021-05-14 00:00:40 +02:00
```shell
2021-07-03 16:30:54 +02:00
$ cd Wireguard-Dashboard/src
-----------------------------
$ ./wgd.sh start # Start the dashboard in background
-----------------------------
$ ./wgd.sh debug # Start the dashboard in foreground (debug mode)
-----------------------------
$ ./wgd.sh stop # Stop the dashboard
-----------------------------
$ ./wgd.sh restart # Restart the dasboard
2021-07-02 20:31:33 +02:00
```
2020-10-18 08:09:14 +02:00
2021-05-05 20:38:10 +02:00
⚠️ **For first time user please also read the next section.**
2021-05-05 03:26:40 +02:00
## ✂️ Dashboard Configuration
Since version 2.0, Wireguard Dashboard will be using a configuration file called `wg-dashboard.ini`, (It will generate automatically after first time running the dashboard). More options will include in future versions, and for now it included the following config:
2021-07-11 19:07:27 +02:00
| | Description | Default Value |
| --------------- | ------------------------------------------------------------ | ------------------------ |
| **`[Account]`** | | |
| `username` | Dashboard login username | `admin` |
| `password` | Password, will be hash with SHA256 | `admin` hashed in SHA256 |
| **`[Server]`** | | |
| `wg_conf_path` | The path of all the Wireguard configurations | `/etc/wireguard` |
| `app_ip` | IP address the dashboard will run with | `0.0.0.0` |
| `app_port` | Port the the dashboard will run with | `10086` |
| `auth_req` | Does the dashboard need authentication to access | `true` |
| | If `auth_req = false` , user will not be access the **Setting** tab due to security consideration. **User can only change the file directly in system**. | |
| `version` | Dashboard Version | N/A |
<p align=center>Latest Version: V2.1</p>
2021-05-05 20:38:10 +02:00
All these settings will be able to configure within the dashboard in **Settings** on the sidebar, without changing the actual file. **Except `version` and `auth_req` due to security consideration.**
2021-05-05 03:26:40 +02:00
## ❓ How to update the dashboard?
2021-07-02 19:23:04 +02:00
1. Change your directory to `wireguard-dashboard`
```
$ cd wireguard-dashboard
```
2. Get the newest version
```
$ sudo git pull https://github.com/donaldzou/wireguard-dashboard.git v2.1 --force
```
3. Update and install all python dependencies
```
$ python3 -m pip install -r requirements.txt
```
4. Start the dashboard
```
$ ./wgd.sh start
```
2021-07-11 18:49:58 +02:00
### ⚠️ **Update from v1.x.x**
2021-05-05 03:41:13 +02:00
2021-07-02 19:23:04 +02:00
1. Stop the dashboard if it is running.
2. You can use `git pull https://github.com/donaldzou/Wireguard-Dashboard.git v2.1` to get the new update inside `Wireguard-Dashboard` directory.
3. Proceed **Step 2 & 3** in the [Install](#-install) step down below.
2021-05-05 03:26:40 +02:00
2021-05-05 20:38:10 +02:00
## 🔍 Screenshot
2021-05-05 03:26:40 +02:00
2020-10-22 02:30:16 +02:00
![Index Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/index.png)
2021-05-05 03:26:40 +02:00
<p align=center>Index Page</p>
![Signin Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/signin.png)
<p align=center>Signin Page</p>
![Configuration Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/configuration.png)
<p align=center>Configuration Page</p>
![Settings Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/settings.png)
<p align=center>Settings Page</p>
2021-04-07 01:51:50 +02:00
2021-05-14 00:00:40 +02:00
## 🛒 Dependencies
- CSS/JS
- [Bootstrap](https://getbootstrap.com/docs/4.6/getting-started/introduction/) `v4.6.0`
- [Bootstrap Icon](https://icons.getbootstrap.com) `v1.4.0`
- [jQuery](https://jquery.com) `v3.5.1`
- Python
- [Flask](https://pypi.org/project/Flask/) `v1.1.2`
- [TinyDB](https://pypi.org/project/tinydb/) `v4.3.0`
- [ifcfg](https://pypi.org/project/ifcfg/) `v0.21`
- [icmplib](https://pypi.org/project/icmplib/) `v2.1.1`
2021-04-13 04:26:55 +02:00
## Contributors ✨
2021-04-13 04:28:30 +02:00
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
2021-04-13 04:29:47 +02:00
[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)
2021-04-13 04:28:30 +02:00
<!-- ALL-CONTRIBUTORS-BADGE:END -->
2021-04-13 04:26:55 +02:00
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/antonioag95"><img src="https://avatars.githubusercontent.com/u/30556866?v=4?s=100" width="100px;" alt=""/><br /><sub><b>antonioag95</b></sub></a><br /><a href="https://github.com/donaldzou/wireguard-dashboard/commits?author=antonioag95" title="Tests">⚠️</a> <a href="https://github.com/donaldzou/wireguard-dashboard/commits?author=antonioag95" title="Code">💻</a></td>
2021-04-13 04:29:47 +02:00
<td align="center"><a href="https://github.com/tonjo"><img src="https://avatars.githubusercontent.com/u/4726289?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tonjo</b></sub></a><br /><a href="https://github.com/donaldzou/wireguard-dashboard/commits?author=tonjo" title="Code">💻</a></td>
2021-04-13 04:26:55 +02:00
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
2021-04-13 04:28:30 +02:00
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
2021-05-05 03:26:40 +02:00