librelad 875a60f90f LibrePortal v0.1.0 — initial release
A free, open, self-hosted app platform (GNU AGPLv3): one-click app deploys,
Traefik reverse proxy with automatic SSL, rootless Docker support, gluetun
VPN routing, and a web dashboard to manage it all.

Free & open forever to self-host; optional paid hosted services fund it.
See PROMISE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-21 20:37:54 +01:00

65 lines
3.5 KiB
JSON

{
"annotations": { "list": [{ "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" }] },
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [
{
"datasource": { "type": "prometheus", "uid": "Prometheus" },
"fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } },
"gridPos": { "h": 4, "w": 8, "x": 0, "y": 0 },
"id": 1,
"options": { "colorMode": "value", "graphMode": "area", "reduceOptions": { "calcs": ["lastNotNull"] }, "textMode": "auto" },
"targets": [{ "datasource": { "type": "prometheus", "uid": "Prometheus" }, "expr": "count(wireguard_latest_handshake_seconds)", "refId": "A" }],
"title": "Configured Peers",
"type": "stat"
},
{
"datasource": { "type": "prometheus", "uid": "Prometheus" },
"fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } },
"gridPos": { "h": 4, "w": 8, "x": 8, "y": 0 },
"id": 2,
"options": { "colorMode": "value", "graphMode": "area", "reduceOptions": { "calcs": ["lastNotNull"] }, "textMode": "auto" },
"targets": [{ "datasource": { "type": "prometheus", "uid": "Prometheus" }, "expr": "count(time() - wireguard_latest_handshake_seconds < 180)", "refId": "A" }],
"title": "Active Peers (handshake < 3m)",
"type": "stat"
},
{
"datasource": { "type": "prometheus", "uid": "Prometheus" },
"fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] }, "unit": "decbytes" } },
"gridPos": { "h": 4, "w": 8, "x": 16, "y": 0 },
"id": 3,
"options": { "colorMode": "value", "graphMode": "area", "reduceOptions": { "calcs": ["lastNotNull"] }, "textMode": "auto" },
"targets": [{ "datasource": { "type": "prometheus", "uid": "Prometheus" }, "expr": "sum(wireguard_received_bytes_total + wireguard_sent_bytes_total)", "refId": "A" }],
"title": "Total Bytes Transferred",
"type": "stat"
},
{
"datasource": { "type": "prometheus", "uid": "Prometheus" },
"fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "drawStyle": "line", "fillOpacity": 10, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "showPoints": "never", "spanNulls": false }, "unit": "Bps" } },
"gridPos": { "h": 9, "w": 24, "x": 0, "y": 4 },
"id": 4,
"options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } },
"targets": [
{ "datasource": { "type": "prometheus", "uid": "Prometheus" }, "expr": "sum(rate(wireguard_received_bytes_total[5m]))", "legendFormat": "rx", "refId": "A" },
{ "datasource": { "type": "prometheus", "uid": "Prometheus" }, "expr": "sum(rate(wireguard_sent_bytes_total[5m]))", "legendFormat": "tx", "refId": "B" }
],
"title": "Traffic",
"type": "timeseries"
}
],
"refresh": "30s",
"schemaVersion": 38,
"tags": ["libreportal", "wireguard"],
"templating": { "list": [] },
"time": { "from": "now-6h", "to": "now" },
"timepicker": {},
"timezone": "",
"title": "WireGuard",
"uid": "libreportal-wireguard",
"version": 1,
"weekStart": ""
}