ad4fcd1cfd
First-party plugins for Fabled Scryer (https://github.com/bvandeusen/fabledscryer). traefik: Prometheus metrics scraping, stats history, access log parsing (GeoIP optional) unifi: UniFi controller integration — WAN health, devices, clients, DPI, events ups: UPS monitoring via NUT (Network UPS Tools), Ansible shutdown automation Each plugin follows the Fabled Scryer plugin contract: setup(app), get_scheduled_tasks(), get_blueprint() index.yaml lists all three plugins in the catalog format. Populate checksum_sha256 entries once release zips are published via GitHub Releases. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
827 B
Python
31 lines
827 B
Python
# plugins/traefik/__init__.py
|
|
from __future__ import annotations
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from quart import Quart
|
|
|
|
_app: "Quart | None" = None
|
|
|
|
|
|
def setup(app: "Quart") -> None:
|
|
global _app
|
|
_app = app
|
|
from .models import TraefikMetric, TraefikCert, TraefikGlobalStat, TraefikAccessSummary # noqa: F401
|
|
|
|
|
|
def get_scheduled_tasks() -> list:
|
|
from .scheduler import make_scrape_task, make_access_log_task
|
|
tasks = [make_scrape_task(_app)]
|
|
access_log_cfg = _app.config["PLUGINS"]["traefik"].get("access_log", {})
|
|
if not isinstance(access_log_cfg, dict):
|
|
access_log_cfg = {}
|
|
if access_log_cfg.get("enabled", False):
|
|
tasks.append(make_access_log_task(_app))
|
|
return tasks
|
|
|
|
|
|
def get_blueprint():
|
|
from .routes import traefik_bp
|
|
return traefik_bp
|