refactor: reduce duplication and improve consistency across hosts

- Centralize home-manager _module.args in profiles/nixos.nix via sharedModules
- Add lib/secrets.nix with mkSyncthingSecrets helper for DRY secret definitions
- Move syncthing device IDs to lib/constants.nix
- Standardize hostname handling (Darwin hosts now use hostname arg)
- Add missing networking.hostName to tahani
- Fix redundant string interpolations
This commit is contained in:
2025-12-23 14:13:47 +00:00
parent 4f93e60f3c
commit 1d8a0c660c
14 changed files with 95 additions and 85 deletions

View File

@@ -11,4 +11,10 @@
nixos = "25.11";
homeManager = "25.11";
};
syncthingDeviceIds = {
tahani = "6B7OZZF-TEAMUGO-FBOELXP-Z4OY7EU-5ZHLB5T-V6Z3UDB-Q2DYR43-QBYW6QM";
jason = "42II2VO-QYPJG26-ZS3MB2I-AOPVZ67-JJNSE76-U54CO5Y-634A5OG-ECU4YQA";
chidi = "N7W6SUT-QO6J4BE-T3Y65SM-OFGYGNV-TGYBJPX-JVN4Z72-AENZ247-KWXOQA6";
};
}

25
lib/secrets.nix Normal file
View File

@@ -0,0 +1,25 @@
{
mkSyncthingSecrets = {
hostname,
user,
isDarwin,
}: let
homeDir =
if isDarwin
then "/Users/${user}"
else "/home/${user}";
in {
"${hostname}-syncthing-cert" = {
sopsFile = ../secrets/${hostname}-syncthing-cert;
format = "binary";
owner = user;
path = "${homeDir}/.config/syncthing/cert.pem";
};
"${hostname}-syncthing-key" = {
sopsFile = ../secrets/${hostname}-syncthing-key;
format = "binary";
owner = user;
path = "${homeDir}/.config/syncthing/key.pem";
};
};
}