297 current 2025-10-11 13:48:37 25.05.20251006.20c4598 6.12.50 *
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# flake for blakes nixos config
|
# flake for blakes nixos config
|
||||||
# define new devices in outputs
|
# define new devices in outputs
|
||||||
# generation: 296 current 2025-10-11 13:35:39 25.05.20251006.20c4598 6.12.50 *
|
# generation: 297 current 2025-10-11 13:48:37 25.05.20251006.20c4598 6.12.50 *
|
||||||
{
|
{
|
||||||
description = "blakes nix config";
|
description = "blakes nix config";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|||||||
@@ -86,6 +86,16 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
modules.services.glance.link = {
|
||||||
|
radarr = {
|
||||||
|
description = "radarr";
|
||||||
|
url = "http://10.10.0.30:3636";
|
||||||
|
icon = "di:radarr";
|
||||||
|
category = "mediastack"; # optional if you later implement category grouping
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# add to backups
|
# add to backups
|
||||||
modules.system.backups.baks = {
|
modules.system.backups.baks = {
|
||||||
${service} = { paths = [ cfg.data_dir ]; };
|
${service} = { paths = [ cfg.data_dir ]; };
|
||||||
|
|||||||
@@ -84,6 +84,15 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
modules.services.glance.link = {
|
||||||
|
sonarr = {
|
||||||
|
description = "Sonarr";
|
||||||
|
url = "http://10.10.0.30:3636";
|
||||||
|
icon = "di:sonarr";
|
||||||
|
category = "mediastack"; # optional if you later implement category grouping
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# add to backups
|
# add to backups
|
||||||
modules.system.backups.baks = {
|
modules.system.backups.baks = {
|
||||||
${service} = { paths = [ cfg.data_dir ]; };
|
${service} = { paths = [ cfg.data_dir ]; };
|
||||||
|
|||||||
@@ -5,6 +5,14 @@ let
|
|||||||
cfg = config.modules.services.${service};
|
cfg = config.modules.services.${service};
|
||||||
sec = config.sops.secrets;
|
sec = config.sops.secrets;
|
||||||
homelab = config.modules.homelab;
|
homelab = config.modules.homelab;
|
||||||
|
services = lib.attrsets.mapAttrsToList (name: srv:
|
||||||
|
{
|
||||||
|
title = srv.description;
|
||||||
|
icon = srv.icon;
|
||||||
|
url = srv.url;
|
||||||
|
allow-insecure = srv.icon;
|
||||||
|
}
|
||||||
|
) config.modules.services.${service}.link;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.services.${service} = {
|
options.modules.services.${service} = {
|
||||||
@@ -36,11 +44,12 @@ in
|
|||||||
default = true;
|
default = true;
|
||||||
description = "enable backups for ${service}";
|
description = "enable backups for ${service}";
|
||||||
};
|
};
|
||||||
pages = lib.mkOption {
|
link = lib.mkOption {
|
||||||
type = lib.types.attrsOf (lib.types.submodule {
|
type = lib.types.attrsOf (lib.types.submodule {
|
||||||
options.description = lib.mkOption { type = lib.types.str; };
|
options.name = lib.mkOption { type = lib.types.str; };
|
||||||
options.url = lib.mkOption { type = lib.types.str; };
|
options.url = lib.mkOption { type = lib.types.str; };
|
||||||
options.icon = lib.mkOption { type = lib.types.str; };
|
options.icon = lib.mkOption { type = lib.types.str; };
|
||||||
|
options.allow-insecure = lib.mkOption { type = lib.types.str; default = false; };
|
||||||
options.category = lib.mkOption { type = lib.types.str; };
|
options.category = lib.mkOption { type = lib.types.str; };
|
||||||
});
|
});
|
||||||
default = {};
|
default = {};
|
||||||
@@ -50,6 +59,7 @@ in
|
|||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
|
||||||
# declare ${service} group
|
# declare ${service} group
|
||||||
users.groups.${service} = { gid = lib.mkForce cfg.ids; };
|
users.groups.${service} = { gid = lib.mkForce cfg.ids; };
|
||||||
|
|
||||||
@@ -111,17 +121,18 @@ in
|
|||||||
type = "monitor";
|
type = "monitor";
|
||||||
cache = "1m";
|
cache = "1m";
|
||||||
title = "mediastack";
|
title = "mediastack";
|
||||||
sites = [
|
sites = services;
|
||||||
{ title = "jellyfin"; url = "https://media.blakedheld.xyz"; icon = "di:jellyfin"; }
|
# sites = sites [
|
||||||
{ title = "audiobookshelf"; url = "https://audiobooks.blakedheld.xyz"; icon = "di:audiobookshelf"; }
|
# { title = "jellyfin"; url = "https://media.blakedheld.xyz"; icon = "di:jellyfin"; }
|
||||||
{ title = "yacreader"; url = "http://10.10.0.30:3434"; icon = "/assets/icons/yacreader.png"; }
|
# { title = "audiobookshelf"; url = "https://audiobooks.blakedheld.xyz"; icon = "di:audiobookshelf"; }
|
||||||
{ title = "sonarr"; url = "http://10.10.0.30:3636"; icon = "di:sonarr"; }
|
# { title = "yacreader"; url = "http://10.10.0.30:3434"; icon = "/assets/icons/yacreader.png"; }
|
||||||
{ title = "qbittorrent"; url = "http://10.10.0.40:3333"; icon = "di:qbittorrent"; }
|
# { title = "sonarr"; url = "http://10.10.0.30:3636"; icon = "di:sonarr"; }
|
||||||
{ title = "radarr"; url = "http://10.10.0.30:3737"; icon = "di:radarr"; }
|
# { title = "qbittorrent"; url = "http://10.10.0.40:3333"; icon = "di:qbittorrent"; }
|
||||||
{ title = "kiwix"; url = "http://10.10.0.30:5050"; icon = "di:kiwix"; }
|
# { title = "radarr"; url = "http://10.10.0.30:3737"; icon = "di:radarr"; }
|
||||||
{ title = "prowlarr"; url = "http://10.10.0.30:3535"; icon = "di:prowlarr"; }
|
# { title = "kiwix"; url = "http://10.10.0.30:5050"; icon = "di:kiwix"; }
|
||||||
{ title = "bazarr"; url = "http://10.10.0.30:3838"; icon = "di:bazarr"; }
|
# { title = "prowlarr"; url = "http://10.10.0.30:3535"; icon = "di:prowlarr"; }
|
||||||
];
|
# { title = "bazarr"; url = "http://10.10.0.30:3838"; icon = "di:bazarr"; }
|
||||||
|
# ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "monitor";
|
type = "monitor";
|
||||||
|
|||||||
Reference in New Issue
Block a user