Caddy
tcp/80
Python 3.13.5
tcp/443
Werkzeug 3.1.3
tcp/443
Open service 2a01:4f9:3081:399c::4:80 · monitor.felixgao.dev
2025-12-31 23:47
HTTP/1.1 308 Permanent Redirect Connection: close Location: https://monitor.felixgao.dev/ Server: Caddy Date: Wed, 31 Dec 2025 23:47:01 GMT Content-Length: 0
Open service 2a01:4f9:3081:399c::4:443 · monitor.felixgao.dev
2025-12-31 23:47
HTTP/1.1 200 OK
Alt-Svc: h3=":443"; ma=2592000
Content-Length: 3939
Content-Type: text/html; charset=utf-8
Date: Wed, 31 Dec 2025 23:47:02 GMT
Server: Werkzeug/3.1.3 Python/3.13.5
Via: 1.1 Caddy
Via: 1.1 Caddy
Connection: close
Page title: Resource Monitor & Vitals
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Resource Monitor & Vitals</title>
<!-- Websocket connection for data
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js" integrity="sha512-q/dWJ3kcmjBLU4Qc47E4A9kTB4m3wuTY7vkFJDTZKjTs8jhyGQnaUrxa0Ytd0ssMZhbNua9hE+E7Qv1j+DyZwA==" crossorigin="anonymous"></script> -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@1.0.0"></script>
<script src="/static/monitor.js"></script>
<link rel="stylesheet" href="/static/monitor.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
</head>
<body>
<h1>Resource & Vital Monitor</h1>
<div id="warning-prompt" style="display: none;">
<p><b>Woah There!</b> The server isn't responding, data went bye bye D:</p>
</div>
<div>
<h2>CPU Usage</h2>
<div class="container">
<p id="cpu-usage"></p>
<div class="graph-selector" data-group="cpu-options">
<button class="toggle-button selected" onclick="selectButton(this, 'cpu-options')" name="global-usage">Global Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'cpu-options')" name="core-usage">Per-Core Usage</button>
</div>
</div>
<div style="position: relative; height:80vh; width:100%">
<canvas id="cpu-graph" class="line-graph"></canvas>
</div>
</div>
<div>
<h2>Memory Usage</h2>
<div class="container">
<p id="memory-usage"></p>
<div class="graph-selector" data-group="memory-options">
<button class="toggle-button selected" onclick="selectButton(this, 'memory-options')" name="global-usage">Global Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'memory-options')" name="my-usage">My Usage</button>
</div>
</div>
<div style="position: relative; height:80vh; width:100%;">
<canvas id="memory-graph" class="line-graph"></canvas>
</div>
</div>
<div id="bottom-bar">
<div style="width:50%;">
<h2>Storage Usage</h2>
<div class="container">
<p id="storage-usage"></p>
<div class="graph-selector" data-group="storage-options">
<button class="toggle-button selected" onclick="selectButton(this, 'storage-options')" name="global-usage">Global Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'storage-options')" name="my-usage">My Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'storage-options')" name="directory-usage">By Directory</button>
</div>
</div>
<div style="aspect-ratio: 1/1; width: 80%; margin: 0 auto; margin-top: 1rem;">
<canvas id="storage-graph"></canvas>
</div>
</div>
<div style="width:50%;">
<h2>Usages by PID</h2>
<table class="pid-data" id="pid-chart">
<tr>
<th style="width:10%;">PID</th>
<th style="width:50%;">Process Name</th>
<th style="width:10%;">CPU (%)</th>
<th style="width:10%;">Memory (GB)</th>
<th style="width:20%;">Status</th>
</tr>
</table>
</div>
</div>
</body>
</html>
Open service 37.27.51.34:443 · monitor.felixgao.dev
2025-12-31 23:47
HTTP/1.1 200 OK
Alt-Svc: h3=":443"; ma=2592000
Content-Length: 3939
Content-Type: text/html; charset=utf-8
Date: Wed, 31 Dec 2025 23:47:01 GMT
Server: Werkzeug/3.1.3 Python/3.13.5
Via: 1.1 Caddy
Via: 1.1 Caddy
Connection: close
Page title: Resource Monitor & Vitals
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Resource Monitor & Vitals</title>
<!-- Websocket connection for data
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js" integrity="sha512-q/dWJ3kcmjBLU4Qc47E4A9kTB4m3wuTY7vkFJDTZKjTs8jhyGQnaUrxa0Ytd0ssMZhbNua9hE+E7Qv1j+DyZwA==" crossorigin="anonymous"></script> -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@1.0.0"></script>
<script src="/static/monitor.js"></script>
<link rel="stylesheet" href="/static/monitor.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
</head>
<body>
<h1>Resource & Vital Monitor</h1>
<div id="warning-prompt" style="display: none;">
<p><b>Woah There!</b> The server isn't responding, data went bye bye D:</p>
</div>
<div>
<h2>CPU Usage</h2>
<div class="container">
<p id="cpu-usage"></p>
<div class="graph-selector" data-group="cpu-options">
<button class="toggle-button selected" onclick="selectButton(this, 'cpu-options')" name="global-usage">Global Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'cpu-options')" name="core-usage">Per-Core Usage</button>
</div>
</div>
<div style="position: relative; height:80vh; width:100%">
<canvas id="cpu-graph" class="line-graph"></canvas>
</div>
</div>
<div>
<h2>Memory Usage</h2>
<div class="container">
<p id="memory-usage"></p>
<div class="graph-selector" data-group="memory-options">
<button class="toggle-button selected" onclick="selectButton(this, 'memory-options')" name="global-usage">Global Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'memory-options')" name="my-usage">My Usage</button>
</div>
</div>
<div style="position: relative; height:80vh; width:100%;">
<canvas id="memory-graph" class="line-graph"></canvas>
</div>
</div>
<div id="bottom-bar">
<div style="width:50%;">
<h2>Storage Usage</h2>
<div class="container">
<p id="storage-usage"></p>
<div class="graph-selector" data-group="storage-options">
<button class="toggle-button selected" onclick="selectButton(this, 'storage-options')" name="global-usage">Global Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'storage-options')" name="my-usage">My Usage</button>
<button class="toggle-button" onclick="selectButton(this, 'storage-options')" name="directory-usage">By Directory</button>
</div>
</div>
<div style="aspect-ratio: 1/1; width: 80%; margin: 0 auto; margin-top: 1rem;">
<canvas id="storage-graph"></canvas>
</div>
</div>
<div style="width:50%;">
<h2>Usages by PID</h2>
<table class="pid-data" id="pid-chart">
<tr>
<th style="width:10%;">PID</th>
<th style="width:50%;">Process Name</th>
<th style="width:10%;">CPU (%)</th>
<th style="width:10%;">Memory (GB)</th>
<th style="width:20%;">Status</th>
</tr>
</table>
</div>
</div>
</body>
</html>
Open service 37.27.51.34:80 · monitor.felixgao.dev
2025-12-31 23:47
HTTP/1.1 308 Permanent Redirect Connection: close Location: https://monitor.felixgao.dev/ Server: Caddy Date: Wed, 31 Dec 2025 23:47:01 GMT Content-Length: 0