Move Homepage configuration into service

Move each service's Homepage Dashboard configuration into its own
module.

Based on
8928785060/homelab/services/homepage/default.nix.

See https://www.youtube.com/watch?v=f-x5cB6qCzA&t=1435s (What's on my
Home Server 2025 – NixOS Edition).
This commit is contained in:
Oliver Davies 2025-04-30 11:58:59 +01:00
parent bdf226d5f7
commit a9cf2109a6
7 changed files with 127 additions and 55 deletions

View file

@ -15,6 +15,26 @@ in
default = "audiobookshelf.${homelab.baseDomain}";
type = types.str;
};
homepage.name = mkOption {
default = "Audiobookshelf";
type = types.str;
};
homepage.description = mkOption {
default = "Self-hosted audiobook and podcast server";
type = types.str;
};
homepage.icon = mkOption {
default = "audiobookshelf";
type = types.str;
};
homepage.category = mkOption {
default = "Media";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -20,6 +20,26 @@ in
default = "photos.${homelab.baseDomain}";
type = types.str;
};
homepage.name = mkOption {
default = "Immich";
type = types.str;
};
homepage.description = mkOption {
default = "Self-hosted photo and video management solution";
type = types.str;
};
homepage.icon = mkOption {
default = "immich";
type = types.str;
};
homepage.category = mkOption {
default = "Media";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -15,6 +15,26 @@ in
default = "${service}.${homelab.baseDomain}";
type = types.str;
};
homepage.name = mkOption {
default = "Jellyfin";
type = types.str;
};
homepage.description = mkOption {
default = "The Free Software Media System";
type = types.str;
};
homepage.icon = mkOption {
default = "jellyfin";
type = types.str;
};
homepage.category = mkOption {
default = "Media";
type = types.str;
};
};
config = mkIf cfg.enable {

View file

@ -15,6 +15,26 @@ in
default = "${service}.${homelab.baseDomain}";
type = types.str;
};
homepage.name = mkOption {
default = "Paperless-ngx";
type = types.str;
};
homepage.description = mkOption {
default = "Document management system";
type = types.str;
};
homepage.icon = mkOption {
default = "paperless";
type = types.str;
};
homepage.category = mkOption {
default = "Services";
type = types.str;
};
};
config = mkIf cfg.enable {