Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.2 Development Branch #523

Merged
merged 80 commits into from
Dec 29, 2024
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
3ef4798
Update wgd.sh
donaldzou Nov 11, 2024
e963788
Update wgd.sh
donaldzou Nov 12, 2024
b61c9bf
Update wgd.sh
donaldzou Nov 12, 2024
b37d889
Update wgd.sh
donaldzou Nov 12, 2024
e1e147c
Adding support to OpenBSD
donaldzou Nov 12, 2024
c7a4a01
Merge pull request #519 from donaldzou/main
donaldzou Nov 23, 2024
45fbbf9
Update dashboard.py
donaldzou Nov 23, 2024
597528e
Update dashboard.py
donaldzou Nov 23, 2024
71ee784
Update dashboard.py
donaldzou Nov 23, 2024
8e29345
Dropping support plan to OpenBSD
donaldzou Nov 23, 2024
8ddee03
Merge pull request #520 from donaldzou/main
donaldzou Nov 23, 2024
94337a3
Merge pull request #521 from donaldzou/bsd-support
donaldzou Nov 23, 2024
8214000
Commit
donaldzou Nov 23, 2024
b8b3992
commit
donaldzou Nov 24, 2024
53b2342
Final build
donaldzou Nov 24, 2024
6a4d16f
Merge pull request #529 from donaldzou/fix-#522
donaldzou Nov 24, 2024
578a1db
Refactored some of the codes
donaldzou Nov 25, 2024
6c5e054
update
donaldzou Nov 25, 2024
bf7fb89
Update dashboard.py
donaldzou Nov 26, 2024
b4f3fb3
Fixed UI
donaldzou Nov 26, 2024
c9d78e3
Added tooltips to dropdown icons
donaldzou Nov 26, 2024
68e3813
Update
donaldzou Nov 27, 2024
1f5e10e
Adjusted login UI
donaldzou Nov 27, 2024
d77e092
Build
donaldzou Nov 27, 2024
cbffdd8
Update
donaldzou Nov 27, 2024
3e2d6e7
Update
donaldzou Nov 27, 2024
90f35fd
update
donaldzou Nov 27, 2024
5912420
Added System Status
donaldzou Nov 28, 2024
b597f90
Update
donaldzou Nov 28, 2024
2871692
Update dashboard.py
donaldzou Nov 28, 2024
f994e7b
Update dashboard.py
donaldzou Nov 29, 2024
a517f89
Update
donaldzou Nov 29, 2024
bd95fe9
Build
donaldzou Nov 29, 2024
8c2e187
Update peerSearch.vue
donaldzou Nov 29, 2024
db6e820
Build
donaldzou Nov 29, 2024
7fda58e
New search bar design
donaldzou Nov 30, 2024
97ab6ec
Build
donaldzou Nov 30, 2024
b21cfe8
Updated search bar
donaldzou Dec 2, 2024
3340f9c
Update dashboard.py
donaldzou Dec 2, 2024
3b01943
Update dashboard.py
donaldzou Dec 2, 2024
da53bd4
Update dashboard.py
donaldzou Dec 2, 2024
807bb97
Update some UI to handle Wireguard and AWG
donaldzou Dec 2, 2024
434c236
Finished adjusting Peers UI for AWG
donaldzou Dec 2, 2024
57583b6
Backup and restore for AWG is done
donaldzou Dec 4, 2024
c5f9387
All AWG support work is done ;)
donaldzou Dec 4, 2024
7478248
Build
donaldzou Dec 4, 2024
000978e
Merge pull request #538 from donaldzou/v4.2-dev-amneziawg-support
donaldzou Dec 4, 2024
f23cf55
Added file upload to create configuration
donaldzou Dec 5, 2024
627b708
Build
donaldzou Dec 5, 2024
819e8b7
Added configuration editor
donaldzou Dec 6, 2024
461e7e8
build
donaldzou Dec 6, 2024
d780bb3
Added PyPI choose in `wgd.sh install`
donaldzou Dec 6, 2024
908be16
Update wgd.sh
donaldzou Dec 6, 2024
a042298
Update wgd.sh
donaldzou Dec 6, 2024
e4964da
Update wgd.sh
donaldzou Dec 6, 2024
bcfd9fc
Update wgd.sh
donaldzou Dec 6, 2024
febdb2a
Update deleteConfiguration.vue
donaldzou Dec 6, 2024
939dd05
Build
donaldzou Dec 7, 2024
00acb04
Update dashboard.py
donaldzou Dec 7, 2024
b4952de
Fixed message center
donaldzou Dec 7, 2024
d92e62e
Adjusted system status widget
donaldzou Dec 7, 2024
3e01079
Added sorting and search to configuration list
donaldzou Dec 7, 2024
7b59149
Build
donaldzou Dec 7, 2024
6a88959
Update dashboard.py
donaldzou Dec 7, 2024
bb3e00a
Thanks to @NOXCIS, added this development Ubuntu Dockerfile.
DaanSelen Dec 8, 2024
d7bc8cd
Update configurationList.vue
donaldzou Dec 9, 2024
907a142
Build
donaldzou Dec 9, 2024
9e93f8c
HTTPS workflow
donaldzou Dec 12, 2024
c2080bd
Update gunicorn.conf.py
donaldzou Dec 12, 2024
53df684
Working prototype with AWG
DaanSelen Dec 12, 2024
ccd247d
Merge branch 'dev' into v4.2-dev
DaanSelen Dec 12, 2024
7d7e311
HTTPS workflow
donaldzou Dec 12, 2024
f425156
Sync with HTTPS build
donaldzou Dec 12, 2024
c47b0c9
Update gunicorn.conf.py
donaldzou Dec 12, 2024
c264225
Update gunicorn.conf.py
donaldzou Dec 12, 2024
f578d5c
Enhanced peer list rendering
donaldzou Dec 18, 2024
eba5be0
Update
donaldzou Dec 18, 2024
514e1ca
Build
donaldzou Dec 18, 2024
6899d48
Update
donaldzou Dec 25, 2024
8120602
Update dashboard.py
donaldzou Dec 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions src/dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from datetime import datetime, timedelta
from typing import Any
import bcrypt
import ifcfg
# import ifcfg
import psutil
import pyotp
from flask import Flask, request, render_template, session, g
Expand Down Expand Up @@ -979,8 +979,7 @@
return False, str(exc.output.strip().decode("utf-8"))
else:
try:
check = subprocess.check_output(f"wg-quick up {self.Name}",
shell=True, stderr=subprocess.STDOUT)
check = subprocess.check_output(f"wg-quick up {self.Name}", shell=True, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as exc:
return False, str(exc.output.strip().decode("utf-8"))
self.getStatus()
Expand Down Expand Up @@ -1303,6 +1302,15 @@
pattern = re.compile(regex)
return pattern.search(text) is not None

def get_remote_endpoint():
# Thanks @NOXICS
import socket

with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.connect(("1.1.1.1", 80)) # Connecting to a public IP
wgd_remote_endpoint = s.getsockname()[0]
return str(wgd_remote_endpoint)

class DashboardAPIKey:
def __init__(self, Key: str, CreatedAt: str, ExpiredAt: str):
self.Key = Key
Expand Down Expand Up @@ -1345,7 +1353,7 @@
"peer_global_DNS": "1.1.1.1",
"peer_endpoint_allowed_ip": "0.0.0.0/0",
"peer_display_mode": "grid",
"remote_endpoint": ifcfg.default_interface()['inet'] if ifcfg.default_interface() else '',
"remote_endpoint": get_remote_endpoint(),
"peer_MTU": "1420",
"peer_keep_alive": "21"
},
Expand Down
44 changes: 27 additions & 17 deletions src/wgd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,30 +53,33 @@ _check_and_set_venv(){
if ! $venv_python --version > /dev/null 2>&1
then
printf "[WGDashboard] %s Python Virtual Environment under ./venv failed to create. Halting now.\n" "$heavy_crossmark"
kill $TOP_PID
kill $TOP_PID
fi

. ${VIRTUAL_ENV}/bin/activate
}

