{% extends "base.html" %}
{% set active_page = 'ecosystem' %}
{% block title %}Ecosystem — Maude Front Desk{% endblock %}
{% block content %}
{# ── Infrastructure — Shop Floor ──────────────────────────────── #}
{# Sites #}
PVE Nodes
{% if infrastructure.sites %}
| Site | Node | IP | VLANs |
{% for name, site in infrastructure.sites.items() %}
| {{ name }} |
{{ site.pve_node }} |
{{ site.ip }} |
{{ site.vlans | join(', ') }} |
{% endfor %}
{% endif %}
{# PLCs #}
PLCs
{% if infrastructure.plcs %}
| Name | IP | Controller |
{% for name, plc in infrastructure.plcs.items() %}
| {{ name }} |
{{ plc.ip }} |
{{ plc.controller }} |
{% endfor %}
{% endif %}
{# Storage #}
UNAS Storage
{% if infrastructure.storage %}
| Name | IP | Mount | Capacity |
{% for name, store in infrastructure.storage.items() %}
| {{ name }} |
{{ store.ip }} |
{{ store.mount }} |
{{ store.capacity }} |
{% endfor %}
{% endif %}
{# ── Room Layers (HTMX-refreshable) ──────────────────────────── #}
{% include "fragments/ecosystem_rooms.html" %}
{# ── Off-Limits ───────────────────────────────────────────────── #}
{% if infrastructure.off_limits %}
| VMID | Name | Policy |
{% for vm in infrastructure.off_limits %}
| {{ vm.vmid }} |
{{ vm.name }} |
protect only |
{% endfor %}
{% endif %}
{% endblock %}