Skip to content

Dashboard

The ops dashboard lives at web.level147.net and is protected by Cloudflare Access + Authentik SSO. It is a Next.js app served from a Docker container behind a Cloudflare tunnel.

Access

  1. Navigate to https://web.level147.net
  2. Cloudflare Access prompts for your identity (Authentik OIDC)
  3. After authentication the dashboard loads directly

Layout

The dashboard uses an 8-column CSS grid (4-column on smaller screens) with rows of 160 px. Widgets can be dragged to reorder and resized to any supported size.

Edit mode

Click the pencil icon (top-right of the dashboard) to enter edit mode. Each widget shows:

  • A drag handle at the top — drag to reorder within the section
  • A size picker at the bottom — select from 1×1, 1×2, 2×2, 4×2, 2×4, 4×4, 8×2

Click the lock icon to exit edit mode and lock the layout. Sizes and order are saved in the browser (localStorage).

Adaptive rendering

Every widget renders meaningfully at each size — not just scaled. Each size key has a distinct layout:

SizeSemanticWhat you see
1×1, 1×2Tiny/glanceIcon + single number
2×2CompactHero KPI + status
4×2StripKPI panel left, detail right
2×4DetailKPI top, scrollable list
4×4, 8×4ExpandedFull panel with all data
8×2BannerFull-width headline + summary

Sections

The dashboard is divided into sections — each section has its own independent drag context:

SectionContents
NetworkTailscale, Cloudflared, Host Resources
ContainersDocker, Portainer
MonitoringUptime Kuma
InfrastructurePrometheus multi-host
SecurityFail2ban

Widgets

See Widgets for the full widget reference including data sources, API routes, and development guide.

v0.1.0 · d0d7a20 · 2026-06-26