_determineOS(){
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
elif [ -f /etc/redhat-release ]; then
OS="redhat"
else
printf "[WGDashboard] %s Sorry, your OS is not supported. Currently the install script only support Debian-based, Red Hat-based OS. With experimental support for Alpine Linux.\n" "$heavy_crossmark"
printf "%s\n" "$helpMsg"
kill $TOP_PID
fi
printf "[WGDashboard] OS: %s\n" "$OS"
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
elif [ -f /etc/redhat-release ]; then
OS="redhat"
else
printf "[WGDashboard] %s Sorry, your OS is not supported. Currently the install script only support Debian-based, Red Hat-based OS. With experimental support for Alpine Linux.\n" "$heavy_crossmark"
printf "%s\n" "$helpMsg"
kill $TOP_PID
fi
printf "[WGDashboard] OS: %s\n" "$OS"
}

_installPython(){

{ printf "\n\n [Installing Python] [%s] \n\n""$(date)"; } >> ./log/install.txt

case "$OS" in
ubuntu|debian)
{ sudo apt update ; sudo apt-get install -y python3 net-tools; printf "\n\n"; } &>> ./log/install.txt
{ sudo apt update ; sudo apt-get install -y python3 net-tools; printf "\n\n"; } >> ./log/install.txt
;;
centos|fedora|redhat|rhel|almalinux|rocky)
if command -v dnf &> /dev/null; then
Expand All @@ -86,8 +89,8 @@ _installPython(){
fi
;;
alpine)
{ sudo apk update; sudo apk add python3 net-tools --no-cache; printf "\n\n"; } >> ./log/install.txt
;;
{ sudo apk update; sudo apk add python3 net-tools --no-cache; printf "\n\n"; } >> ./log/install.txt
;;
esac

if ! python3 --version > /dev/null 2>&1
Expand All @@ -101,6 +104,7 @@ _installPython(){
}

_installPythonVenv(){
{ printf "\n\n [Installing Python Venv] [%s] \n\n""$(date)"; } >> ./log/install.txt
if [ "$pythonExecutable" = "python3" ]; then
case "$OS" in
ubuntu|debian)
Expand Down Expand Up @@ -140,6 +144,7 @@ _installPythonVenv(){
}

_installPythonPip(){
{ printf "\n\n [Installing Python Pip] [%s] \n\n""$(date)"; } >> ./log/install.txt
if ! $pythonExecutable -m pip -h > /dev/null 2>&1
then
case "$OS" in
Expand Down Expand Up @@ -265,7 +270,7 @@ install_wgd(){
_checkPythonVersion
_installPythonVenv
_installPythonPip
_checkWireguard
_checkWireguard
sudo chmod -R 755 /etc/wireguard/

if [ ! -d "db" ]
Expand Down Expand Up @@ -472,7 +477,10 @@ else
elif [ "$1" = "update" ]; then
update_wgd
elif [ "$1" = "install" ]; then
printf "%s\n" "$dashes"
clear
printf "=================================================================================\n"
printf "+ <WGDashboard> by Donald Zou - https://github.com/donaldzou +\n"
printf "=================================================================================\n"
install_wgd
printf "%s\n" "$dashes"
elif [ "$1" = "restart" ]; then
Expand All @@ -491,6 +499,8 @@ else
else
start_wgd_debug
fi
elif [ "$1" = "os" ]; then
_determineOS
else
help
fi
Expand Down
Loading