sops n stuff
This commit is contained in:
@@ -1,73 +1,121 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
user = "matt";
|
||||
in
|
||||
{
|
||||
sops.defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
# 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 = ../../secrets/secrets.yaml;
|
||||
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
|
||||
sops.secrets."desktop/matt_password" = { };
|
||||
sops.secrets."desktop/matt_password".neededForUsers = true;
|
||||
# ------------------------------
|
||||
# Secrets
|
||||
# ------------------------------
|
||||
secrets = {
|
||||
"desktop/hass_token" = {
|
||||
mode = "0777";
|
||||
};
|
||||
"desktop/matt_password" = {
|
||||
neededForUsers = true;
|
||||
mode = "0600";
|
||||
owner = config.users.users."${user}".name;
|
||||
group = config.users.users."${user}".group;
|
||||
};
|
||||
"desktop/restic/user" = {
|
||||
mode = "0644";
|
||||
};
|
||||
"desktop/restic/password" = {
|
||||
mode = "0600";
|
||||
};
|
||||
"wifi" = { };
|
||||
|
||||
sops.secrets."desktop/hass_token" = { };
|
||||
sops.secrets."desktop/hass_token".mode = "0777";
|
||||
# ------------------------------
|
||||
# SSH keys
|
||||
# ------------------------------
|
||||
"ssh-keys-public/desktop-nixos" = {
|
||||
mode = "0644";
|
||||
owner = config.users.users."${user}".name;
|
||||
group = config.users.users."${user}".group;
|
||||
restartUnits = [ "sshd.service" ];
|
||||
};
|
||||
"ssh-keys-private/desktop-nixos" = {
|
||||
mode = "0600";
|
||||
owner = config.users.users."${user}".name;
|
||||
group = config.users.users."${user}".group;
|
||||
restartUnits = [ "sshd.service" ];
|
||||
};
|
||||
"ssh-keys-public/desktop-nixos-root" = {
|
||||
path = "/root/.ssh/id_ed25519.pub";
|
||||
mode = "0600";
|
||||
restartUnits = [ "sshd.service" ];
|
||||
};
|
||||
"ssh-keys-private/desktop-nixos-root" = {
|
||||
path = "/root/.ssh/id_ed25519";
|
||||
mode = "0600";
|
||||
restartUnits = [ "sshd.service" ];
|
||||
};
|
||||
|
||||
sops.secrets."desktop/restic/user" = { };
|
||||
sops.secrets."desktop/restic/password" = { };
|
||||
sops.templates."restic.env".content = ''
|
||||
RESTIC_REST_USER=${config.sops.placeholder."desktop/restic/user"}
|
||||
RESTIC_REST_PASSWORD=${config.sops.placeholder."desktop/restic/password"}
|
||||
'';
|
||||
# ------------------------------
|
||||
# Secureboot keys
|
||||
# ------------------------------
|
||||
"secureboot/GUID" = {
|
||||
path = "/etc/secureboot/GUID";
|
||||
mode = "0600";
|
||||
};
|
||||
"secureboot/keys/db-key" = {
|
||||
path = "/etc/secureboot/keys/db/db.key";
|
||||
mode = "0600";
|
||||
};
|
||||
"secureboot/keys/db-pem" = {
|
||||
path = "/etc/secureboot/keys/db/db.pem";
|
||||
mode = "0600";
|
||||
};
|
||||
"secureboot/keys/KEK-key" = {
|
||||
path = "/etc/secureboot/keys/KEK/KEK.key";
|
||||
mode = "0600";
|
||||
};
|
||||
"secureboot/keys/KEK-pem" = {
|
||||
path = "/etc/secureboot/keys/KEK/KEK.pem";
|
||||
mode = "0600";
|
||||
};
|
||||
"secureboot/keys/PK-key" = {
|
||||
path = "/etc/secureboot/keys/PK/PK.key";
|
||||
mode = "0600";
|
||||
};
|
||||
"secureboot/keys/PK-pem" = {
|
||||
path = "/etc/secureboot/keys/PK/PK.pem";
|
||||
mode = "0600";
|
||||
};
|
||||
};
|
||||
|
||||
sops.secrets."wifi" = { };
|
||||
|
||||
sops.secrets."ssh-keys-public/desktop-nixos" = {
|
||||
mode = "0644";
|
||||
};
|
||||
|
||||
sops.secrets."ssh-keys-private/desktop-nixos" = {
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."ssh-keys-public/desktop-nixos-root" = {
|
||||
path = "/root/.ssh/id_ed25519.pub";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."ssh-keys-private/desktop-nixos-root" = {
|
||||
path = "/root/.ssh/id_ed25519";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/GUID" = {
|
||||
path = "/etc/secureboot/GUID";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/keys/db-key" = {
|
||||
path = "/etc/secureboot/keys/db/db.key";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/keys/db-pem" = {
|
||||
path = "/etc/secureboot/keys/db/db.pem";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/keys/KEK-key" = {
|
||||
path = "/etc/secureboot/keys/KEK/KEK.key";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/keys/KEK-pem" = {
|
||||
path = "/etc/secureboot/keys/KEK/KEK.pem";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/keys/PK-key" = {
|
||||
path = "/etc/secureboot/keys/PK/PK.key";
|
||||
mode = "0600";
|
||||
};
|
||||
|
||||
sops.secrets."secureboot/keys/PK-pem" = {
|
||||
path = "/etc/secureboot/keys/PK/PK.pem";
|
||||
mode = "0600";
|
||||
# ------------------------------
|
||||
# Templates
|
||||
# ------------------------------
|
||||
templates = {
|
||||
"restic.env" = {
|
||||
mode = "0600";
|
||||
content = ''
|
||||
RESTIC_REST_USER=${config.sops.placeholder."desktop/restic/user"}
|
||||
RESTIC_REST_PASSWORD=${config.sops.placeholder."desktop/restic/password"}
|
||||
'';
|
||||
restartUnits = [
|
||||
"restic-backups-jallen-nas.service"
|
||||
"restic-backups-proton-drive.service"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user