{# steward/templates/settings/plugins.html #} {% extends "base.html" %} {% from "_macros.html" import crumbs %} {% block title %}Settings — Plugins — Steward{% endblock %} {% block breadcrumb %}{{ crumbs([("Settings", "/settings/"), ("Plugins", "")]) }}{% endblock %} {% block content %} {% set active_tab = "plugins" %} {% include "settings/_tabs.html" %} {# ── 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 %} 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

Built-in ways to monitor your hosts (agent metrics, SNMP, Docker). These are facets of a host — you'll see their data in the Hosts and Status sections, 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.

{% if integrations %}
{% for plugin in integrations %}{{ plugin_card(plugin) }}{% endfor %}
{% else %}
No integrations installed. Browse the catalog below.
{% 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 or an install failed part-way, 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 %}
{% endif %}
{% endfor %}
{% endif %} {# ── Plugin Repositories ───────────────────────────────────────────────────── #}
Plugin Repositories

Repositories are remote index.yaml files that Steward checks for available and updated plugins. Add repos from other developers to expand the plugin catalog.

{% include "settings/_plugin_repos.html" %}
{# ── Plugin Catalog ────────────────────────────────────────────────────────── #}
Plugin Catalog
{% if repos %}
Loading catalog…
{% else %}
Add a plugin repository above to browse available plugins.
{% endif %}
{% endblock %}