141 lines
4.3 KiB
JSON
141 lines
4.3 KiB
JSON
{
|
|
"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
|
|
}
|
|
]
|
|
}
|
|
}
|