From 097e860e5afd576304bae36933f6e9867f1dd710 Mon Sep 17 00:00:00 2001 From: quietsy Date: Fri, 14 Jan 2022 12:45:47 +0200 Subject: [PATCH 1/4] Added more info to f2b --- root/dashboard/swag-f2b.py | 19 +++++++++++++++++-- root/dashboard/www/index.php | 11 +++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/root/dashboard/swag-f2b.py b/root/dashboard/swag-f2b.py index 92b6349..d59074e 100644 --- a/root/dashboard/swag-f2b.py +++ b/root/dashboard/swag-f2b.py @@ -4,7 +4,22 @@ import sqlite3 con = sqlite3.connect("/config/fail2ban/fail2ban.sqlite3") cur = con.cursor() -results = cur.execute("SELECT jails.name, COUNT(bans.ip) AS bans FROM jails LEFT JOIN bans ON jails.name=bans.jail GROUP BY jails.name").fetchall() +results = cur.execute(""" + SELECT jails.name, + COUNT(bans.ip) AS bans, + (SELECT DISTINCT bans.ip from bans where jails.name = bans.jail ORDER BY timeofban DESC) as last_ban, + (SELECT DISTINCT bans.data from bans where jails.name = bans.jail ORDER BY timeofban DESC) as data + FROM jails + LEFT JOIN bans ON jails.name=bans.jail + GROUP BY jails.name + """).fetchall() con.close() -output = json.dumps({k:v for (k,v) in results}, sort_keys=True) +formatted_results = [{ + "name": name, + "bans": bans, + "last_ban": last_ban, + "data": json.dumps(json.loads(data), indent=4, sort_keys=True) if data else None +} for (name, bans, last_ban, data) in results] + +output = json.dumps(formatted_results, sort_keys=True) print(output) diff --git a/root/dashboard/www/index.php b/root/dashboard/www/index.php index f9cdea7..8c7d658 100644 --- a/root/dashboard/www/index.php +++ b/root/dashboard/www/index.php @@ -4,7 +4,7 @@ + + + + + + + + + + + + + + + + + + + + + Asset 1 + + + + + + + + + + + + + + + + + diff --git a/root/dashboard/www/index.php b/root/dashboard/www/index.php index 8c7d658..bf8031f 100644 --- a/root/dashboard/www/index.php +++ b/root/dashboard/www/index.php @@ -18,7 +18,7 @@ text-align: left; } td { - padding-right: 30px; + padding-right: 20px; } .green-circle { padding: 2px 10px; @@ -157,7 +157,10 @@ } $geodb = file_exists('/config/geoip2db/GeoLite2-City.mmdb') ? '--geoip-database=/config/geoip2db/GeoLite2-City.mmdb' : ''; - $access = shell_exec("goaccess -a -o html --config-file=/dashboard/goaccess.conf ".$geodb); + $goaccess = shell_exec("goaccess -a -o html --config-file=/dashboard/goaccess.conf ".$geodb); $status = GetHeader() . GetProxies() . GetF2B() . GetAnnouncements() . '
'; - echo str_replace("
", $status, $access); + $page = str_replace("
", $status, $goaccess); + $page = str_replace("Server Statistics", "<title>SWAG Dashboard", $page); + $page = preg_replace("/(<link rel='icon' )(.*?)(>)/", "<link rel='icon' type='image/svg+xml' href='/icon.svg'>", $page); + echo $page; ?> From b2ac39a8cf92a7e2773b6e91aee3041a708adefd Mon Sep 17 00:00:00 2001 From: quietsy <quietsy@pm.me> Date: Fri, 14 Jan 2022 15:21:08 +0200 Subject: [PATCH 3/4] Improve branding --- root/dashboard/www/index.php | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/root/dashboard/www/index.php b/root/dashboard/www/index.php index bf8031f..d061f53 100644 --- a/root/dashboard/www/index.php +++ b/root/dashboard/www/index.php @@ -33,10 +33,6 @@ border: 1px solid black; } </style> - <h1>Welcome to your <a target="_blank" href="https://github.com/linuxserver/docker-swag">SWAG</a> instance</h1> - <h4>A webserver and reverse proxy solution brought to you by <a target="_blank" href="https://www.linuxserver.io/">linuxserver.io</a> with php support and a built-in Certbot client.</h4> - <h4>We have an article on how to use swag here: <a target="_blank" href="https://docs.linuxserver.io/general/swag">docs.linuxserver.io</a></h4> - <h4>For help and support, please visit: <a target="_blank" href="https://www.linuxserver.io/support">linuxserver.io/support</a></h4> HTML; } @@ -156,11 +152,34 @@ HTML; } + function GetLinks() { + return <<<HTML + <div class="wrap-panel status-div"> + <div> + <h2>Useful Links</h2> + <table class="table-hover"> + <tbody class="tbody-data"> + <tr><td class="link-text left-text"><span class="status-text"><a href="https://www.linuxserver.io/">Linuxserver.io</a></span></td></tr> + <tr><td class="link-text left-text"><span class="status-text"><a href="https://github.com/linuxserver/docker-swag">SWAG Container</a></span></td></tr> + <tr><td class="link-text left-text"><span class="status-text"><a href="https://docs.linuxserver.io/general/swag">SWAG Setup</a></span></td></tr> + <tr><td class="link-text left-text"><span class="status-text"><a href="https://www.linuxserver.io/support">Support</a></span></td></tr> + <tr><td class="link-text left-text"><span class="status-text"><a href="https://opencollective.com/linuxserver/donate">Donate</a></span></td></tr> + </tbody> + </table> + <br/> + </div> + <br/> + </div> + HTML; + } + $geodb = file_exists('/config/geoip2db/GeoLite2-City.mmdb') ? '--geoip-database=/config/geoip2db/GeoLite2-City.mmdb' : ''; $goaccess = shell_exec("goaccess -a -o html --config-file=/dashboard/goaccess.conf ".$geodb); - $status = GetHeader() . GetProxies() . GetF2B() . GetAnnouncements() . '<div class="wrap-general">'; + $status = GetHeader() . GetProxies() . GetF2B() . GetAnnouncements() . GetLinks() . '<div class="wrap-general">'; $page = str_replace("<div class='wrap-general'>", $status, $goaccess); $page = str_replace("<title>Server Statistics", "<title>SWAG Dashboard", $page); + $page = str_replace("<h1 class='h-dashboard'>", "<h1>", $page); + $page = str_replace("<i class='fa fa-tachometer'></i>", "<img src='/icon.svg' width='32' height='32'> SWAG ", $page); $page = preg_replace("/(<link rel='icon' )(.*?)(>)/", "<link rel='icon' type='image/svg+xml' href='/icon.svg'>", $page); echo $page; ?> From 958df88502e3800b79155b9527e60ae34a4771dc Mon Sep 17 00:00:00 2001 From: quietsy <quietsy@pm.me> Date: Fri, 14 Jan 2022 15:23:18 +0200 Subject: [PATCH 4/4] Fix wording --- root/dashboard/www/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/dashboard/www/index.php b/root/dashboard/www/index.php index d061f53..19d2cb1 100644 --- a/root/dashboard/www/index.php +++ b/root/dashboard/www/index.php @@ -162,7 +162,7 @@ <tr><td class="link-text left-text"><span class="status-text"><a href="https://www.linuxserver.io/">Linuxserver.io</a></span></td></tr> <tr><td class="link-text left-text"><span class="status-text"><a href="https://github.com/linuxserver/docker-swag">SWAG Container</a></span></td></tr> <tr><td class="link-text left-text"><span class="status-text"><a href="https://docs.linuxserver.io/general/swag">SWAG Setup</a></span></td></tr> - <tr><td class="link-text left-text"><span class="status-text"><a href="https://www.linuxserver.io/support">Support</a></span></td></tr> + <tr><td class="link-text left-text"><span class="status-text"><a href="https://www.linuxserver.io/support">Get Support</a></span></td></tr> <tr><td class="link-text left-text"><span class="status-text"><a href="https://opencollective.com/linuxserver/donate">Donate</a></span></td></tr> </tbody> </table>