{ "title": "Pi-hole", "version": "0.1.0", "description": "Pi-hole Monitoring, Listen und Steuerung fuer mehrere Instanzen.", "enabled_by_default": true, "app_scope": "module", "installable": true, "desktop": { "available": true, "show_on_desktop": true, "show_in_start_menu": true }, "widgets": [ { "widget_id": "pihole-maintenance", "title": "Pi-hole Wartung", "icon": "PH", "zone": "sidebar", "default_enabled": false, "supports_public_home": false, "summary": "Gravity-Update und Listen-Refresh direkt aus dem Desktop.", "content": "Schnellaktionen fuer die Pflege der Pi-hole-Instanzen.", "launch_app_id": "pihole", "action_label": "App oeffnen", "widget_type": "action-panel", "status_api": "/api/pihole/index.php?action=widget_status", "actions": [ { "action_id": "gravity", "label": "Gravity aktualisieren", "endpoint": "/api/pihole/index.php?action=gravity", "method": "POST", "payload": { "instance": "primary" } }, { "action_id": "update", "label": "Pi-hole updaten", "endpoint": "/api/pihole/index.php?action=update", "method": "POST", "payload": { "instance": "primary" }, "variant": "secondary" } ] } ], "cron_jobs": [ { "job_id": "gravity-primary", "label": "Pi-hole Gravity Update", "description": "Aktualisiert die Blocklisten auf der Primaer-Instanz.", "endpoint_path": "/api/pihole/index.php?action=gravity", "method": "POST", "payload": { "instance": "primary", "trigger_source": "cron" }, "default_enabled": false, "default_cron": "20 4 * * *", "lock_minutes": 30 }, { "job_id": "update-primary", "label": "Pi-hole Systemupdate", "description": "Startet ein Update der Primaer-Instanz.", "endpoint_path": "/api/pihole/index.php?action=update", "method": "POST", "payload": { "instance": "primary", "trigger_source": "cron" }, "default_enabled": false, "default_cron": "50 4 * * 0", "lock_minutes": 45 } ], "setup": { "fields": [ { "name": "api_path", "label": "API Pfad", "type": "text", "help": "Standard ist /admin/api.php fuer v5-Instanzen. v6 wird automatisch erkannt.", "required": false }, { "name": "verify_tls", "label": "TLS Zertifikate pruefen", "type": "checkbox", "help": "Bei internen Testsystemen nur deaktivieren, wenn self-signed Zertifikate genutzt werden.", "required": false }, { "name": "api_timeout_sec", "label": "API Timeout Standard (Sekunden)", "type": "number", "help": "Timeout fuer normale Pi-hole API-Abfragen wie Dashboard und Queries. Standard: 8 Sekunden.", "required": false }, { "name": "action_timeout_sec", "label": "API Timeout Aktionen (Sekunden)", "type": "number", "help": "Timeout fuer laengere Aktionen wie Listen- oder Pi-hole-Updates. Standard: 120 Sekunden.", "required": false }, { "name": "dashboard_refresh_sec", "label": "Refresh Dashboard (Sekunden)", "type": "number", "help": "Automatische Aktualisierung fuer das Dashboard. Standard: 1 Sekunde. 0 deaktiviert den Auto-Refresh.", "required": false }, { "name": "lists_refresh_sec", "label": "Refresh Listen (Sekunden)", "type": "number", "help": "Automatische Aktualisierung fuer die Listen-Seite. Standard: 5 Sekunden. 0 deaktiviert den Auto-Refresh.", "required": false }, { "name": "queries_refresh_sec", "label": "Refresh Queries (Sekunden)", "type": "number", "help": "Automatische Aktualisierung fuer die Queries-Seite. Standard: 5 Sekunden. 0 deaktiviert den Auto-Refresh.", "required": false }, { "name": "lists_primary_only", "label": "Listen nur auf Primaer-Instanz bearbeiten", "type": "checkbox", "help": "Erzwingt Listen- und Domain-Aenderungen nur auf der Primaer-Instanz.", "required": false } ] } }