Server Dashboard — Cluster-Wide Service Dashboard
Purpose
The dashboard module integrates with Dashy and collects dashboard sections from all servers in the cluster to display on the IO Coordinator (server.ioPrimaryHost). This allows each server to define its own dashboard items, which are then automatically collected and displayed on a single unified dashboard.
Entry Point
- Main file:
modules/nixos/server/dashboard.nix
Options
server.dashboard.displayData
| Type | JSON value |
| Default | { } |
Display data for the section in the dashboard.
server.dashboard.icon
| Type | null or string |
| Default | null |
Icon for the section in the dashboard.
server.dashboard.items
| Type | attribute set of (submodule) |
Additional configuration for items managed by the IO Hosts dashy instance. This will be merged with the automatically generated configuration that is nested in a section with the name of the machine.
server.dashboard.items.<name>.icon
| Type | string |
Icon for the item.
server.dashboard.items.<name>.title
| Type | string |
Title of the item.
server.dashboard.items.<name>.url
| Type | string |
URL for the item.
server.dashboard.name
| Type | string |
| Default | let withoutPrefix = removePrefix "nix" config.host.name; nixPrefixed = builtins.stringLength withoutPrefix < builtins.stringLength config.host.name; in if nixPrefixed then "Nix${lib.mine.strings.capitalise withoutPrefix}" else lib.capitalize config.host.name; |
Name of the section in the dashboard.
Architecture / Services / Scope
- This module uses
getAllAttrsFuncto gatherserver.dashboardconfigurations from all servers in the cluster. - The aggregated configuration is only applied to the IO Coordinator (
server.ioPrimaryHost), which runs the primary Dashy instance.
Operational Notes / Assumptions
- Each server defines its own
server.dashboardsection (name, icon, and items) in its host configuration; the items are aggregated cluster-wide.