linuxrouter/docker/routlin-dash/app/pages/overview/content.json

168 lines
4.4 KiB
JSON
Raw Normal View History

2026-05-27 20:56:30 -04:00
{
"client_requirement": "client_is_nothing+",
"items": [
{
"type": "auth_wrapper",
"client_requirement": "client_is_nothing=",
"items": [
{
"type": "auth_card",
"items": [
{
"type": "h1",
"text": "Routlin Dashboard"
},
{
"type": "p",
"text": "Log in to monitor and manage your network."
},
{
"type": "spacer"
},
{
"type": "button_primary",
2026-05-27 22:04:04 -04:00
"action": "/accountlogin",
2026-05-27 20:56:30 -04:00
"text": "Log In"
}
]
}
]
},
{
"type": "header_page_title",
"client_requirement": "client_is_viewer+",
"items": [
{
"type": "h1",
"text": "Overview"
},
{
"type": "p",
"text": "Current network status at a glance."
}
]
},
{
"type": "stat_card_grid",
"client_requirement": "client_is_viewer+",
"items": [
{
"type": "stat_card",
"label": "DHCP Leases",
"value": "%STAT_LEASE_COUNT%",
2026-06-09 20:52:50 -04:00
"sub": "%STAT_LEASES_LINK%",
2026-05-27 20:56:30 -04:00
"variant": "accent"
},
2026-06-09 20:52:50 -04:00
{
"type": "stat_card",
"label": "DNS Queries",
"value": "%DNS_STAT_QUERIES%",
"sub": "since %DNS_METRICS_SINCE%"
},
{
"type": "stat_card",
"label": "DNS Cache",
"value": "%DNS_STAT_HITS% (%DNS_STAT_HIT_RATE% hit rate)",
"sub": "cache size: %DNS_CACHE_SIZE%, evictions: %DNS_STAT_CACHE_EVICTIONS%"
},
2026-05-27 20:56:30 -04:00
{
"type": "stat_card",
"label": "Queries Blocked",
2026-06-09 20:52:50 -04:00
"value": "%STAT_BLOCKED_ALLTIME%",
"sub": "all time",
"variant": "warning",
"data_requirement": "HAS_QUERY_LOGGING"
2026-05-27 20:56:30 -04:00
},
{
"type": "stat_card",
"label": "Public IP",
"value": "%STAT_PUBLIC_IP%",
"sub": "%STAT_DDNS_HOSTNAME%"
}
]
},
{
"type": "card",
2026-06-09 18:57:01 -04:00
"label": "DNS Statistics",
2026-05-27 20:56:30 -04:00
"client_requirement": "client_is_viewer+",
"items": [
{
"type": "grid",
"rows": [
{
"cells": [
2026-06-09 19:31:27 -04:00
{"type": "grid_label", "text": "Tracking Since"},
{"type": "grid_value", "text": "%DNS_METRICS_SINCE%"}
2026-05-27 20:56:30 -04:00
]
},
{
"cells": [
2026-06-09 19:31:27 -04:00
{"type": "grid_label", "text": "Last Updated"},
{"type": "grid_value", "text": "%DNS_METRICS_UPDATED%"}
2026-05-27 20:56:30 -04:00
]
},
{
"cells": [
2026-06-09 19:31:27 -04:00
{"type": "grid_label", "text": "Total Queries"},
{"type": "grid_value", "text": "%DNS_STAT_QUERIES%"}
2026-05-27 20:56:30 -04:00
]
},
{
"cells": [
2026-06-09 19:31:27 -04:00
{"type": "grid_label", "text": "Cache Hits"},
{"type": "grid_value", "text": "%DNS_STAT_HITS% (%DNS_STAT_HIT_RATE% hit rate)"}
2026-05-27 20:56:30 -04:00
]
},
{
"cells": [
2026-06-09 19:31:27 -04:00
{"type": "grid_label", "text": "Forwarded to Upstream"},
{"type": "grid_value", "text": "%DNS_STAT_FORWARDED%"}
2026-05-27 20:56:30 -04:00
]
},
{
"cells": [
2026-06-09 18:57:01 -04:00
{"type": "grid_label", "text": "Cache Capacity"},
{"type": "grid_value", "text": "%DNS_CACHE_SIZE% entries"}
2026-05-27 20:56:30 -04:00
]
},
{
"cells": [
2026-06-09 19:31:27 -04:00
{"type": "grid_label", "text": "Cache Evictions"},
{"type": "grid_value", "text": "%DNS_STAT_CACHE_EVICTIONS%"}
2026-05-27 20:56:30 -04:00
]
}
]
2026-06-09 19:31:27 -04:00
},
{
"type": "raw_html",
"html": "%DNS_PROVIDERS_TABLE%"
2026-05-27 20:56:30 -04:00
}
]
2026-06-09 20:52:50 -04:00
},
{
"type": "card",
"label": "Blocked Domains",
"client_requirement": "client_is_viewer+",
"data_requirement": "HAS_QUERY_LOGGING",
"items": [
{
"type": "raw_html",
"html": "%BLOCKED_DOMAINS_TABLE%"
}
]
},
{
"type": "card",
"label": "Client Activity",
"client_requirement": "client_is_viewer+",
"data_requirement": "HAS_QUERY_LOGGING",
"items": [
{
"type": "raw_html",
"html": "%CLIENT_ACTIVITY_TABLE%"
}
]
2026-05-27 20:56:30 -04:00
}
]
2026-06-09 20:52:50 -04:00
}