StackPanel

modules

Configuration options for stackpanel.modules

Modules Options

_moduleMetas

Fast module metadata for discovery without full module evaluation. Each key is a module ID, value is the contents of that module's meta.nix. This is set automatically by the module auto-discovery in modules/default.nix.

PropertyValue
Typeattribute set of unspecified value
Default{ }

modules

Stackpanel modules that provide features and UI panels.

Modules are the unified way to extend stackpanel functionality:

Each module can define:

Modules can be:

PropertyValue
Typeopen submodule of attribute set of (submodule)
Default{ }

Example:

{
  postgres = {
    enable = true;
    meta = {
      name = "PostgreSQL";
      description = "PostgreSQL database server";
      icon = "database";
      category = "database";
    };
    source.type = "builtin";
    features = {
      services = true;
      healthchecks = true;
      packages = true;
    };
    healthcheckModule = "postgres";
    panels = [{
      id = "postgres-status";
      title = "PostgreSQL Status";
      type = "PANEL_TYPE_STATUS";
      fields = [{
        name = "metrics";
        type = "FIELD_TYPE_JSON";
        value = "[{\"label\":\"Status\",\"value\":\"Running\",\"status\":\"ok\"}]";
      }];
    }];
  };

  my-custom-module = {
    enable = true;
    meta = {
      name = "My Custom Module";
      description = "Does something useful";
      category = "development";
    };
    source = {
      type = "flake-input";
      flakeInput = "my-module";
    };
  };
}

modules.<name>.apps

Per-app module data (app name -> module data)

PropertyValue
Typeattribute set of (submodule)
Default{ }

modules.<name>.apps.<name>.config

Module config for this app (string key-value pairs)

PropertyValue
Typeattribute set of string
Default{ }

modules.<name>.apps.<name>.enabled

Whether module is enabled for this app

PropertyValue
Typeboolean
Defaulttrue

modules.<name>.configSchema

JSON Schema string for generating configuration forms in the UI. The schema should describe the module's configurable options.

PropertyValue
Typenull or string
Defaultnull

Example:

''
  {
    "type": "object",
    "properties": {
      "port": { "type": "integer", "default": 5432 },
      "version": { "type": "string", "enum": ["15", "16"], "default": "16" }
    }
  }
''

modules.<name>.conflicts

Other modules that conflict with this module

PropertyValue
Typelist of string
Default[ ]

modules.<name>.enable

Whether to enable the ‹name› module.

PropertyValue
Typeboolean
Defaultfalse

Example:

true


modules.<name>.features

Which stackpanel features this module uses

PropertyValue
Typesubmodule
Default{ }

modules.<name>.features.appModule

Module extends per-app configuration via appModules

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.files

Module generates files via stackpanel.files

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.healthchecks

Module defines health checks

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.packages

Module adds devshell packages

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.scripts

Module provides shell scripts/commands

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.secrets

Module manages secrets/variables

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.services

Module configures background services/processes

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.features.tasks

Module defines turborepo tasks

PropertyValue
Typeboolean
Defaultfalse

modules.<name>.flakeInputs

Flake inputs required by this module. Used for auto-installation from the registry.

PropertyValue
Typelist of (submodule)
Default[ ]

modules.<name>.flakeInputs.*.followsNixpkgs

Whether to add inputs.nixpkgs.follows = "nixpkgs"

PropertyValue
Typeboolean
Defaulttrue

modules.<name>.flakeInputs.*.name

Input name in flake.nix (e.g., "my-module")

PropertyValue
Typestring
Defaultnone

modules.<name>.flakeInputs.*.url

Flake URL (e.g., "github:author/my-module")

PropertyValue
Typestring
Defaultnone

modules.<name>.healthcheckModule

Name of the healthcheck module that provides health checks for this module. This links to stackpanel.healthchecks.modules..

PropertyValue
Typenull or string
Defaultnull

modules.<name>.meta

Module metadata for display in the UI

PropertyValue
Typesubmodule
Defaultsee below

Default:

{
  name = "‹name›";
}

modules.<name>.meta.author

Author or maintainer of the module

PropertyValue
Typenull or string
Defaultnull

modules.<name>.meta.category

Category for grouping in the UI

PropertyValue
Typeone of "unspecified", "infrastructure", "ci-cd", "database", "secrets", "deployment", "development", "monitoring", "integration", "language", "service"
Default"unspecified"

modules.<name>.meta.description

Human-readable description of what the module does

PropertyValue
Typenull or string
Defaultnull

modules.<name>.meta.homepage

URL to module documentation or repository

PropertyValue
Typenull or string
Defaultnull

modules.<name>.meta.icon

Lucide icon name for the module (e.g., 'database', 'box', 'cloud')

PropertyValue
Typenull or string
Defaultnull

modules.<name>.meta.name

Display name of the module

PropertyValue
Typestring
Defaultnone

modules.<name>.meta.version

Module version

PropertyValue
Typenull or string
Defaultnull

modules.<name>.panels

UI panels provided by this module

