Plugin Manager
Extend FleetPilot with plugins for every part of the dashboard
7
Total Plugins
7
Active
0
Errors
7
Hooks Registered
Installed plugins
Available Hook Points
dashboard_widgets (1)
host_card_actions (1)
host_detail_tabs
scanner_result_actions
update_pre_hook
update_post_hook (1)
notification_hook (1)
sidebar_links
navbar_badges
settings_panels
device_buttons (3)
Green = at least one plugin registered. Numbers show registered handler count.
Installed Plugins
Example Dashboard Widget
v1.0.0 · FleetPilot Team
ok
dashboard
Adds a custom info widget to the Home dashboard. Demonstrates the dashboard_widget hook.
Registered hooks:
dashboard_widgets
addons/example_dashboard_widget.py
Host Ping Button
v1.0.0 · FleetPilot Team
ok
hosts
Adds a Ping button to every host card. Shows round-trip time via a lightweight TCP probe.
Registered hooks:
host_card_actions
addons/example_host_ping.py
example_plugin
v1.0.0 · Unknown
ok
Registered hooks:
device_buttons
addons/example_plugin.py
Slack Notification
v1.0.0 · FleetPilot Team
ok
Sends a Slack webhook message after every update run and when a new FleetPilot version is available. Requires SLACK_WEBHOOK_URL env var.
Registered hooks:
update_post_hook
notification_hook
addons/example_slack_notify.py
Remote Disk Manager
v1.0.0 · Unknown
ok
Registered hooks:
device_buttons
addons/remote_disk_plugin.py
tutorial_plugin
v1.0.0 · Unknown
ok
Registered hooks:
device_buttons
addons/tutorial_plugin.py
Plugin Repository
Loading repository…
Write Your Own Plugin
Create a .py file with an addon_meta dict and an optional register(app, core) function. Upload it here to activate it instantly.
addon_meta = {
"name": "My Plugin",
"version": "1.0.0",
"author": "Your Name",
"description": "What this plugin does",
"scope": "global", # global | disks | hosts | dashboard | scanner
# ── Hook registrations (pick any) ───────────────────────────────────────
# Render HTML on the Home dashboard
"dashboard_widget": lambda hosts, stats: "<div class='card'>Hello!</div>",
# Add action buttons to each host card
"host_card_action": lambda host: f"<a href='#demo-unavailable'name']}'>Ping</a>",
# Add a tab to the host detail view
"host_detail_tab": lambda host: {"tab_label": "SSH Keys", "tab_content": "<p>...</p>"},
# Add a link to the sidebar
"sidebar_link": lambda: {"label": "My Tool", "url": "/my_tool", "icon": ""},
# Called after every update run
"update_post": lambda host, result: notify_slack(host, result),
# Add buttons to scanner results
"scanner_action": lambda ip, info: f"<a href='#demo-unavailable'>Connect</a>",
}
def register(app, core):
from flask import Blueprint, render_template
bp = Blueprint("my_plugin", __name__)
@bp.route("/my_tool")
def my_tool():
return "<h1>My Plugin Page</h1>"
app.register_blueprint(bp)
Full Documentation