{% macro donut(label, pct, subtitle, value_text=None) %}
{% set p = pct if pct is not none else 0 %}
{% if p < 0 %}{% set p=0 %}{% endif %} {% if p> 100 %}{% set p = 100 %}{% endif %}
{% if p < 60 %} {% set col="#16a34a" %} {% elif p < 85 %} {% set col="#f59e0b" %} {% else %} {% set col="#ef4444" %}
{% endif %} {% set r=24 %} {% set stroke=10 %} {% set c=2 * 3.1415926 * r %} {% set dash=(p / 100.0) * c %} {%
set txt=value_text if value_text else (p|round(0) ~ "%" ) %}
{% endmacro %}
Live usage
{{ donut("CPU", data.gauges.cpu_total_pct, "Sum of container CPU% (clamped)") }}
{{ donut("RAM", data.gauges.ram_pct, "All containers vs host RAM", (data.gauges.ram_used_h ~ " / " ~
data.gauges.ram_total_h)) }}
{{ donut("Docker disk", data.gauges.docker_images_pct, "Images used vs total store") }}
System
Host
{{ data.system.name or "—" }}
{{ data.system.operating_system }} · {{ data.system.kernel_version }}
Compute
{{ data.system.cpus or "—" }} CPUs
{{ data.system.mem_total_h or "—" }} RAM
Docker
Engine: {{ data.system.server_version or "—" }}
Images: {{ data.system.images or "—" }}
Containers: {{ data.system.containers_running or "—" }} running / {{
data.system.containers_stopped or "—" }} stopped
Docker disk usage
| Type |
Total |
Active |
Size |
Reclaimable |
{% for typ, r in data.system.system_df.items() %}
| {{ typ }} |
{{ r.total }} |
{{ r.active }} |
{{ r.size }} |
{{ r.reclaimable }} |
{% endfor %}
Generated at: {{ data.generated_at }}
{% if data.warnings %}
Warnings
{% for w in data.warnings %}
- {{ w }}
{% endfor %}
{% endif %}
Apps
| App |
URL |
Status |
CPU |
RAM |
Restarts |
Image |
{% for r in data.apps %}
| {{ r.app }} |
{{ r.url }} |
{{ r.status }} |
{{ r.cpu or "—" }} |
{% if r.mem_used %}
{{ r.mem_used }} / {{ r.mem_limit }} ({{ r.mem_pct }})
{% else %} — {% endif %}
|
{{ r.restarts }} |
{{ r.image }} |
{% endfor %}
{% if data.infra %}
Infra
| Container |
Status |
CPU |
RAM |
Restarts |
Image |
{% for r in data.infra %}
| {{ r.container }} |
{{ r.status }} |
{{ r.cpu or "—" }} |
{% if r.mem_used %}
{{ r.mem_used }} / {{ r.mem_limit }} ({{ r.mem_pct }})
{% else %} — {% endif %}
|
{{ r.restarts }} |
{{ r.image }} |
{% endfor %}
{% endif %}