feat(homepage-dashboard): adding some disk info
This commit is contained in:
@@ -2,17 +2,19 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
unit = "homepage-dashboard";
|
unit = "homepage-dashboard";
|
||||||
cfg = config.server.homepage-dashboard;
|
cfg = config.server.homepage-dashboard;
|
||||||
srv = config.server;
|
srv = config.server;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.server.homepage-dashboard = {
|
options.server.homepage-dashboard = {
|
||||||
enable = lib.mkEnableOption {
|
enable = lib.mkEnableOption {
|
||||||
description = "Enable ${unit}";
|
description = "Enable ${unit}";
|
||||||
};
|
};
|
||||||
misc = lib.mkOption {
|
misc = lib.mkOption {
|
||||||
default = [];
|
default = [ ];
|
||||||
type = lib.types.listOf (
|
type = lib.types.listOf (
|
||||||
lib.types.attrsOf (
|
lib.types.attrsOf (
|
||||||
lib.types.submodule {
|
lib.types.submodule {
|
||||||
@@ -103,14 +105,21 @@ in {
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
resources = {
|
resources = {
|
||||||
label = "";
|
label = "root";
|
||||||
memory = true;
|
memory = true;
|
||||||
disk = ["/"];
|
disk = [ "/dev/dm-1" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
resources = {
|
||||||
|
label = "zfs";
|
||||||
|
memory = true;
|
||||||
|
disk = [ "/mnt/data" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
services =
|
||||||
services = let
|
let
|
||||||
homepageCategories = [
|
homepageCategories = [
|
||||||
"Arr"
|
"Arr"
|
||||||
"Media"
|
"Media"
|
||||||
@@ -120,10 +129,11 @@ in {
|
|||||||
];
|
];
|
||||||
hl = config.server;
|
hl = config.server;
|
||||||
mergedServices = hl // hl.podman;
|
mergedServices = hl // hl.podman;
|
||||||
homepageServices = x: (lib.attrsets.filterAttrs (
|
homepageServices =
|
||||||
|
x:
|
||||||
|
(lib.attrsets.filterAttrs (
|
||||||
name: value: value ? homepage && value.homepage.category == x
|
name: value: value ? homepage && value.homepage.category == x
|
||||||
)
|
) mergedServices);
|
||||||
mergedServices);
|
|
||||||
in
|
in
|
||||||
lib.lists.forEach homepageCategories (cat: {
|
lib.lists.forEach homepageCategories (cat: {
|
||||||
"${cat}" =
|
"${cat}" =
|
||||||
@@ -142,12 +152,14 @@ in {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
++ [{Misc = cfg.misc;}]
|
++ [ { Misc = cfg.misc; } ]
|
||||||
++ [
|
++ [
|
||||||
{
|
{
|
||||||
Glances = let
|
Glances =
|
||||||
|
let
|
||||||
port = toString config.services.glances.port;
|
port = toString config.services.glances.port;
|
||||||
in [
|
in
|
||||||
|
[
|
||||||
{
|
{
|
||||||
Info = {
|
Info = {
|
||||||
widget = {
|
widget = {
|
||||||
@@ -222,10 +234,12 @@ in {
|
|||||||
traefik = {
|
traefik = {
|
||||||
dynamicConfigOptions = {
|
dynamicConfigOptions = {
|
||||||
http = {
|
http = {
|
||||||
services.homepage.loadBalancer.servers = [{url = "http://127.0.0.1:${toString config.services.${unit}.listenPort}";}];
|
services.homepage.loadBalancer.servers = [
|
||||||
|
{ url = "http://127.0.0.1:${toString config.services.${unit}.listenPort}"; }
|
||||||
|
];
|
||||||
routers = {
|
routers = {
|
||||||
homepage = {
|
homepage = {
|
||||||
entryPoints = ["websecure"];
|
entryPoints = [ "websecure" ];
|
||||||
rule = "Host(`cnix.dev`)";
|
rule = "Host(`cnix.dev`)";
|
||||||
service = "homepage";
|
service = "homepage";
|
||||||
tls.certResolver = "letsencrypt";
|
tls.certResolver = "letsencrypt";
|
||||||
|
|||||||
Reference in New Issue
Block a user