Dashboard¶
The generated dashboard is served from status.<domain> and written to
/data/index.html during bootstrap. It is a dependency-free operational view,
not a replacement for full monitoring or certificate observability.
Primary Workflows¶
Overview¶
The first section summarizes:
- configured upstream count,
- latest successful HTTP reachability checks,
- latest successful TLS/HTTPS reachability checks,
- whether the built Caddy version appears current.
HTTP error responses still count as reachable because the target returned a response. This distinguishes network reachability from application health.
Services¶
- Filter by service name, public URL, or upstream target.
- Use Run all checks to refresh every service.
- Use per-service Check ping and Check TLS actions for focused retries.
- Open public endpoints in a new tab from the service table.
The browser checks the server-side status.<domain>/probe/<service>/ routes.
They do not expose the peer certificate chain, cipher, or expiry details.
Responses below HTTP 500 count as reachable—even when authentication returns 401 or
a route returns 404—while HTTP 5xx responses count as failed service checks.
Certificates¶
- The local snapshot comes from
/crtsh-state.json. - Server-side snapshot downloads are size-bounded, malformed rows are ignored, and at most 5,000 valid rows are persisted. Metadata retains the total valid-row count and reports whether storage was truncated.
- Refresh live queries crt.sh through
/probe/crtshto avoid browser CORS restrictions. - Browser JSON reads are aborted when they exceed 8 MiB, including streamed
responses without a trustworthy
Content-Lengthheader. - Certificate history can be filtered client-side.
- At most 200 matching history rows are inserted into the DOM to keep large result sets responsive.
ACME¶
The ACME section presents state, subjects, generation time, and the runtime note as a definition list. Raw JSON remains available inside a collapsed disclosure for diagnosis.
Accessibility and Interaction¶
- Semantic
header,nav,main,section, table, caption, and heading structure. - A keyboard-visible skip link to the main dashboard content.
- Strong
:focus-visibleindicators and controls at least 44 px high. - Native buttons, links, inputs, tables, and disclosure elements rather than custom ARIA widgets.
- Polite status regions for asynchronous operations and filter results.
- Responsive service records with visible field labels on narrow screens.
- System color-scheme detection plus persisted light and dark overrides.
- Reduced animation when
prefers-reduced-motion: reduceis active. - Stronger borders when
prefers-contrast: moreis active.
The theme control cycles through system, light, and dark. The chosen override is stored in local browser storage when available.
Keyboard Use¶
- Press
Tabafter opening the page to reveal the skip link. - Use the section navigation links to move between dashboard areas.
- Use standard
Tab,Shift+Tab,Enter, andSpacebehavior for controls. - Type directly in either search field to filter its associated table.
Operational Limitations¶
- Browser TLS checks are reachability probes, not full certificate inspection.
- crt.sh is an external service and may be unavailable or rate limited.
- The dashboard is currently unauthenticated unless protected by surrounding
network or proxy policy; this remains tracked in
issues.yml. - The page deliberately has no frontend framework or external asset dependency, so it remains usable from the generated runtime directory.