Skip to content

Commit 3f39ab2

Browse files
committed
feat(metrics): disable metrics on hosts without its config; refactor enable conditions to require top-level enable flag
1 parent d752dee commit 3f39ab2

8 files changed

Lines changed: 47 additions & 39 deletions

File tree

hosts/server/nixauth/default.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ let
77
;
88
in
99
{
10+
services.metrics = {
11+
upgradeStatus.enable = false;
12+
hacompanion.enable = false;
13+
};
14+
1015
sops.secrets =
1116
let
1217
acmePermissions = {

hosts/server/nixdb/default.nix

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ let
2222
);
2323
in
2424
{
25-
core.sops.hostSecretsFile = ./secrets.yaml;
25+
services.metrics = {
26+
upgradeStatus.enable = false;
27+
hacompanion.enable = false;
28+
};
2629

2730
server = {
2831
database.postgres.postgres = { };

hosts/server/nixstor/default.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,9 @@ _: {
88
};
99
};
1010
};
11+
12+
services.metrics = {
13+
upgradeStatus.enable = false;
14+
hacompanion.enable = false;
15+
};
1116
}

hosts/server/secrets.yaml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,79 @@
1-
IO_GUARDIAN_PSK: ENC[AES256_GCM,data:2XFPhOwoWNNCVWWt7wYb9CR0aagsC1H+WwAEdbbfjDrD9USk2ZL1DhlPl/NVYEzp8BdswEgP/wKX/LW3BGXL/Q==,iv:j4dszscxPlhk6znkobmEj3/iMm0OCPUGBOJRpOCOdNk=,tag:AWoYWzJJ0ycxcN3ETBLqJg==,type:str]
1+
DB_GUARDIAN_PSK: ENC[AES256_GCM,data:IWQFA+ck1AInX+HdplFSKYSo4DVHVswOaakQotseku5pf1snsLMDgUvEwJIvpuMo8BfCgFrcHHJdNVxLuEzJzg==,iv:wq5Apjcp8oZ65F1Netn7aPPEjf+XB/JANvAe2H3aBH0=,tag:2BDq3GnVeLMxo5RxisTYRQ==,type:str]
22
sops:
33
age:
4-
- recipient: age187xlhmks2tcymsnw32jzzxr6lryejma4602e3v0jlrsra5u64pdsxal44a
5-
enc: |
4+
- enc: |
65
-----BEGIN AGE ENCRYPTED FILE-----
76
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVk52ZGNoUnllQ0w5N2w4
87
T3plUVJsOVRVeUZDc0JXVkIyTWVFMFZZblJFCmFUcm9jczRpeFk1UnB1V3FlZkNy
98
QzJMVVdhb3MvdzBnRHhlVURuL2pKNDAKLS0tIFloYTFPTjdvZzd4NCtwYzBaVFVu
109
Y3JXVkdGdHROdXoxRE11dGRVWlFuUk0KGF1GIEufvFyjv7IogTRwv+pfvKMYonyJ
1110
MZMaIllsabSh+VfVcFsN3D/WtovmyfvGO1miIMBIfBgCZRYTgcjmMQ==
1211
-----END AGE ENCRYPTED FILE-----
13-
- recipient: age1vn626zvqf9hhnwur37fzww0xqts5jp45uuhetk2caggx75wp4umshj235u
14-
enc: |
12+
recipient: age187xlhmks2tcymsnw32jzzxr6lryejma4602e3v0jlrsra5u64pdsxal44a
13+
- enc: |
1514
-----BEGIN AGE ENCRYPTED FILE-----
1615
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhZ0VDZnVuOE82UWhCeWR0
1716
V1FaS2lhTEc3Z2dmUFVLdG5YZFRwdDRLdHpNCjJQNlJDL3FPQmJLWmh0WVp6Mlpj
1817
M205aFJ3d0ZLMHpnaXZrUFdZQ01CTHMKLS0tIGE1RmxqWklicGpVYkhMdzhZMlVN
1918
Y2FzNE5xNkJNN2xjcllYRVlwNVNEZEEKpA24m9iFUuaNpKoYn4k5ieg3NrXmI0mx
2019
u0COyE63LQNYNW2i+MUfMwKMHzV4aHYZYErUJeaNxxDmKKTmLBWIlg==
2120
-----END AGE ENCRYPTED FILE-----
22-
- recipient: age1zeu2cj6mt0nllar0myzhlsgwp0xk2px83vskplu0s2ul87g9634svuhjpw
23-
enc: |
21+
recipient: age1vn626zvqf9hhnwur37fzww0xqts5jp45uuhetk2caggx75wp4umshj235u
22+
- enc: |
2423
-----BEGIN AGE ENCRYPTED FILE-----
2524
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEdmdlZWRMbmZ1SzZNbHVp
2625
cU0yQ2lOK3piRTFyTkFXU1o2c29PRjZOa0E0CjBpNnhwb0taSWw4WTdpcmEyWmw0
2726
c2txWllqVisvQnY2LzhOWDJtUWhNM2cKLS0tIHVSU2tPbmFiaWNwTWVUbzBwc0Mz
2827
MDRkUTZkVEVTNEFpODVLbXloVy9OMUUKPvyIHZ36avVLAtuBr/tz4UCuKTelyQnD
2928
Vu8hYOREUPF0Turq/xyc3pY1orK4LOEiYO4J5fhZR/90kiaJ3GqrNQ==
3029
-----END AGE ENCRYPTED FILE-----
31-
- recipient: age1azcacxqvwankaf5ma98jk7swwpn6uxmwvdz0azq5fnulrlwk747sr9x2z9
32-
enc: |
30+
recipient: age1zeu2cj6mt0nllar0myzhlsgwp0xk2px83vskplu0s2ul87g9634svuhjpw
31+
- enc: |
3332
-----BEGIN AGE ENCRYPTED FILE-----
3433
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpTmlOdGY4MG5YS0FTTFox
3534
cS9lRnVlMDBSUWk5MWV1d0E5aFZiT1I4cVE4CkQ2cUxKeTAzYjl3NG1FckFVT2gz
3635
QXRwWmVGU1RXcjBPMTNJaUZ4a0xDWjgKLS0tIEtJaHg4bmpQUElTMmJJS2d2d1Fl
3736
R3lJTzJ0R3JRaGtjT2pwdHhUeUVYbmcKtCXEapJpp5ZvH2ro1cH5eQcQj7w4bYSN
3837
qAvzznqFjwi8fzmXxF1/jKXsN4d3kV8DZ6w/gWybHhA6gMmfsIPucg==
3938
-----END AGE ENCRYPTED FILE-----
40-
- recipient: age1hepu4nkwau3p0z2sf40xq0pzzss0wl263m5uey7lfj7usnr7sfeskdkeg4
41-
enc: |
39+
recipient: age1azcacxqvwankaf5ma98jk7swwpn6uxmwvdz0azq5fnulrlwk747sr9x2z9
40+
- enc: |
4241
-----BEGIN AGE ENCRYPTED FILE-----
4342
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqeGM1T2gvWkkyUThhRWhi
4443
NndmUnBwamU5V3pFcW9nYWNlOGV3YkFZVEQwCmdwdlFKazlRTHM4djB1b2FjaVpD
4544
NS9lOVJ2K1NBUDBsaE05cWo1NzFWamsKLS0tIHkrZ3UyQ015RU9EaGVXakZKelE3
4645
SGlyOUZCaFhCNnF0RzIxNGhDRkVVTGMKFeXkulpUJtemwIzS5L0We/m1sgFoP0hN
4746
ulEZnPr5bNKRQOyqb3SGhxg/LLxOp1951LHoMrVFJGcwIQorknjMPA==
4847
-----END AGE ENCRYPTED FILE-----
49-
- recipient: age1xct06gxt774vj3ug8j7z7j3vtnvwe29z92nh5al2xqa4uy2kxqjs67j5ay
50-
enc: |
48+
recipient: age1hepu4nkwau3p0z2sf40xq0pzzss0wl263m5uey7lfj7usnr7sfeskdkeg4
49+
- enc: |
5150
-----BEGIN AGE ENCRYPTED FILE-----
5251
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKYlZLOGgrVEhiaGVFd09s
5352
cWh4MVZ6SzZjWi9SR1d4NFhYMVkrYnNVOURvCnpYSlUrYjlPSDg5aW5SaysrMkUx
5453
RUdEYmRuM3R0WUtRZlNXem9GMk9HaG8KLS0tIHZsQTIxZ3gvTWRXZXlDbDlpUVZX
5554
WE1HSG5GL2tZK081aDMwbExTcU5PeWMKkDgFcgHLY9+NTqyK94x3zZ7Wvozp/IKU
5655
YCSdU1VrIGA4XgyIzeKmfQeZsp+Jt1aEWL9KaxV0Giqek+pY1UnB/Q==
5756
-----END AGE ENCRYPTED FILE-----
58-
- recipient: age1qlkycz667c4dzzhywgp94ek5zs9u5xmp4dfd8fh48h58c4253seqajrk49
59-
enc: |
57+
recipient: age1xct06gxt774vj3ug8j7z7j3vtnvwe29z92nh5al2xqa4uy2kxqjs67j5ay
58+
- enc: |
6059
-----BEGIN AGE ENCRYPTED FILE-----
6160
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyS2hXOXF3UDk2eGFET005
6261
RjZ2UHh6eXpaY09FY2hOYUI1SU9xK0NTcDFJCjVCSjIrb1ZYNHdrakJVZGRFSjFl
6362
NlcrMy90QnpDVmFLeXNBNFBYbmFPS2MKLS0tIDYvczdqZUZDcXlZb2dIMGt6YkpC
6463
MUcwRkIwRTBEK1VUdk1MekRjR2kyM2cKkPhP4wEzfCmAWpXmwcL6PyGFjLQd5Q+7
6564
jCYvVQ3ErM+eUQGYpLZ6D41XLDBoE3IEPzAlo33ZgiSiglwk2hnVuw==
6665
-----END AGE ENCRYPTED FILE-----
67-
- recipient: age10emng003r0p06xudhz8w3846vr9dl6sw4pl8hflpd7p3sejv75ds8rnf2a
68-
enc: |
66+
recipient: age1qlkycz667c4dzzhywgp94ek5zs9u5xmp4dfd8fh48h58c4253seqajrk49
67+
- enc: |
6968
-----BEGIN AGE ENCRYPTED FILE-----
7069
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5SjhBbHJPUE5ZY21PYXZY
7170
MHFvL0FhcVMzSmV5b3g5NzUvRElCYlRPSmtFCm9obGQ4Z0lma2lFZVdQdlBCUWpl
7271
dTVrb3Z6NlhEUVU5cGZabWhWeDI3UUkKLS0tIFRhZUFEZm4xNkhPZXRyUkwrbUw2
7372
UFNhaEZFMmVyTFFwTGp0SXRWMzBpMGMKm0X7+jNC9v7NgLh2alb9sMBHfwpD7n/p
7473
rK2FcwOem+VeJSdHT2uBJmYRbQu63J+7WtnqK+iYeexQGNAn2HEpvA==
7574
-----END AGE ENCRYPTED FILE-----
76-
lastmodified: "2025-12-21T04:43:43Z"
77-
mac: ENC[AES256_GCM,data:aQFKMtZZfZa/dmN/tMU0Xmk4BIw+qATOcyZuOYglLaIfInAPKxsfwjmmuzCgttztCwRKDETiOdgktAGS7Lh1HDxHIjAh3dS7lt0OlbP4lDmix3RDG8dhCLyk0OnNbdYtk/1rFaALbxr4urH62CaCvX3png6DKJux1CqQpFkyH5U=,iv:NyPj222+8JxLUurtBpT6fPOOjIPEjf2gJ4BbasrdKBY=,tag:/WIbkctVdZmpp8N7HFNLIg==,type:str]
75+
recipient: age10emng003r0p06xudhz8w3846vr9dl6sw4pl8hflpd7p3sejv75ds8rnf2a
76+
lastmodified: "2026-08-22T08:08:41Z"
77+
mac: ENC[AES256_GCM,data:qTxyxEZGn8jlgcqyrUHFX1EgCq2/cwyFEaVr/E5ZCUiSWU30LGM37uedBDkvrQxmnWtlSRBSUaaw5/4eoRMmSg0W1wGGOHAmd+2EbRD8QlplLDALOSVu1/7a+RdFgDjydEczPOR/pWvY/cFkek54DoGAfVkhKdAieQJiXG6DFc8=,iv:2ir8D4uWP8Nw6f1Z9XBZ89CuEZYciUmMu3zPAhcvQw4=,tag:GBYZXjiZBxPkrEWWpcjseA==,type:str]
7878
unencrypted_suffix: _unencrypted
79-
version: 3.11.0
79+
version: 3.13.3

