Add container/VM autodiscovery, optional username in config, and management scripts
This commit is contained in:
@@ -234,6 +234,60 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Containers / VMs -->
|
||||
{% set containers = d.get('container', []) if d.get('container') else [] %}
|
||||
{% if containers %}
|
||||
<div class="detail-section wide">
|
||||
<h4>Containers & VMs</h4>
|
||||
<div class="container-grid">
|
||||
{% for ct in containers %}
|
||||
{% set ct_running = ct.get('status', '')|lower in ['running', 'started'] %}
|
||||
<div class="container-card {% if not ct_running %}offline{% endif %}">
|
||||
<div class="ct-header">
|
||||
<span class="status-dot {% if ct_running %}online{% else %}offline{% endif %}"></span>
|
||||
<span class="ct-name">{{ ct.get('name', ct.get('id', '?')) }}</span>
|
||||
<span class="ct-type">{{ ct.get('type', '')|upper }}</span>
|
||||
</div>
|
||||
{% if ct_running %}
|
||||
<div class="ct-details">
|
||||
{% if ct.get('ip') %}
|
||||
<span class="ct-ip">{{ ct.get('ip') }}</span>
|
||||
{% endif %}
|
||||
{% if ct.get('uptime_seconds') %}
|
||||
<span class="ct-uptime">{{ ct.get('uptime_seconds', '')|format_uptime }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if ct.get('mem_percent') %}
|
||||
<div class="usage-bars">
|
||||
<div class="usage-row">
|
||||
<span class="usage-label">RAM</span>
|
||||
<div class="usage-bar-bg">
|
||||
<div class="usage-bar-fill" style="width: {{ ct.get('mem_percent', 0) }}%; background: {{ ct.get('mem_percent', '0')|float|usage_color }};"></div>
|
||||
</div>
|
||||
<span class="usage-pct">{{ ct.get('mem_percent', '0') }}%</span>
|
||||
</div>
|
||||
{% if ct.get('disk_percent') %}
|
||||
<div class="usage-row">
|
||||
<span class="usage-label">DISK</span>
|
||||
<div class="usage-bar-bg">
|
||||
<div class="usage-bar-fill" style="width: {{ ct.get('disk_percent', 0) }}%; background: {{ ct.get('disk_percent', '0')|float|usage_color }};"></div>
|
||||
</div>
|
||||
<span class="usage-pct">{{ ct.get('disk_percent', '0') }}%</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="ct-details">
|
||||
<span class="ct-status-label">{{ ct.get('status', 'stopped') }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if d.get('error') %}
|
||||
<div class="detail-section wide">
|
||||
<h4>Error</h4>
|
||||
|
||||
Reference in New Issue
Block a user