Skip to content

glance ​

Highly customizable dashboard

Example ​

nix
{config, ...}: {
  nps.stacks.glance = {
    enable = true;
    settings.pages.home = {
      columns.start = {
        rank = 500;
        size = "small";
        widgets = [
          {
            type = "server-stats";
            servers = [
              {
                type = "local";
                name = "Server";
              }
            ];
          }
          {
            type = "reddit";
            subreddit = "selfhosted";
            collapse-after = 3;
          }
        ];
      };
    };
  };
}

Stack Options ​

nps.stacks.glance.enable ​

Whether to enable glance.

Type
plaintext
boolean
Default
nix
false
Example
nix
true
Declaration

nps.stacks.glance.settings ​

Settings that will be provided as the glance.yml configuration file.

See https://github.com/glanceapp/glance/blob/main/docs/configuration.md#configuring-glance

Type
plaintext
open submodule of (YAML 1.1 value)
Default
nix
{ }
Declaration

nps.stacks.glance.settings.pages ​

This option has no description.

Type
plaintext
attribute set of (open submodule of (YAML 1.1 value))
Declaration

nps.stacks.glance.settings.pages.<name>.columns ​

The columns to display on the page

Type
plaintext
attribute set of (open submodule of (YAML 1.1 value))
Declaration

nps.stacks.glance.settings.pages.<name>.columns.<name>.rank ​

The order of the column on the page.

Type
plaintext
signed integer
Default
nix
1000
Declaration

nps.stacks.glance.settings.pages.<name>.columns.<name>.size ​

The size of the column.

Type
plaintext
one of "small", "full"
Declaration

nps.stacks.glance.settings.pages.<name>.name ​

The name of the page. Default to the attribute name.

Type
plaintext
string
Default
nix
lib.toSentenceCase <pageName>
Declaration

nps.stacks.glance.useSocketProxy ​

Whether to access the Podman socket through the read-only proxy for the glance stack. Will be enabled by default if the 'socket-proxy' stack is enabled.

Type
plaintext
boolean
Default
nix
config.nps.stacks.socket-proxy.enable
Declaration

nps.stacks.glance.userCss ​

Type
plaintext
strings concatenated with "\n"
Default
nix
""
Declaration

Container Extension ​

Glance adds the glance container options to the existing services.podman.containers.<name> options. Setting the category automatically adds the container to a docker-containers widget on the dashboard.

Metadata that is shared between the dashboards is configured via the dashboard container option, category, name, url as well as the description, icon, id and parent settings are derived from it. Glance specific settings can be added via the freeform glance attributes, see https://github.com/glanceapp/glance/blob/main/docs/configuration.md#docker-containers.

To hide a service from the dashboard, set the dashboard.category option to null, or glance.category to only hide it on Glance.

Example:

nix
{config, ...}: {
  nps.stacks.glance.enable = true;

  # Shared between the dashboards
  nps.stacks.streaming.containers.jellyfin.dashboard = {
    category = "Media";
    name = "Jellyfin";
    description = "Media Server";
    icon = "di:jellyfin";
  };

  # Glance only
  nps.stacks.streaming.containers.jellyfin.glance.icon = "si:jellyfin";
}

Icons are written in the Glance syntax, see the dashboard.icon option for the available prefixes.

services.podman.containers.<name>.dashboard ​

Metadata shared between the dashboards. Settings that only apply to a single dashboard go into its own container option.

Type
plaintext
submodule
Default
nix
{ }
Declaration

services.podman.containers.<name>.dashboard.category ​

Category of the service, null hides it.

Type
plaintext
null or string
Default
nix
null
Declaration

services.podman.containers.<name>.dashboard.description ​

Short description of the service.

Type
plaintext
null or string
Default
nix
null
Declaration

services.podman.containers.<name>.dashboard.icon ​

Icon in Glance syntax, translated for Homepage. di:name becomes name, sh:name becomes sh-name, a bare name is resolved via dashboard-icons.

Type
plaintext
null or string
Default
nix
null
Example
nix
"di:jellyfin"
Declaration

services.podman.containers.<name>.dashboard.id ​

Identifier of the service, referenced by the parent of its child containers. Defaults to the container name.

Type
plaintext
null or string
Default
nix
null
Declaration

services.podman.containers.<name>.dashboard.name ​

Name of the service on the dashboards.

Type
plaintext
string
Default
nix
lib.toSentenceCase "<container name>"
Declaration

services.podman.containers.<name>.dashboard.parent ​

Identifier of the service this container belongs to. Groups it below the parent on the dashboard and keeps it off Homepage, set homepage.category to show it there anyway.

Type
plaintext
null or string
Default
nix
null
Declaration

services.podman.containers.<name>.dashboard.url ​

URL the service links to, defaults to the Traefik serviceUrl.

Type
plaintext
null or string
Default
nix
config.traefik.serviceUrl
Declaration

services.podman.containers.<name>.glance ​

Type
plaintext
open submodule of (YAML 1.1 value)
Default
nix
{ }
Declaration

services.podman.containers.<name>.glance.category ​

Category of the service, null hides it on Glance.

Type
plaintext
null or string
Default
nix
null
Declaration

services.podman.containers.<name>.glance.name ​

The name of the service as it will displayed on the dashboard.

Type
plaintext
string
Default
nix
"‹name›"
Declaration

services.podman.containers.<name>.glance.url ​

The URL of the service.

Type
plaintext
string
Default
nix
""
Declaration

Container Aliases ​

nps.stacks.glance.containers.glance ​

Alias of {option}services.podman.containers.glance.

Type
plaintext
submodule
Declaration