StackPanel

panels

Configuration options for stackpanel.panels

Panels Options

panelModules

List of module names that have registered panels

PropertyValue
Typelist of string
Defaultnone
Read Onlytrue

panels

UI panels for core Stackpanel modules.

Panels are UI components that display information about a module's state, configuration, or managed resources. Unlike extension panels, these belong to built-in modules like Go, Caddy, Healthchecks, etc.

Example: stackpanel.panels.go-status = { module = "go"; title = "Go Environment"; type = "PANEL_TYPE_STATUS"; order = 10; fields = [ { name = "metrics"; type = "FIELD_TYPE_STRING"; value = "..."; } ]; };

PropertyValue
Typeattribute set of (submodule)
Default{ }

Example:

{
  go-status = {
    module = "go";
    title = "Go Environment";
    type = "PANEL_TYPE_STATUS";
    order = 10;
    fields = [
      {
        name = "metrics";
        type = "FIELD_TYPE_STRING";
        value = builtins.toJSON [
          { label = "Go Version"; value = "1.22"; status = "ok"; }
          { label = "Apps"; value = "3"; status = "ok"; }
        ];
      }
    ];
  };
  caddy-status = {
    module = "caddy";
    title = "Reverse Proxy";
    type = "PANEL_TYPE_STATUS";
    order = 20;
    fields = [ ... ];
  };
}

panels.<name>.apps

Per-app data for apps grid panels

PropertyValue
Typeattribute set of (submodule)
Default{ }

panels.<name>.apps.<name>.config

This option has no description.

PropertyValue
Typeattribute set of string
Default{ }

panels.<name>.apps.<name>.enabled

This option has no description.

PropertyValue
Typeboolean
Defaulttrue

panels.<name>.columns

Column definitions for table panels

PropertyValue
Typelist of (submodule)
Default[ ]

panels.<name>.columns.*.key

Column key (matches row data)

PropertyValue
Typestring
Defaultnone

panels.<name>.columns.*.label

Column header label

PropertyValue
Typestring
Defaultnone

panels.<name>.description

Optional description shown below the title

PropertyValue
Typenull or string
Defaultnull

panels.<name>.enabled

Whether this panel is enabled and should be shown

PropertyValue
Typeboolean
Defaulttrue

panels.<name>.fields

Panel configuration fields passed to the component

PropertyValue
Typelist of (submodule)
Default[ ]

panels.<name>.fields.*.configPath

Nix config path for saving field value (e.g., 'stackpanel.deployment.fly.organization')

PropertyValue
Typenull or string
Defaultnull

panels.<name>.fields.*.description

Help text shown below the field

PropertyValue
Typenull or string
Defaultnull

panels.<name>.fields.*.editPath

Dot-separated path within the app's config for writes. E.g., "go.mainPackage" tells the agent to patch apps..go.mainPackage in the data file.

PropertyValue
Typenull or string
Defaultnull

panels.<name>.fields.*.editable

Whether the field can be modified from the UI

PropertyValue
Typeboolean
Defaultfalse

panels.<name>.fields.*.example

Example value shown as help text

PropertyValue
Typenull or string
Defaultnull

panels.<name>.fields.*.label

Human-readable label for the field (defaults to name if null)

PropertyValue
Typenull or string
Defaultnull

panels.<name>.fields.*.name

Field name (maps to component prop)

PropertyValue
Typestring
Defaultnone

panels.<name>.fields.*.options

Options for select fields (strings or {value, label} objects)

PropertyValue
Typelist of (string or (submodule))
Default[ ]

panels.<name>.fields.*.placeholder

Placeholder text for input fields

PropertyValue
Typenull or string
Defaultnull

panels.<name>.fields.*.type

Field type

PropertyValue
Typeone of "FIELD_TYPE_UNSPECIFIED", "FIELD_TYPE_STRING", "FIELD_TYPE_NUMBER", "FIELD_TYPE_BOOLEAN", "FIELD_TYPE_SELECT", "FIELD_TYPE_MULTISELECT", "FIELD_TYPE_APP_FILTER", "FIELD_TYPE_COLUMNS", "FIELD_TYPE_JSON", "FIELD_TYPE_CODE"
Default"FIELD_TYPE_STRING"

panels.<name>.fields.*.value

Field value (JSON-encoded for complex types, null if unset)

PropertyValue
Typenull or string
Default""

panels.<name>.icon

Icon name from lucide-react (e.g., 'server', 'database')

PropertyValue
Typenull or string
Defaultnull

panels.<name>.module

The core module this panel belongs to (e.g., "go", "caddy", "healthchecks"). Used for grouping panels in the UI.

PropertyValue
Typestring
Defaultnone

panels.<name>.order

Display order within the module (lower = first)

PropertyValue
Typesigned integer
Default100

panels.<name>.readme

Module documentation in markdown format. Rendered in the UI panel to help users understand the module's configuration.

PropertyValue
Typenull or string
Defaultnull

panels.<name>.rows

Row data for table panels

PropertyValue
Typelist of attribute set of string
Default[ ]

panels.<name>.title

Display title for the panel

PropertyValue
Typestring
Defaultnone

panels.<name>.type

Panel type (determines which component to render)

PropertyValue
Typeone of "PANEL_TYPE_UNSPECIFIED", "PANEL_TYPE_STATUS", "PANEL_TYPE_APPS_GRID", "PANEL_TYPE_FORM", "PANEL_TYPE_TABLE", "PANEL_TYPE_CUSTOM", "PANEL_TYPE_APP_CONFIG"
Default"PANEL_TYPE_STATUS"

panelsByModule

Panels grouped by their parent module

PropertyValue
Typeattribute set of attribute set of unspecified value
Defaultnone
Read Onlytrue

panelsComputed

Serializable panels for UI consumption

PropertyValue
Typeattribute set of unspecified value
Defaultnone
Read Onlytrue

panelsList

List of all panels sorted by order

PropertyValue
Typelist of unspecified value
Defaultnone
Read Onlytrue

On this page