{# steward/templates/settings/plugins.html #} {% extends "base.html" %} {% from "_macros.html" import crumbs %} {% block title %}Settings — Plugins — Steward{% endblock %} {% from "settings/_tabs.html" import settings_tabs %} {% block section_tabs %}{{ settings_tabs("plugins") }}{% endblock %} {% block breadcrumb %}{{ crumbs([("Settings", "/settings/"), ("Plugins", "")]) }}{% endblock %} {% block content %} {# ── Restart banner ────────────────────────────────────────────────────────── #}
{% macro plugin_card(plugin) %} {% set fail_reason = plugin_failures.get(plugin._dir) %}
{% if fail_reason %} {% elif plugin._enabled %} {% else %} {% endif %}
{{ plugin.get('name', plugin._dir) }} v{{ plugin.get('version', '?') }} {% if fail_reason %} Error {% elif plugin._enabled %} {{ "Built in" if plugin._always_on else "Enabled" }} {% else %} Disabled {% endif %}
{% if plugin.get('description') %}
{{ plugin.description }}
{% endif %} {% if fail_reason %}
{{ fail_reason }}
{% endif %}
Settings →
{% endmacro %} {# ── Monitoring capabilities (host facets) ─────────────────────────────────── #}
Monitoring capabilities
{{ csrf_field() }}

Built-in ways to monitor your hosts (agent metrics, SNMP, Docker). These are facets of a host — you'll see their data on each host in Hosts, not as separate areas. On by default.

{% if capabilities %}
{% for plugin in capabilities %}{{ plugin_card(plugin) }}{% endfor %}
{% else %}
None installed.
{% endif %} {# ── Integrations (external systems) ───────────────────────────────────────── #}
Integrations

External systems Steward pulls data from (e.g. Traefik, UniFi). Enable and configure each one to surface its own dashboard. Off until you set them up. A plugin of your own goes in /data/plugins; restart and it appears here.

{% if integrations %}
{% for plugin in integrations %}{{ plugin_card(plugin) }}{% endfor %}
{% else %}
No integrations installed.
{% endif %} {# ── Orphaned settings ─────────────────────────────────────────────────────── #} {# Hidden entirely when there is nothing to clean up — an empty "Configured but not installed" panel would read as a problem rather than a clean state. #} {% if orphaned_plugins %}
Configured but not installed

Plugins Steward has settings for, or tried to load, but cannot find on disk — including anything counted by the "failed to load" banner. This usually means the plugin was removed, but it also happens when an external plugin directory isn't mounted, so nothing is deleted automatically. Removing an entry discards that plugin's saved configuration, including any credentials.

{% for orphan in orphaned_plugins %}
{{ orphan.name }} {% if orphan.reason %} Failed to load {% else %} Not installed {% endif %}
{% if orphan.reason %}
{{ orphan.reason }}
{% endif %}
{% if orphan.removable %} Settings key plugin.{{ orphan.name }} has no matching plugin. {% else %} Enabled by a built-in default with no stored settings to remove — this is a packaging bug, not leftover configuration. Please report it. {% endif %}
{% if orphan.removable %}
{{ csrf_field() }}
{% endif %}
{% endfor %}
{% endif %} {% endblock %}