summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock23
-rw-r--r--flake.nix7
-rw-r--r--hosts/vidhar/default.nix35
-rw-r--r--hosts/vidhar/network/default.nix3
-rw-r--r--hosts/vidhar/network/pppoe/default.nix (renamed from hosts/vidhar/network/pppoe.nix)59
-rw-r--r--hosts/vidhar/network/pppoe/no-double-timeout.patch (renamed from hosts/vidhar/network/no-double-timeout.patch)0
-rw-r--r--hosts/vidhar/network/pppoe/o2-password18
-rw-r--r--hosts/vidhar/prometheus/default.nix9
-rw-r--r--installer/default.nix6
-rw-r--r--overlays/smartprom/default.nix43
-rw-r--r--overlays/smartprom/poetry.lock21
-rw-r--r--overlays/smartprom/pyproject.toml18
12 files changed, 109 insertions, 133 deletions
diff --git a/flake.lock b/flake.lock
index 486fe843..35735283 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1148,25 +1148,34 @@
1148 "prometheus-borg-exporter": { 1148 "prometheus-borg-exporter": {
1149 "inputs": { 1149 "inputs": {
1150 "flake-parts": "flake-parts_4", 1150 "flake-parts": "flake-parts_4",
1151 "gitignore": [
1152 "gitignore"
1153 ],
1151 "nixpkgs": [ 1154 "nixpkgs": [
1152 "nixpkgs" 1155 "nixpkgs"
1153 ], 1156 ],
1154 "poetry2nix": [ 1157 "pre-commit-hooks-nix": "pre-commit-hooks-nix_4",
1155 "poetry2nix" 1158 "pyproject-build-systems": [
1159 "pyproject-build-systems"
1160 ],
1161 "pyproject-nix": [
1162 "pyproject-nix"
1156 ], 1163 ],
1157 "pre-commit-hooks-nix": "pre-commit-hooks-nix_4" 1164 "uv2nix": [
1165 "uv2nix"
1166 ]
1158 }, 1167 },
1159 "locked": { 1168 "locked": {
1160 "lastModified": 1722088088, 1169 "lastModified": 1776181320,
1161 "narHash": "sha256-54U68THNc/0iIBmJAef8pJZHmwjFvHMCRB5cO/ilgY0=", 1170 "narHash": "sha256-bvnKBrO7oRFPB/YGloYEM3/Ch1jiW2EfKC7qbONIQao=",
1162 "owner": "gkleen", 1171 "owner": "gkleen",
1163 "repo": "prometheus-borg-exporter", 1172 "repo": "prometheus-borg-exporter",
1164 "rev": "d820cbd5ba27f5d90546fdcef3dff3d69e776149", 1173 "rev": "0a3b26eca91630e933b14e2d5e4bd2e4be5bc911",
1165 "type": "gitlab" 1174 "type": "gitlab"
1166 }, 1175 },
1167 "original": { 1176 "original": {
1168 "owner": "gkleen", 1177 "owner": "gkleen",
1169 "ref": "main", 1178 "ref": "v1.1.1",
1170 "repo": "prometheus-borg-exporter", 1179 "repo": "prometheus-borg-exporter",
1171 "type": "gitlab" 1180 "type": "gitlab"
1172 } 1181 }
diff --git a/flake.nix b/flake.nix
index 3452ee9a..8a230dd2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -174,10 +174,13 @@
174 type = "gitlab"; 174 type = "gitlab";
175 owner = "gkleen"; 175 owner = "gkleen";
176 repo = "prometheus-borg-exporter"; 176 repo = "prometheus-borg-exporter";
177 ref = "main"; 177 ref = "v1.1.1";
178 inputs = { 178 inputs = {
179 nixpkgs.follows = "nixpkgs"; 179 nixpkgs.follows = "nixpkgs";
180 poetry2nix.follows = "poetry2nix"; 180 pyproject-nix.follows = "pyproject-nix";
181 uv2nix.follows = "uv2nix";
182 pyproject-build-systems.follows = "pyproject-build-systems";
183 gitignore.follows = "gitignore";
181 }; 184 };
182 }; 185 };
183 nixos-hardware = { 186 nixos-hardware = {
diff --git a/hosts/vidhar/default.nix b/hosts/vidhar/default.nix
index 9639cbd3..f15dfebe 100644
--- a/hosts/vidhar/default.nix
+++ b/hosts/vidhar/default.nix
@@ -296,41 +296,6 @@ with lib;
296 "ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH=go1.19" 296 "ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH=go1.19"
297 ]; 297 ];
298 }; 298 };
299 services.promtail = {
300 enable = true;
301 configuration = {
302 server = {
303 http_listen_port = 9080;
304 grpc_listen_port = 0;
305 };
306 clients = [
307 { url = "http://localhost:9094/loki/api/v1/push"; }
308 ];
309 scrape_configs = [
310 { job_name = "journal";
311 journal = {
312 json = true;
313 max_age = "12h";
314 path = "/var/log/journal";
315 labels = {
316 job = "systemd-journal";
317 };
318 };
319 relabel_configs = [
320 { source_labels = ["__journal__systemd_unit"];
321 target_label = "unit";
322 }
323 { source_labels = ["__journal__hostname"];
324 target_label = "nodename";
325 }
326 ];
327 }
328 ];
329 };
330 };
331 systemd.services.promtail.serviceConfig.Environment = [
332 "ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH=go1.19"
333 ];
334 299
335 services.apcupsd = { 300 services.apcupsd = {
336 enable = true; 301 enable = true;
diff --git a/hosts/vidhar/network/default.nix b/hosts/vidhar/network/default.nix
index 02a8d648..3b48a7fc 100644
--- a/hosts/vidhar/network/default.nix
+++ b/hosts/vidhar/network/default.nix
@@ -3,7 +3,7 @@
3with lib; 3with lib;
4 4
5{ 5{
6 imports = [ ./pppoe.nix ./bifrost ./dhcp ]; 6 imports = [ ./pppoe ./bifrost ./dhcp ];
7 7
8 config = { 8 config = {
9 networking = { 9 networking = {
@@ -132,6 +132,7 @@ with lib;
132 "/srv/nfs/nix-store" = { 132 "/srv/nfs/nix-store" = {
133 device = "/nix/store"; 133 device = "/nix/store";
134 options = [ "bind" ]; 134 options = [ "bind" ];
135 fsType = "none";
135 }; 136 };
136 }; 137 };
137 }; 138 };
diff --git a/hosts/vidhar/network/pppoe.nix b/hosts/vidhar/network/pppoe/default.nix
index 7b342b69..36bf4f49 100644
--- a/hosts/vidhar/network/pppoe.nix
+++ b/hosts/vidhar/network/pppoe/default.nix
@@ -27,7 +27,37 @@ in {
27 ./no-double-timeout.patch 27 ./no-double-timeout.patch
28 ]; 28 ];
29 }); 29 });
30 peers.telekom.config = '' 30 peers = {
31 o2.config = ''
32 user DSL0004874856014@s93.bbi-o2.de
33 '';
34 };
35 };
36 systemd.services."pppd-o2" = {
37 stopIfChanged = true;
38
39 restartTriggers = with config; [
40 environment.etc."ppp/pap-secrets".source
41 environment.etc."ppp/options".source
42 environment.etc."ppp/ip-pre-up".source
43 environment.etc."ppp/ip-up".source
44 environment.etc."ppp/ip-down".source
45 ];
46
47 serviceConfig.LoadCredential = [
48 "password:${config.sops.secrets."o2-password".path}"
49 ];
50
51 bindsTo = [ "sys-subsystem-net-devices-telekom.device" ];
52 after = [ "sys-subsystem-net-devices-telekom.device" ];
53 };
54 sops.secrets."o2-password" = {
55 format = "binary";
56 sopsFile = ./o2-password;
57 };
58
59 environment.etc = {
60 "ppp/options".text = ''
31 nodefaultroute 61 nodefaultroute
32 ifname ${pppInterface} 62 ifname ${pppInterface}
33 lcp-echo-adaptive 63 lcp-echo-adaptive
@@ -39,29 +69,14 @@ in {
39 plugin pppoe.so 69 plugin pppoe.so
40 pppoe-padi-timeout 1 70 pppoe-padi-timeout 1
41 pppoe-padi-attempts 10 71 pppoe-padi-attempts 10
42 user congstar
43 password congstar
44 nic-telekom 72 nic-telekom
45 debug 73 debug
46 +ipv6 74 +ipv6
47 ''; 75 '';
48 }; 76 "ppp/pap-secrets".text = ''
49 systemd.services."pppd-telekom" = { 77 congstar * congstar *
50 stopIfChanged = true; 78 DSL0004874856014@s93.bbi-o2.de * @/run/credentials/pppd-o2.service/password *
51 79 '';
52 serviceConfig = {
53 Type = lib.mkForce "notify";
54 ExecStart = lib.mkForce "${getBin config.services.pppd.package}/sbin/pppd call telekom up_sdnotify nolog";
55 PIDFile = "/run/pppd/${pppInterface}.pid";
56 };
57 restartTriggers = with config; [
58 environment.etc."ppp/ip-pre-up".source
59 environment.etc."ppp/ip-up".source
60 environment.etc."ppp/ip-down".source
61 ];
62 };
63
64 environment.etc = {
65 "ppp/ip-pre-up".source = pkgs.resholve.writeScript "ip-pre-up" { 80 "ppp/ip-pre-up".source = pkgs.resholve.writeScript "ip-pre-up" {
66 interpreter = pkgs.runtimeShell; 81 interpreter = pkgs.runtimeShell;
67 inputs = [ pkgs.iproute2 pkgs.ethtool ]; 82 inputs = [ pkgs.iproute2 pkgs.ethtool ];
@@ -137,9 +152,5 @@ in {
137 "net.core.rmem_max" = 4194304; 152 "net.core.rmem_max" = 4194304;
138 "net.core.wmem_max" = 4194304; 153 "net.core.wmem_max" = 4194304;
139 }; 154 };
140 systemd.services."pppd-telekom" = {
141 bindsTo = [ "sys-subsystem-net-devices-telekom.device" ];
142 after = [ "sys-subsystem-net-devices-telekom.device" ];
143 };
144 }; 155 };
145} 156}
diff --git a/hosts/vidhar/network/no-double-timeout.patch b/hosts/vidhar/network/pppoe/no-double-timeout.patch
index 53f41ae1..53f41ae1 100644
--- a/hosts/vidhar/network/no-double-timeout.patch
+++ b/hosts/vidhar/network/pppoe/no-double-timeout.patch
diff --git a/hosts/vidhar/network/pppoe/o2-password b/hosts/vidhar/network/pppoe/o2-password
new file mode 100644
index 00000000..cd3aed78
--- /dev/null
+++ b/hosts/vidhar/network/pppoe/o2-password
@@ -0,0 +1,18 @@
1{
2 "data": "ENC[AES256_GCM,data:mxHA3rrs5Sc50jAP,iv:iW1ua7wjZR8rPwXw21TdFK+fbfosc1CmnrTG34OJ2zM=,tag:pZ/FAHupnKy0wHtF6RN7yA==,type:str]",
3 "sops": {
4 "age": [
5 {
6 "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866",
7 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpUzAvSlJkSFhhRTFLY0VO\nU1VYbFhpMEpxaFhlb2NyS0xDNU5oMm9EZzJnCm5vbTM4c3lFMU5EajhwTGd6MTVx\nZTFmNVlyaVZuRy9hL2VnWFR0TTNEemsKLS0tIDdTemNMTTllQ1pmb0JNTlVGcTlU\nWjQ2MW4yVmtvRng3TlRDbmpHdmRkbUEKtIVAq4aZD6rhtX7+67EE5eOKAtGsVpBg\nPkfjkyV8ifBEx/lwDaJSHpLPfkbI9oArTL8BloodJEEGql5PXZxtvg==\n-----END AGE ENCRYPTED FILE-----\n"
8 },
9 {
10 "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l",
11 "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmUk1oZGdjL25YbGRzdFFh\nRllkcU1IM0x6a2M2S0JicDBFYnBxMWluaEFzCjJ3WHozNkw0RThCMG5BNE5uUkZa\nTnV1OHpaSkMrTk9XM1NRWmxlTmRuUFkKLS0tIE9qdXVWOG9CL0MyS1JXbzhmbVdC\nZlRBWm1SSTZWYzBDc1U4ci94a0hMcHcKLgbJSAMUJ9VaXVmYQe+Uj13KrWFe4QvJ\nRcibCyOJH/VO3rmxU8RAkx0jaH448h9klWhs583Od5yNg7GleC+/qg==\n-----END AGE ENCRYPTED FILE-----\n"
12 }
13 ],
14 "lastmodified": "2026-04-14T15:24:19Z",
15 "mac": "ENC[AES256_GCM,data:/dr0bXAf0v5K9LdKw7RzTTL8Qw/WqiHqLk0EbahDnFg3cVplV0s+ImCnxmhutv3hxdtMZ2dmLBfb8CYb/ZLc4HtNT/K2iKGQM7pF4+XxIjS35Q1JUcXxLrsGZcpARuCZ0AJnKo8yFgtM64dYcbxHlRwGG4u4Ds9fEHHLUMigNM0=,iv:jfFlfscUB7S1JjL/uBeW3uD4bugCT9Cj/vigGvGXrlA=,tag:suol02QD4jRH/QulWoV21A==,type:str]",
16 "version": "3.12.2"
17 }
18}
diff --git a/hosts/vidhar/prometheus/default.nix b/hosts/vidhar/prometheus/default.nix
index 35942c53..c0941688 100644
--- a/hosts/vidhar/prometheus/default.nix
+++ b/hosts/vidhar/prometheus/default.nix
@@ -59,7 +59,7 @@ in {
59 systemd = { 59 systemd = {
60 enable = true; 60 enable = true;
61 extraFlags = [ 61 extraFlags = [
62 "--systemd.collector.unit-include=(dhcpcd|pppd-telekom|radvd|ndppd)\.service" 62 "--systemd.collector.unit-include=(dhcpcd|pppd-.+|radvd|ndppd)\.service"
63 "--systemd.collector.enable-restart-count" 63 "--systemd.collector.enable-restart-count"
64 "--systemd.collector.enable-ip-accounting" 64 "--systemd.collector.enable-ip-accounting"
65 ]; 65 ];
@@ -202,13 +202,6 @@ in {
202 relabel_configs = relabelHosts; 202 relabel_configs = relabelHosts;
203 scrape_interval = "1s"; 203 scrape_interval = "1s";
204 } 204 }
205 { job_name = "promtail";
206 static_configs = [
207 { targets = ["localhost:9080"]; }
208 ];
209 relabel_configs = relabelHosts;
210 scrape_interval = "1s";
211 }
212 { job_name = "apcupsd"; 205 { job_name = "apcupsd";
213 static_configs = [ 206 static_configs = [
214 { targets = ["localhost:${toString config.services.prometheus.exporters.apcupsd.port}"]; } 207 { targets = ["localhost:${toString config.services.prometheus.exporters.apcupsd.port}"]; }
diff --git a/installer/default.nix b/installer/default.nix
index 3fd3e655..26f38572 100644
--- a/installer/default.nix
+++ b/installer/default.nix
@@ -8,11 +8,7 @@ with lib;
8 ]; 8 ];
9 9
10 config = { 10 config = {
11 boot = { 11 boot.initrd.kernelModules = [ "e1000e" "virtio_net" ];
12 initrd.kernelModules = [ "e1000e" "virtio_net" ];
13 kernelPackages = pkgs.linuxPackages_7_0;
14 zfs.package = pkgs.zfs_unstable;
15 };
16 12
17 hardware.cpu.amd.updateMicrocode = config.hardware.enableRedistributableFirmware; 13 hardware.cpu.amd.updateMicrocode = config.hardware.enableRedistributableFirmware;
18 14
diff --git a/overlays/smartprom/default.nix b/overlays/smartprom/default.nix
index 35e94608..eaeb080d 100644
--- a/overlays/smartprom/default.nix
+++ b/overlays/smartprom/default.nix
@@ -1,23 +1,28 @@
1{ prev, sources, ... }: 1{ prev, final, sources, flakeInputs, ... }:
2{ 2{
3 smartprom = 3 smartprom = let
4 with prev.poetry2nix; 4 project = flakeInputs.pyproject-nix.lib.project.loadRequirementsTxt {
5 mkPoetryApplication { 5 projectRoot = sources.smartprom.src;
6 inherit (sources.smartprom) pname version; 6 };
7 projectDir = cleanPythonSources { 7 python = final.python3;
8 src = prev.runCommand "sources" {} '' 8 in python.pkgs.buildPythonApplication {
9 mkdir $out 9 pname = "smartprom";
10 cp -r ${sources.smartprom.src}/. $out 10 version = "2.3.0";
11 11
12 mkdir $out/smartprom 12 src = prev.runCommand "sources" {} ''
13 mv $out/megaraid.py $out/smartprom 13 mkdir $out
14 mv $out/smartprom.py $out/smartprom/__main__.py 14 cp -r ${sources.smartprom.src}/. $out
15 sed -ri 's/import megaraid/from . import megaraid/' $out/smartprom/__main__.py
16 echo >> $out/smartprom/__init__.py
17 15
18 cp ${./pyproject.toml} $out/pyproject.toml 16 mkdir $out/smartprom
19 cp ${./poetry.lock} $out/poetry.lock 17 mv $out/megaraid.py $out/smartprom
20 ''; 18 mv $out/smartprom.py $out/smartprom/__main__.py
21 }; 19 sed -ri 's/import megaraid/from . import megaraid/' $out/smartprom/__main__.py
22 }; 20 echo >> $out/smartprom/__init__.py
21
22 cp ${./pyproject.toml} $out/pyproject.toml
23 '';
24
25 pyproject = true;
26 propagatedBuildInputs = (project.renderers.withPackages { inherit python; }) python.pkgs;
27 };
23} 28}
diff --git a/overlays/smartprom/poetry.lock b/overlays/smartprom/poetry.lock
deleted file mode 100644
index de8be1f8..00000000
--- a/overlays/smartprom/poetry.lock
+++ /dev/null
@@ -1,21 +0,0 @@
1# This file is automatically @generated by Poetry and should not be changed by hand.
2
3[[package]]
4name = "prometheus-client"
5version = "0.16.0"
6description = "Python client for the Prometheus monitoring system."
7category = "main"
8optional = false
9python-versions = ">=3.6"
10files = [
11 {file = "prometheus_client-0.16.0-py3-none-any.whl", hash = "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab"},
12 {file = "prometheus_client-0.16.0.tar.gz", hash = "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48"},
13]
14
15[package.extras]
16twisted = ["twisted"]
17
18[metadata]
19lock-version = "2.0"
20python-versions = ">=3.10.0,<3.12"
21content-hash = "a84309056a73a8051b1c506324a43036ecfa6e4584882d2ec30ef1d6e030b1a1"
diff --git a/overlays/smartprom/pyproject.toml b/overlays/smartprom/pyproject.toml
index 8ca28f00..620efa1a 100644
--- a/overlays/smartprom/pyproject.toml
+++ b/overlays/smartprom/pyproject.toml
@@ -1,16 +1,12 @@
1[tool.poetry] 1[project]
2name = "smartprom" 2name = "smartprom"
3version = "2.3.0" 3version = "2.3.0"
4authors = [] 4dependencies = [
5description = "" 5 "prometheus-client"
6]
6 7
7[tool.poetry.scripts] 8[project.scripts]
8smartprom = "smartprom.__main__:main" 9smartprom = "smartprom.__main__:main"
9 10
10[tool.poetry.dependencies] 11[tool.setuptools]
11python = ">=3.10.0,<3.13" 12packages = ["smartprom"]
12prometheus-client = "^0.16.0"
13
14[build-system]
15requires = ["poetry-core>=1.0.0"]
16build-backend = "poetry.core.masonry.api" \ No newline at end of file