flake: add commonModules and enable nixos-exporter on all hosts
Some checks failed
Run nix flake check / flake-check (push) Has been cancelled

Refactor flake.nix to use a commonModules list for modules shared by
all hosts (overlays, sops-nix, nixos-exporter). This simplifies adding
new modules that apply to all hosts.

Move nixos-exporter configuration to system/monitoring/metrics.nix
alongside node-exporter and systemd-exporter.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-06 23:53:34 +01:00
parent e57623f8a1
commit a47e95f9d2
3 changed files with 50 additions and 145 deletions

161
flake.nix
View File

@@ -47,6 +47,17 @@
alerttonotify.overlays.default alerttonotify.overlays.default
labmon.overlays.default labmon.overlays.default
]; ];
# Common modules applied to all hosts
commonModules = [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
sops-nix.nixosModules.sops
nixos-exporter.nixosModules.default
];
allSystems = [ allSystems = [
"x86_64-linux" "x86_64-linux"
"aarch64-linux" "aarch64-linux"
@@ -63,15 +74,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/ns1 ./hosts/ns1
sops-nix.nixosModules.sops
]; ];
}; };
ns2 = nixpkgs.lib.nixosSystem { ns2 = nixpkgs.lib.nixosSystem {
@@ -79,15 +83,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/ns2 ./hosts/ns2
sops-nix.nixosModules.sops
]; ];
}; };
ha1 = nixpkgs.lib.nixosSystem { ha1 = nixpkgs.lib.nixosSystem {
@@ -95,15 +92,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/ha1 ./hosts/ha1
sops-nix.nixosModules.sops
]; ];
}; };
template1 = nixpkgs.lib.nixosSystem { template1 = nixpkgs.lib.nixosSystem {
@@ -111,15 +101,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/template ./hosts/template
sops-nix.nixosModules.sops
]; ];
}; };
template2 = nixpkgs.lib.nixosSystem { template2 = nixpkgs.lib.nixosSystem {
@@ -127,15 +110,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/template2 ./hosts/template2
sops-nix.nixosModules.sops
]; ];
}; };
http-proxy = nixpkgs.lib.nixosSystem { http-proxy = nixpkgs.lib.nixosSystem {
@@ -143,15 +119,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/http-proxy ./hosts/http-proxy
sops-nix.nixosModules.sops
]; ];
}; };
ca = nixpkgs.lib.nixosSystem { ca = nixpkgs.lib.nixosSystem {
@@ -159,15 +128,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/ca ./hosts/ca
sops-nix.nixosModules.sops
]; ];
}; };
monitoring01 = nixpkgs.lib.nixosSystem { monitoring01 = nixpkgs.lib.nixosSystem {
@@ -175,17 +137,9 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/monitoring01 ./hosts/monitoring01
sops-nix.nixosModules.sops
labmon.nixosModules.labmon labmon.nixosModules.labmon
nixos-exporter.nixosModules.default
]; ];
}; };
jelly01 = nixpkgs.lib.nixosSystem { jelly01 = nixpkgs.lib.nixosSystem {
@@ -193,15 +147,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/jelly01 ./hosts/jelly01
sops-nix.nixosModules.sops
]; ];
}; };
nix-cache01 = nixpkgs.lib.nixosSystem { nix-cache01 = nixpkgs.lib.nixosSystem {
@@ -209,15 +156,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/nix-cache01 ./hosts/nix-cache01
sops-nix.nixosModules.sops
]; ];
}; };
pgdb1 = nixpkgs.lib.nixosSystem { pgdb1 = nixpkgs.lib.nixosSystem {
@@ -225,15 +165,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/pgdb1 ./hosts/pgdb1
sops-nix.nixosModules.sops
]; ];
}; };
nats1 = nixpkgs.lib.nixosSystem { nats1 = nixpkgs.lib.nixosSystem {
@@ -241,15 +174,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/nats1 ./hosts/nats1
sops-nix.nixosModules.sops
]; ];
}; };
testvm01 = nixpkgs.lib.nixosSystem { testvm01 = nixpkgs.lib.nixosSystem {
@@ -257,15 +183,8 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/testvm01 ./hosts/testvm01
sops-nix.nixosModules.sops
]; ];
}; };
vault01 = nixpkgs.lib.nixosSystem { vault01 = nixpkgs.lib.nixosSystem {
@@ -273,33 +192,19 @@
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
}; };
modules = [ modules = commonModules ++ [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/vault01 ./hosts/vault01
sops-nix.nixosModules.sops
]; ];
}; };
vaulttest01 = nixpkgs.lib.nixosSystem { vaulttest01 = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { specialArgs = {
inherit inputs self sops-nix; inherit inputs self sops-nix;
};
modules = commonModules ++ [
./hosts/vaulttest01
];
}; };
modules = [
(
{ config, pkgs, ... }:
{
nixpkgs.overlays = commonOverlays;
}
)
./hosts/vaulttest01
sops-nix.nixosModules.sops
];
};
}; };
packages = forAllSystems ( packages = forAllSystems (
{ pkgs }: { pkgs }:

View File

@@ -99,23 +99,6 @@
]; ];
}; };
# NixOS metrics exporter
services.prometheus.exporters.nixos = {
enable = true;
flake = {
enable = true;
url = "git+https://git.t-juice.club/torjus/nixos-servers.git";
};
};
# Register nixos-exporter as a Prometheus scrape target
homelab.monitoring.scrapeTargets = [
{
job_name = "nixos-exporter";
port = 9971;
}
];
labmon = { labmon = {
enable = true; enable = true;

View File

@@ -18,4 +18,21 @@
"--systemd.collector.enable-ip-accounting" "--systemd.collector.enable-ip-accounting"
]; ];
}; };
services.prometheus.exporters.nixos = {
enable = true;
# Default port: 9971
flake = {
enable = true;
url = "git+https://git.t-juice.club/torjus/nixos-servers.git";
};
};
# Register nixos-exporter as a Prometheus scrape target
homelab.monitoring.scrapeTargets = [
{
job_name = "nixos-exporter";
port = 9971;
}
];
} }