Add temperature monitoring and optional server URL links to dashboard
All checks were successful
Build-Publish / build (linux/amd64) (push) Successful in 5s
Build-Publish / build (linux/arm64) (push) Successful in 11s
Build-Publish / create-manifest (push) Successful in 2s
Build-Publish / publish-template (push) Successful in 7s

This commit is contained in:
j
2026-03-07 23:08:57 +13:00
parent d8338bbf82
commit df29cd88de
5 changed files with 96 additions and 4 deletions

View File

@@ -23,6 +23,13 @@
{% set sys = d.get('system', {}) if d.get('system') else {} %}
{% set cpu = d.get('cpu', {}) if d.get('cpu') else {} %}
{% set mem = d.get('memory', {}) if d.get('memory') else {} %}
{% set temps = d.get('temperatures', {}) if d.get('temperatures') else {} %}
{% set max_temp = namespace(val=0.0) %}
{% for k, v in temps.items() %}
{% if v|float > max_temp.val %}
{% set max_temp.val = v|float %}
{% endif %}
{% endfor %}
{% set cpu_pct = cpu.get('usage_percent', '0')|float %}
{% set mem_pct = mem.get('usage_percent', '0')|float %}
{% set disk_usages = d.get('disk_usage', []) if d.get('disk_usage') else [] %}
@@ -42,6 +49,9 @@
<div class="card-header">
<span class="status-dot {% if server.is_online %}online{% else %}offline{% endif %}"></span>
<span class="server-name">{{ server.hostname }}</span>
{% if server.url %}
<a href="{{ server.url }}" class="server-link" target="_blank" rel="noopener" onclick="event.stopPropagation();" title="{{ server.url }}">&#x2197;</a>
{% endif %}
</div>
<div class="server-ip">{{ server.primary_ip or 'No IP' }}</div>
<div class="server-os">{{ sys.get('os_pretty', '') }}</div>
@@ -69,6 +79,15 @@
</div>
<span class="usage-pct">{{ '%.0f'|format(root_disk.pct) }}%</span>
</div>
{% if max_temp.val > 0 %}
<div class="usage-row">
<span class="usage-label">TEMP</span>
<div class="usage-bar-bg">
<div class="usage-bar-fill" style="width: {{ [max_temp.val, 100.0]|min }}%; background: {{ max_temp.val|temp_color }};"></div>
</div>
<span class="usage-pct">{{ '%.0f'|format(max_temp.val) }}°</span>
</div>
{% endif %}
</div>
{% else %}
<div class="offline-label">Unreachable</div>
@@ -105,6 +124,21 @@
</table>
</div>
<!-- Temperatures -->
{% if temps %}
<div class="detail-section">
<h4>Temperatures</h4>
<table>
{% for sensor, value in temps.items() %}
<tr>
<td>{{ sensor }}</td>
<td style="color: {{ value|float|temp_color }}">{{ value }}°C</td>
</tr>
{% endfor %}
</table>
</div>
{% endif %}
<!-- Memory -->
<div class="detail-section">
<h4>Memory</h4>