hosts/server/shared/default.nix

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
22
modulesPath,
3+
lib,
34
...
45
}:
6+
let
7+
inherit (lib) mkDefault;
8+
in
59
{
610
imports = [
711
"${modulesPath}/virtualisation/proxmox-lxc.nix"
@@ -14,13 +18,13 @@
1418
getty.autologinUser = "root";
1519

1620
metrics = {
17-
enable = true;
21+
enable = mkDefault true;
1822
upgradeStatus = {
19-
enable = true;
20-
uptimeKuma.enable = true;
23+
enable = mkDefault true;
24+
uptimeKuma.enable = mkDefault true;
2125
};
2226
hacompanion = {
23-
enable = true;
27+
enable = mkDefault true;
2428
sensor = {
2529
cpu_usage.enable = true;
2630
uptime.enable = true;

modules/nixos/server/database/guardian.nix

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ in
123123
{
124124
sops.secrets."DB_GUARDIAN_PSK" = {
125125
sopsFile = "${self}/hosts/server/secrets.yaml";
126-
# Compatibility shim: SOPS file still carries old key name IO_GUARDIAN_PSK.
127-
# Remove this and rename DB_GUARDIAN_PSK → IO_GUARDIAN_PSK in secrets.yaml when rotated.
128-
key = "DB_GUARDIAN_PSK";
129126
};
130127
}
131128

modules/nixos/server/proxy/options.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ in
3131
options.server.proxy = {
3232
domain = mkOption {
3333
type = str;
34+
default = getIOPrimaryHostAttr "server.proxy.domain";
35+
defaultText = literalExpression "getIOPrimaryHostAttr \"server.proxy.domain\"";
3436
description = "The base domain for all virtual hosts.";
3537
};
3638

modules/nixos/services/metrics.nix

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ let
1212
flatten
1313
getExe
1414
listToAttrs
15-
literalExpression
1615
mapAttrs
1716
mapAttrsToList
1817
mkEnableOption
@@ -25,7 +24,6 @@ let
2524
;
2625

2726
inherit (lib.types)
28-
anything
2927
attrsOf
3028
enum
3129
nullOr
@@ -210,12 +208,6 @@ in
210208
)
211209
|> listToAttrs;
212210

213-
test = mkOption {
214-
type = anything;
215-
default = hacompanionConfig;
216-
defaultText = literalExpression "hacompanionConfig";
217-
};
218-
219211
script = mkOption {
220212
type = attrsOf (submodule {
221213
options = {
@@ -345,7 +337,7 @@ in
345337
};
346338

347339
config = mkMerge [
348-
(mkIf cfg.hacompanion.enable {
340+
(mkIf (cfg.enable && cfg.hacompanion.enable) {
349341
sops.secrets.HACOMPANION_ENV = {
350342
sopsFile = "${self}/hosts/secrets.yaml";
351343
};
@@ -392,7 +384,7 @@ in
392384

393385
})
394386

395-
(mkIf cfg.upgradeStatus.enable {
387+
(mkIf (cfg.enable && cfg.upgradeStatus.enable) {
396388
services.metrics.hacompanion.script.upgrade_status = {
397389
name = "NixOS Upgrade Status";
398390
icon = "mdi:update";
@@ -442,7 +434,7 @@ in
442434
};
443435
})
444436

445-
(mkIf cfg.upgradeStatus.uptimeKuma.enable {
437+
(mkIf (cfg.enable && cfg.upgradeStatus.enable && cfg.upgradeStatus.uptimeKuma.enable) {
446438
sops.secrets.UPGRADE_STATUS_ID = { };
447439

448440
systemd = {

0 commit comments

Comments
 (0)