From 0fa4759c3aa2785b0b926e81b8dcb935d6eb3cdc Mon Sep 17 00:00:00 2001 From: Donald Cheng Hong Zou Date: Wed, 5 May 2021 14:38:10 -0400 Subject: [PATCH] Update --- README.md | 72 +++++++++++++++++++++++++------------- src/dashboard.py | 7 ++-- src/templates/sidebar.html | 2 +- src/wgd.sh | 36 ++++++++++++++----- 4 files changed, 80 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 6fb059f..c85c8d9 100644 --- a/README.md +++ b/README.md @@ -16,20 +16,40 @@ ## 📣 What's New: Version 2.0 +### ⚠️ **Update from v1.x.x** + +1. Stop the dashboard if it is running. +2. You can use `git pull https://github.com/donaldzou/Wireguard-Dashboard.git v2.0` to get the new update inside `Wireguard-Dashboard` directory. +3. Proceed **Step 2 & 3** in the Install step down below. + +
+ - Added login function to dashboard + - ***I'm not using the most ideal way to store the username and password, feel free to provide a better way to do this if you any good idea!*** + - Added a config file to the dashboard + - Dashboard config can be change within the **Setting** tab on the side bar + - Adjusted UI + - And much more! + + ## 💡 Features - Add peers for each WireGuard configuration + - Manage peer + - Delete peers + - And many more coming up! Welcome to contribute to this project! + + ## 📝 Requirement - Ubuntu or Debian based OS, other might work, but haven't test yet. Tested on the following OS: @@ -45,12 +65,14 @@ $ sudo apt-get install python3 python3-pip ``` + + ## 🛠 Install 1. Download Wireguard Dashboard ``` -$ git clone https://github.com/donaldzou/Wireguard-Dashboard.git +$ git clone -b v2.0 https://github.com/donaldzou/Wireguard-Dashboard.git ``` **2. Install Python Dependencies** @@ -68,6 +90,8 @@ $ sudo sh wgd.sh start 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. + + ## 🪜 Usage **1. Start/Stop/Restart Wireguard Dashboard** @@ -81,39 +105,37 @@ $ sudo sh wgd.sh restart # Restart the dasboard $ sudo sh wgd.sh update # Update the dashboard ``` -⚠️ **For first time user please also read the next section.** +⚠️ **For first time user please also read the next section.** + + ## ✂️ 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: -- `[Account]` - - `username` - Username (Default: `admin`) - - `password` - Password, will be hash with SHA256 (Default: `admin`). -- `[Server]` - - `app_ip` - IP address the flask will run with (Default: `0.0.0.0`) - - `app_port` - Port the flask will run with (Default: `10086`) - - `auth_req` - Does the dashboard need authentication (Default: `true`) - - If `auth_req = false` , user will not be access the **Setting** tab due to security consideration. **Can only changing the file directly in system**. - - `version` - Dashboard Version +### `[Account]` -All these settings***** will be able to configure within the dashboard in **Settings** on the sidebar, without changing the actual file. +`username` - Username (Default: `admin`) -- Example +`password` - Password, will be hash with SHA256 (Default: `admin`). -``` -[Account] -username = admin -password = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 +### `[Server]` + +`wg_conf_path` - The path of all the Wireguard configurations (Default: `/etc/wireguard`) + +`app_ip` - IP address the flask will run with (Default: `0.0.0.0`) + +`app_port` - Port the flask will run with (Default: `10086`) + +`auth_req` - Does the dashboard need authentication (Default: `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 + +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.** -[Server] -app_ip = 0.0.0.0 -app_port = 10086 -auth_req = true -version = v2.0 -``` -**: Except `version` and `auth_req` due to security consideration.* ## ❓ How to update the dashboard? @@ -125,7 +147,7 @@ $ sudo sh wgd.sh start # Start dashboard -## 🔍 Example +## 🔍 Screenshot ![Index Image](https://github.com/donaldzou/Wireguard-Dashboard/raw/main/src/static/index.png) diff --git a/src/dashboard.py b/src/dashboard.py index 69033c6..153d463 100644 --- a/src/dashboard.py +++ b/src/dashboard.py @@ -1,3 +1,6 @@ +dashboard_version = 'v2.0' + + # Python Built-in Library import os from flask import Flask, request, render_template, redirect, url_for, session, abort @@ -11,10 +14,8 @@ import configparser # PIP installed library import ifcfg from tinydb import TinyDB, Query -dashboard_version = 'v2.0' dashboard_conf = 'wg-dashboard.ini' update = "" - app = Flask("Wireguard Dashboard") app.secret_key = secrets.token_urlsafe(16) app.config['TEMPLATES_AUTO_RELOAD'] = True @@ -254,8 +255,8 @@ def auth_req(): request.endpoint != "signout" and \ request.endpoint != "auth" and \ "username" not in session: - print(request.path) print("not loggedin") + session['message'] = "You need to sign in first!" return redirect(url_for("signin")) else: if request.endpoint in ['signin', 'signout', 'auth', 'settings', 'update_acct', 'update_pwd', 'update_app_ip_port', 'update_wg_conf_path']: diff --git a/src/templates/sidebar.html b/src/templates/sidebar.html index 751a640..5995ad2 100644 --- a/src/templates/sidebar.html +++ b/src/templates/sidebar.html @@ -8,7 +8,7 @@ {% endif %} {% if session['update'] == "true" %} - + {% endif %}
diff --git a/src/wgd.sh b/src/wgd.sh index 7c4a426..f07253f 100644 --- a/src/wgd.sh +++ b/src/wgd.sh @@ -1,7 +1,7 @@ #!/bin/bash app_name="dashboard.py" - +dashes='------------------------------------------------------------' help () { printf " by Donald Zou - https://github.com/donaldzou \n" printf "Usage: sh wg-dashboard.sh