{% extends "base.html" %} {% set active_page = 'ecosystem' %} {% block title %}Ecosystem — Maude Front Desk{% endblock %} {% block content %} {# ── Infrastructure — Shop Floor ──────────────────────────────── #}

Shop Floor

PLCs, sensors, production equipment
{# Sites #}
PVE Nodes
{% if infrastructure.sites %} {% for name, site in infrastructure.sites.items() %} {% endfor %}
SiteNodeIPVLANs
{{ name }} {{ site.pve_node }} {{ site.ip }} {{ site.vlans | join(', ') }}
{% endif %}
{# PLCs #}
PLCs
{% if infrastructure.plcs %} {% for name, plc in infrastructure.plcs.items() %} {% endfor %}
NameIPController
{{ name }} {{ plc.ip }} {{ plc.controller }}
{% endif %}
{# Storage #}
UNAS Storage
{% if infrastructure.storage %} {% for name, store in infrastructure.storage.items() %} {% endfor %}
NameIPMountCapacity
{{ name }} {{ store.ip }} {{ store.mount }} {{ store.capacity }}
{% endif %}
{# ── Room Layers (HTMX-refreshable) ──────────────────────────── #}
{% include "fragments/ecosystem_rooms.html" %}
{# ── Off-Limits ───────────────────────────────────────────────── #}

Off-Limits

Guest VMs — backup and monitor only, no modifications
{% if infrastructure.off_limits %} {% for vm in infrastructure.off_limits %} {% endfor %}
VMIDNamePolicy
{{ vm.vmid }} {{ vm.name }} protect only
{% endif %}
{% endblock %}