{% extends "ui/_layout.html" %} {% block title %}Dashboard - nbdmux{% endblock %} {% block subnav %} {% endblock %} {% block intro %}
Nbdmux overview. Exports currently multiplexed, warm-pipeline health, upstream withcache reachability, and the most recent ready-set changes. Drill into Exports for the row-level view.
{% endblock %} {% block content %}
  • Total registered {{ exports_total }}
  • Ready (visible on nbd-server) {{ ready_count }}
  • {% if pending_count %}
  • Warming in flight {{ pending_count }}
  • {% endif %} {% if failed_count %}
  • Failed {{ failed_count }}
  • {% endif %}
  • Catalog entries visible on upstream {{ catalog_count }}
  • NBD listener port {{ nbd_port }}
Health {% set _checks = sanity | rejectattr("info") | list %} {% set _ok = _checks | selectattr("ok") | list | length %} {{ _ok }} / {{ _checks | length }} OK
    {% for s in sanity %}
  • {% if s.info %} {% elif s.ok %} {% else %} {% endif %} {% if s.href or s.fix_href %} {{ s.label }}
    {{ s.detail }}
    {% else %}
    {{ s.label }}
    {{ s.detail }}
    {% endif %}
  • {% endfor %}
Recent exports Open exports →
{% for e in recent_exports %} {% endfor %} {% if not recent_exports %} {% endif %}
Name Status Size
{{ e.name }} {% if e.status == 'ready' %} ready {% elif e.status == 'pending' %} pending {% elif e.status == 'failed' %} failed {% else %} {{ e.status or '-' }} {% endif %} {% if e.size %}{{ e.size }}{% else %}-{% endif %}
No exports yet. Pick a catalog entry on Exports or drop a pre-warmed .img in <images-dir> and register it via POST /exports.
{% endblock %}