dotfiles.nix/nixos/common/global/age.nix

37 lines
1.1 KiB
Nix
Raw Normal View History

2024-01-21 22:32:25 +08:00
{ config, pkgs, inputs, ... }:
2024-01-21 21:03:57 +08:00
let
hostname = config.networking.hostName;
in
{
2024-01-21 22:32:25 +08:00
imports = [
inputs.agenix.nixosModules.default
inputs.agenix-rekey.nixosModules.default
];
2024-06-16 23:10:03 +08:00
nixpkgs.overlays = [
inputs.agenix-rekey.overlays.default
];
2024-01-21 21:03:57 +08:00
environment.systemPackages = with pkgs; [
agenix-rekey
];
age = {
# Master identity used for decryption
rekey.masterIdentities = [ ../users/sajenim/agenix-rekey.pub ];
# Pubkey for rekeying
rekey.hostPubkey = ../../${hostname}/ssh_host_ed25519_key.pub;
2024-01-21 22:18:12 +08:00
# Where we store the rekeyed secrets
2024-01-21 21:03:57 +08:00
rekey.cacheDir = "/var/tmp/agenix-rekey/\"$UID\"";
2024-04-01 10:00:19 +08:00
# All rekeyed secrets for each host will be collected in a derivation which copies them to the nix store when it is built
rekey.storageMode = "derivation";
2024-01-21 21:03:57 +08:00
};
# Required to persist `/var/tmp/agenix-rekey`
environment.persistence."/persist".directories = [
{ directory = "/var/tmp/agenix-rekey"; mode = "1777"; }
];
2024-01-21 22:18:12 +08:00
# As user not a trusted-users in our nix.conf
# we must add age.rekey.cacheDir as a global extra sandbox path
nix.settings.extra-sandbox-paths = [ "/var/tmp/agenix-rekey" ];
2024-01-21 21:03:57 +08:00
}