Files
nixos/secrets/secrets.nix
T

156 lines
6.0 KiB
Nix
Raw Normal View History

2022-04-12 15:13:29 +00:00
let
2025-12-26 23:29:28 -06:00
hosts = (builtins.fromJSON (builtins.readFile ../network.json)).hosts;
filterAttrs =
pred: set:
builtins.removeAttrs set (builtins.filter (name: !pred name set.${name}) (builtins.attrNames set));
2025-01-21 14:53:11 -06:00
2025-12-26 23:29:28 -06:00
# linode = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q";
# jude = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0 root@jude";
# isaiah = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHleYKtfV4W1Z63Ysu9w5Rbglqlz4F92YcZoMkucoTNf";
# genesis = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEI9jbTPmEWQ0F2bLYmnIOLmBnag1fkKxHRjz3X8lB/k root@genesis";
# gitlab = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC7hesFWwlmSbWPJWUiF8fIppy5a83yXw84O0Ytz+Zyq";
# hosea = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz";
# jeremiah = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0";
# matrix = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMIbvNNYrsT9sSBSwIL9c0LiHDaOiztlTJZAGgTDGUHq root@vm-matrix";
# exodus = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFxmnCj2E9DxcnefPW+n4yCuLShxqr0p024riogdeXA3";
# systems = [
# gitlab
# genesis
# linode
# jude
# isaiah
# hosea
# jeremiah
# matrix
# exodus
# ];
systems = (
builtins.attrValues (builtins.mapAttrs (_: v: v.pubkey) (filterAttrs (_: v: v ? "pubkey") hosts))
);
builders = (
builtins.attrValues (
builtins.mapAttrs (_: v: v.pubkey) (filterAttrs (_: v: v ? "builder" && v.builder) hosts)
)
);
2022-04-12 15:13:29 +00:00
2025-04-14 15:04:54 -05:00
user_gitlab = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEwX8DZRRbZ+Iwo90dROg/61lisazAAGK/W8aqWfWcJr greg@nixos";
user_genesis_virt = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWPSFQT0AH77wrwRhiskcBS0w4ZakBRdJywYYBsnm3S greg@genesis";
user_ivr = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYzms+KIe5/bYF3uCyFjA5e1AgMPLIA3c4k417coqBe gregory.hellings@ls23003";
user_jude = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnRc/kBhxcjpUtiRQY+BXnSObdp0jFL1395wAQxJip7 greg@jude";
user_linode = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode";
2026-04-08 08:00:35 -05:00
user_lithic = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPVlMoN2pkKRRwKNuMbMczki5ybR34wvjdgDNlgR74Wh greg@gregs-MacBook-Pro-16-inch-Nov-2024";
2024-11-18 21:11:17 -06:00
user_isaiah = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAl6DJVrPSujvJSAEA5Q8tRrzfJs/c6DMwqwQEUFffIR greg@isaiah";
user_hosea = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrqJQvDspLi1vXQRJ/Z5kN/F8jCBHvaXjo+5zLuIYjR greg@hosea";
user_jeremiah = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIYIiecdyM9c7tXgR96983K3wqiJeQRMbrzGIF8Wy6uO greg@jeremiah";
2025-01-21 14:53:11 -06:00
user_exodus = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC189EnvWjNUp3xSzPMAtw85oQEsvP1tQR1TK640nLx6 greg@exodus";
2023-12-12 11:16:18 -06:00
users = [
2025-04-14 15:04:54 -05:00
user_gitlab
user_genesis_virt
user_ivr
user_jude
user_linode
2026-04-08 08:00:35 -05:00
user_lithic
2024-11-18 21:11:17 -06:00
user_isaiah
user_hosea
user_jeremiah
2025-01-21 14:53:11 -06:00
user_exodus
];
2023-05-03 04:01:36 +00:00
everyone = systems ++ users;
2022-04-12 15:13:29 +00:00
in
{
# Demo of how to create it
"matrix.age".publicKeys = everyone;
2025-07-02 11:55:35 -05:00
"tailscale.age".publicKeys = everyone;
# At the point where you want to use it, put
# age.secrets.matrix.file = ../../secrets/matrix.age;
# Then you can reference the file at /run/agenix/matrix
"nextcloudadmin.age".publicKeys = everyone;
2022-10-06 22:00:41 +00:00
"linode-forgejo-runner.age".publicKeys = everyone;
"jude-forgejo-runner.age".publicKeys = everyone;
"minio.age".publicKeys = everyone;
2023-12-12 20:44:53 -06:00
2025-10-16 17:23:21 -05:00
"attic.age".publicKeys = everyone;
2025-12-26 23:29:28 -06:00
"cache-private-key.age".publicKeys = builders ++ [
2025-01-21 14:53:11 -06:00
user_jeremiah
user_isaiah
user_jude
user_exodus
];
2025-12-26 23:29:28 -06:00
"cache-credentials.age".publicKeys = builders ++ [
2025-01-21 14:53:11 -06:00
user_jeremiah
user_isaiah
user_jude
user_exodus
];
"restic-env.age".publicKeys = everyone;
"restic-pw.age".publicKeys = everyone;
2024-08-15 04:48:29 +00:00
2026-03-25 06:02:17 -05:00
"grafana-secret-key.age".publicKeys = everyone;
"dendrite.age".publicKeys = everyone;
"dendrite_key.age".publicKeys = everyone;
2025-05-20 22:51:22 -05:00
2025-12-06 23:17:00 -06:00
"gitea/buildbotWorkersFile.age".publicKeys = everyone;
"gitea/oauthSecret.age".publicKeys = everyone;
"gitea/oauthToken.age".publicKeys = everyone;
"gitea/webhookSecret.age".publicKeys = everyone;
"gitea/workerPassword.age".publicKeys = everyone;
2026-04-05 16:51:31 -05:00
"gitea/runner-isaiah-podman.age".publicKeys = everyone;
2025-12-06 23:17:00 -06:00
"gitlab/secret.age".publicKeys = everyone;
"gitlab/otp.age".publicKeys = everyone;
"gitlab/db.age".publicKeys = everyone;
2025-06-11 21:29:20 -05:00
"gitlab/db-password.age".publicKeys = everyone;
"gitlab/jws.age".publicKeys = everyone;
# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.crt -days 365 -nodes -subj '/CN=issuer'
# Then pipe the resulting files to agenix -e <foo>
"gitlab/key.age".publicKeys = everyone;
"gitlab/cert.age".publicKeys = everyone;
2025-05-28 00:10:50 -05:00
"gitlab/salt.age".publicKeys = everyone;
"gitlab/primary-key.age".publicKeys = everyone;
"gitlab/deterministic-key.age".publicKeys = everyone;
2025-05-20 22:27:28 -05:00
"gitlab/nixos-qemu-shell.age".publicKeys = everyone;
2025-05-20 22:51:22 -05:00
"gitlab/nixos-vbox-shell.age".publicKeys = everyone;
"gitlab/kubernetes-k3s-local.age".publicKeys = everyone;
"gitlab/linode-deployer-runner-reg.age".publicKeys = everyone;
2024-03-25 15:18:53 -05:00
"acme_password.age".publicKeys = everyone;
"ca/intermediate_key.age".publicKeys = everyone;
"ca/root_key.age".publicKeys = everyone;
2024-04-21 15:03:28 -05:00
"minio_secret_access_key.age".publicKeys = everyone;
"minio_access_key_id.age".publicKeys = everyone;
2025-05-19 20:10:21 -05:00
2025-05-26 17:10:01 -05:00
"kubernetes/bw_secret.age".publicKeys = everyone;
2025-12-26 23:29:28 -06:00
"kubernetes/kubernetesToken.age".publicKeys = builders ++ [
2025-05-19 20:10:21 -05:00
user_isaiah
2025-12-26 23:29:28 -06:00
user_exodus
2025-05-19 22:01:49 -05:00
user_jeremiah
2025-05-19 20:10:21 -05:00
user_jude
];
2025-10-16 17:23:21 -05:00
"compose/attic.env.age".publicKeys = everyone;
2026-03-25 07:24:24 -05:00
"grafana-api-token.age".publicKeys = everyone;
2026-03-28 23:24:52 -05:00
# Nebula mesh network — one private key per host, encrypted to that host's
# system key + all user keys so Greg can (re)encrypt them from any machine.
"nebula/genesis.key.age".publicKeys = everyone;
"nebula/hosea.key.age".publicKeys = everyone;
"nebula/isaiah.key.age".publicKeys = everyone;
"nebula/jeremiah.key.age".publicKeys = everyone;
"nebula/linode.key.age".publicKeys = everyone;
"nebula/zeke.key.age".publicKeys = everyone;
"nebula/exodus.key.age".publicKeys = everyone;
2026-04-08 08:00:35 -05:00
# Custom files
"lithic/cargo-config.toml.age".publicKeys = everyone;
2022-04-12 15:13:29 +00:00
}