116 lines
3.4 KiB
Nix
116 lines
3.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
system,
|
|
namespace,
|
|
...
|
|
}:
|
|
let
|
|
defaultSops = (lib.snowfall.fs.get-file "secrets/secrets.yaml");
|
|
isx86 = system == "x86_64-linux";
|
|
user = config.${namespace}.user.name;
|
|
in
|
|
{
|
|
# Permission modes are in octal representation (same as chmod),
|
|
# the digits represent: user|group|others
|
|
# 7 - full (rwx)
|
|
# 6 - read and write (rw-)
|
|
# 5 - read and execute (r-x)
|
|
# 4 - read only (r--)
|
|
# 3 - write and execute (-wx)
|
|
# 2 - write only (-w-)
|
|
# 1 - execute only (--x)
|
|
# 0 - none (---)
|
|
# Either a user id or group name representation of the secret owner
|
|
# It is recommended to get the user name from `config.users.users.<?name>.name` to avoid misconfiguration
|
|
# Either the group id or group name representation of the secret group
|
|
# It is recommended to get the group name from `config.users.users.<?name>.group` to avoid misconfiguration
|
|
sops = {
|
|
defaultSopsFile = defaultSops;
|
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
|
|
|
# ------------------------------
|
|
# Secrets
|
|
# ------------------------------
|
|
secrets = {
|
|
"wifi" = { };
|
|
|
|
"matt_password" = {
|
|
neededForUsers = true;
|
|
mode = "0600";
|
|
owner = config.users.users."${user}".name;
|
|
group = config.users.users."${user}".group;
|
|
};
|
|
|
|
# ------------------------------
|
|
# SSH keys
|
|
# ------------------------------
|
|
# "ssh-keys-public/desktop-nixos" = {
|
|
# sopsFile = sharedSops;
|
|
# mode = "0644";
|
|
# owner = config.users.users."${user}".name;
|
|
# group = config.users.users."${user}".group;
|
|
# restartUnits = [ "sshd.service" ];
|
|
# };
|
|
# "ssh-keys-private/desktop-nixos" = {
|
|
# sopsFile = sharedSops;
|
|
# mode = "0600";
|
|
# owner = config.users.users."${user}".name;
|
|
# group = config.users.users."${user}".group;
|
|
# restartUnits = [ "sshd.service" ];
|
|
# };
|
|
# "ssh-keys-public/desktop-nixos-root" = {
|
|
# sopsFile = sharedSops;
|
|
# path = "/root/.ssh/id_ed25519.pub";
|
|
# mode = "0600";
|
|
# restartUnits = [ "sshd.service" ];
|
|
# };
|
|
# "ssh-keys-private/desktop-nixos-root" = {
|
|
# sopsFile = sharedSops;
|
|
# path = "/root/.ssh/id_ed25519";
|
|
# mode = "0600";
|
|
# restartUnits = [ "sshd.service" ];
|
|
# };
|
|
|
|
# ------------------------------
|
|
# Secureboot keys
|
|
# ------------------------------
|
|
"secureboot/GUID" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/GUID";
|
|
mode = "0640";
|
|
};
|
|
"secureboot/keys/db-key" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/keys/db/db.key";
|
|
mode = "0640";
|
|
};
|
|
"secureboot/keys/db-pem" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/keys/db/db.pem";
|
|
mode = "0640";
|
|
};
|
|
"secureboot/keys/KEK-key" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/keys/KEK/KEK.key";
|
|
mode = "0640";
|
|
};
|
|
"secureboot/keys/KEK-pem" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/keys/KEK/KEK.pem";
|
|
mode = "0640";
|
|
};
|
|
"secureboot/keys/PK-key" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/keys/PK/PK.key";
|
|
mode = "0640";
|
|
};
|
|
"secureboot/keys/PK-pem" = lib.mkIf isx86 {
|
|
path = "/etc/secureboot/keys/PK/PK.pem";
|
|
mode = "0640";
|
|
};
|
|
};
|
|
|
|
# ------------------------------
|
|
# Templates
|
|
# ------------------------------
|
|
templates = {
|
|
# ...
|
|
};
|
|
};
|
|
}
|