PropertyValue
Typelist of (submodule)
Default[ ]

modules.<name>.panels.*.description

Panel description

PropertyValue
Typenull or string
Defaultnull

modules.<name>.panels.*.fields

Panel configuration fields

PropertyValue
Typelist of (submodule)
Default[ ]

modules.<name>.panels.*.fields.*.name

Field name (maps to component prop)

PropertyValue
Typestring
Defaultnone

modules.<name>.panels.*.fields.*.options

Options for select fields

PropertyValue
Typelist of string
Default[ ]

modules.<name>.panels.*.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"
Default"FIELD_TYPE_STRING"

modules.<name>.panels.*.fields.*.value

Field value (JSON-encoded for complex types)

PropertyValue
Typestring
Default""

modules.<name>.panels.*.id

Unique panel identifier

PropertyValue
Typestring
Defaultnone

modules.<name>.panels.*.order

Display order (lower = first)

PropertyValue
Typesigned integer
Default100

modules.<name>.panels.*.title

Display title

PropertyValue
Typestring
Defaultnone

modules.<name>.panels.*.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"
Default"PANEL_TYPE_STATUS"

modules.<name>.priority

Load order priority (lower = earlier)

PropertyValue
Typesigned integer
Default100

modules.<name>.requires

Other modules that must be enabled for this module to work

PropertyValue
Typelist of string
Default[ ]

modules.<name>.source

Module source configuration

PropertyValue
Typesubmodule
Default{ }

modules.<name>.source.flakeInput

Name of the flake input (for flake-input source type)

PropertyValue
Typenull or string
Defaultnull

modules.<name>.source.path

Local path to the module (for local source type)

PropertyValue
Typenull or string
Defaultnull

modules.<name>.source.ref

Git ref (branch, tag, commit) for remote modules

PropertyValue
Typenull or string
Defaultnull

modules.<name>.source.registryId

Registry identifier (for registry source type, e.g., 'stackpanel/docker')

PropertyValue
Typenull or string
Defaultnull

modules.<name>.source.type

Source type for the module

PropertyValue
Typeone of "builtin", "local", "flake-input", "registry"
Default"builtin"

modules.<name>.tags

Tags for categorizing/filtering modules

PropertyValue
Typelist of string
Default[ ]

modulesBuiltin

Builtin modules shipped with stackpanel

PropertyValue
Typeattribute set of unspecified value
Default{ }
Read Onlytrue

modulesComputed

Computed module configurations (only enabled modules, serializable)

PropertyValue
Typeattribute set of unspecified value
Default{ }
Read Onlytrue

modulesComputedAll

Computed module configurations (all modules including disabled, serializable)

PropertyValue
Typeattribute set of unspecified value
Default{ }
Read Onlytrue

modulesExternal

External modules (local, flake-input, or registry)

PropertyValue
Typeattribute set of unspecified value
Default{ }
Read Onlytrue

modulesList

Flat list of enabled modules (for API consumption)

PropertyValue
Typelist of unspecified value
Default[ ]
Read Onlytrue

modulesListAll

Flat list of all modules including disabled (for API consumption)

PropertyValue
Typelist of unspecified value
Default[ ]
Read Onlytrue

On this page

Modules Options_moduleMetasmodulesmodules.<name>.appsmodules.<name>.apps.<name>.configmodules.<name>.apps.<name>.enabledmodules.<name>.configSchemamodules.<name>.conflictsmodules.<name>.enablemodules.<name>.featuresmodules.<name>.features.appModulemodules.<name>.features.filesmodules.<name>.features.healthchecksmodules.<name>.features.packagesmodules.<name>.features.scriptsmodules.<name>.features.secretsmodules.<name>.features.servicesmodules.<name>.features.tasksmodules.<name>.flakeInputsmodules.<name>.flakeInputs.*.followsNixpkgsmodules.<name>.flakeInputs.*.namemodules.<name>.flakeInputs.*.urlmodules.<name>.healthcheckModulemodules.<name>.metamodules.<name>.meta.authormodules.<name>.meta.categorymodules.<name>.meta.descriptionmodules.<name>.meta.homepagemodules.<name>.meta.iconmodules.<name>.meta.namemodules.<name>.meta.versionmodules.<name>.panelsmodules.<name>.panels.*.descriptionmodules.<name>.panels.*.fieldsmodules.<name>.panels.*.fields.*.namemodules.<name>.panels.*.fields.*.optionsmodules.<name>.panels.*.fields.*.typemodules.<name>.panels.*.fields.*.valuemodules.<name>.panels.*.idmodules.<name>.panels.*.ordermodules.<name>.panels.*.titlemodules.<name>.panels.*.typemodules.<name>.prioritymodules.<name>.requiresmodules.<name>.sourcemodules.<name>.source.flakeInputmodules.<name>.source.pathmodules.<name>.source.refmodules.<name>.source.registryIdmodules.<name>.source.typemodules.<name>.tagsmodulesBuiltinmodulesComputedmodulesComputedAllmodulesExternalmodulesListmodulesListAll