dotfiles/hosts/dlaptop/sops.nix
2024-03-21 21:06:50 +03:00

63 lines
1.7 KiB
Nix

{ config, lib, ...}:
let
# Get the list of all secret files
secretsDir = ../../secrets/wifi;
secretFiles = builtins.attrNames (builtins.readDir secretsDir);
# Generate an attribute set where each attribute corresponds to a secret file
wifiSecrets = lib.genAttrs secretFiles (secret: {
sopsFile = ../../secrets/wifi/${secret};
format = "ini";
path = "/etc/NetworkManager/system-connections/${builtins.replaceStrings [".ini"] [""] secret}.nmconnection";
mode = "0400";
});
in
{
sops = {
defaultSopsFile = ../../secrets/generic.yaml;
age.sshKeyPaths = [ "/home/delta/.ssh/id_ed25519" ];
#age.keyFile = "/home/delta/.config/sops/age/keys.txt";
defaultSopsFormat = "yaml";
secrets = {
qqq = {
mode = "0400"; owner = "delta"; group = "users";
};
cloudflared = {
mode = "0400"; owner = "cloudflared"; group = "cloudflared";
};
"myservice/my_subdir/my_secret" = {};
singbox-aus = {
sopsFile = ../../secrets/singbox-aus.bin;
format = "binary";
mode = "0400";
owner = "socks";
group = "socks";
};
"nginx/graf1" = { };
"nginx/graf2" = { };
"nginx/kibana" = { };
templates ={
"nginx-graf1.conf"= {
content = '' proxy_pass ${config.sops.placeholder."nginx/graf1"}; '';
mode = "0444";
};
"nginx-graf2.conf"= {
content = '' proxy_pass ${config.sops.placeholder."nginx/graf2"}; '';
mode = "0444";
};
"nginx-kibana.conf"= {
content = '' proxy_pass ${config.sops.placeholder."nginx/kibana"}; '';
mode = "0444";
};
};
} // wifiSecrets;
};
}