No more secrets.nix.
KOXYNEPMHOWPUOUDAIDAVC2ZPUCLFGN23BM6QJ4UIDGVN73SUO7AC LYEDM2AG74FSFHLK5J4ZPYJVT2VTQBKA6BPP2W6LWR3GBQM76PDAC S5BW44UR2KEVGESVWPA4GVOX5REGJ2SNR3XJKYX66WHSNM7A4HAAC DPREV4LQNG3JNN6IIAS32BD2YQ6JUPN3ICN3FSRIFVLB2V6Y6DKQC ONJIY3TNGUJSQ4HRL2AIMDKYWYFICVZAHRU2GVY7LZ7ULWPY7NWQC L6SN5PMKPZ2VPVJAH2G64EU3T6L5XOWVDH7DP7RU4EC2TU377RPAC MOQV2NY4ETD5D727YAFZNDIGSD6OVGEEDSCS2K5G6G2TOKI5B2HQC 5G7WRBMWKG6DMCOHE6WQHTYZACUHO2UPBZRWN72CFH7P45NN5E7QC BDDKGGL7QNTFAX3ARMV4VK2XQCLOVJNFLXFCZB7IFCGEATCMVBIAC RNWOGVNATUUYTVBM44BM57OMCKDNOA5J4OKUNB5OJI2QGLFTTEIQC ZBZAKBTWMFRBVZ66JMLA22M3JRULPIH7G7OBU2AT3AHHEA3E4KOQC E5WANV7PYNPZFSJE4AMZABQ76TUNKVZN3M6ZFD5V6CKAFKG444NAC P5QV3CCWAECHHBFH5VZDWJMMQQ45I4YE75Y4YMY4KNXFHKFLDQRAC 4GGQX4QFLTB4FMCYJOIBPOAMZVC5FXUNEZGF3A7E7GUNNVM5WQHAC DQKCPBYIW34BPR3BNMCBID7HL3MHGKR47LGBJ6B7VSIKMCOV3EFAC O5U2RS6S4RUGVSOZPTJGD6HJOOO5VM7SPZUDUHU4G3BHZOTJH47QC 536UGGBYLNT7PYVG6DMOFVED73SFIEKTGX47PP5LGF56UCES5MNAC 354Y3VPLRRUOOZAFDG7RGEFDWBAX4DY2Y72EEGHRQTTV3D4E55MAC A4ACJV52DCYZKECMEKKQ7N2Q6VT2EYOQ3G3ERHJSZFHBRUX5VM6AC UIRZ4SMZZC2QZ7D4QFQJZZKFA3QOA5SOQBOAGOG3RLXTCSLS3QJAC ISKRPSY5MU5XKIV7FTBDYDPRKV6ONINH2SDIXY7QDGTXNCYN7YFQC J4AF2SGNGYFN6W3Y5WSLBUEHDPQURTXJUXXY7DWRQ6JTV5DCUNYAC 25SW345QYCSTF7R434DKRRLG5C7AU4O26TNPP6V2W7USECCZFDZQC IWFDDZQDLBZCSPQP3O2AWL5IHHM7KG5KL5JF7QG5AFLXSPLQQUTAC SUJ7TKWXHFZCEEQFGLRT4PZ4TYAXFLNDZVE57SN2AHXTLEPX7WXAC 2BGCCK64WA7SVJ2KLNVT6OHSW7MGRPUF4ZVRTSQWJ55RC652D2BQC 7AJ4T2F665FWRW47PCIZYIGQFSBEPRXBLUMBZO6FQBMOMKZ5HYXQC QOY7D3GZ3WF7HAMEHAW2CIUB5TDQCFE3YDZEO23R5MFQEBN635WAC AHAA7UNL2RRXP7KERGVCC42GB564WS5BYSSFEOXW3EKVMB2UVEOAC YQTJKSDUZ6Y6LSJGOKBYQOPG3IG5RFMRKO2JGVUN5Q7AHPGOWFTAC GQKXVOPSZ5OQOYQAVXKTNYSDZB222KUIB3VYF2M7UW2LNXPII6KQC RTBMBSBABSGTRICJ4AWBKWO3JJHBRKV6FGOMYPDD7X6SS6X35ZIQC XPKDQGFUFF4BT32ODPEJRZGBEOGZVDRAEN2EOWU7DBIN2QQX6KUAC KE4A6XYYKVBEVCWG4TPFRAO5EYJHCJB25VWNXB2NZNXNEPSDKH6QC HYBPXVO2BD6SK7IVFLS6YZFEN2HMSZDALXIUCJGSKVB3LYMLCWJAC HACMRPLPDJIRWINVHRKYM5N7RLT5273WQQYRJLA3URNXJBJ4FSVAC 4R56PJDQPYZ5FLFAMZSNY7UI5TKF6N5YCHCJU3ZBV5FHB46GYM5QC NXH6QM5S5OM2GWIB5PLFHG62HSZ7IAVCEGFCOY2CCO3KT3HOQYGQC AZMQDPPOPX35A4XNS37MH5A4PUOTOWIHTYRMKW55NEZW4Q7L7F2AC 4NYCEHYAWPTFWSQ53SDQFC2NQ6C3CY2PUZPYIXRPLWK77LW55XTAC BE4NH5IASMF5PMZ3D7YZI5XZ56FHJ7A3726FZHB3CF4PBMRUTHHAC RXJH46XLP6AFSIZZD4WEQA5A5YZLKHZ54ZUGCRH7TRAOH2Z4Q2VQC KXYLAJ5WZIXV5FQ4TU3IPHCO2YRKQBAZBW27LOA5EVWI2OLVPIIAC letin{"hosts/plum/matrix-registration-secret.age".publicKeys = [ plum ] ++ admins;"hosts/plum/cache/key.age".publicKeys = [ plum ] ++ admins;"hosts/plum/grafana/password.age".publicKeys = [ plum ] ++ admins;"modules/acme/environment.age".publicKeys = all;"hosts/kiwi/github2forgejo/environment.age".publicKeys = [ kiwi ] ++ admins;"hosts/kiwi/dr-radka-environment.age".publicKeys = [ kiwi ] ++ admins;"modules/common/z-ai-key.age".publicKeys = [ yuzu date kiwi ] ++ admins;"hosts/date/id.age".publicKeys = [ date ] ++ admins;"hosts/date/password.age".publicKeys = [ date ] ++ admins;"hosts/yuzu/id.age".publicKeys = [ yuzu ] ++ admins;"hosts/yuzu/password.age".publicKeys = [ yuzu ] ++ admins;"hosts/kiwi/id.age".publicKeys = [ kiwi ] ++ admins;"hosts/kiwi/password.age".publicKeys = [ kiwi ] ++ admins;"hosts/pear/id.age".publicKeys = [ pear ] ++ admins;"hosts/pear/password.age".publicKeys = [ pear ] ++ admins;}"hosts/plum/matrix-signing-key.age".publicKeys = [ plum ] ++ admins;"hosts/plum/id.age".publicKeys = [ plum ] ++ admins;"hosts/plum/password.age".publicKeys = [ plum ] ++ admins;"hosts/plum/forgejo-password.age".publicKeys = [ plum ] ++ admins;inherit (import ./keys.nix) jam plum pear kiwi yuzu date all admins;
# Serial: 12088237, Slot: 4# Name: age identity e86f5a7b# Created: Sat, 18 Oct 2025 19:46:03 +0000# PIN policy: Once (A PIN is required once per session, if set)# Touch policy: Never (A physical touch is NOT required to decrypt)# Recipient: age1yubikey1qt6g7rrkjj222fn2rkds2h76r450df5j0s0r7sduysntqdsev7twxht7d3hAGE-PLUGIN-YUBIKEY-144EMSQY9APH457CHQTN2M
age.secrets.matrixRegistrationSecret = {file = self + /hosts/plum/matrix-registration-secret.age;owner = "matrix-synapse";group = "matrix-synapse";};
# secrets for forgejoage.secrets.forgejoAdminPassword = {file = self + /hosts/plum/forgejo-password.age;owner = "forgejo";};
{ pkgs, lib, config, ... }: letinherit (lib) mkIf enabled;in mkIf config.isDesktop {services.pcscd = enabled;programs.yubikey-manager = enabled;programs.yubikey-touch-detector = enabled {libnotify = true;};security.pam.services = {login.u2fAuth = true;sudo.u2fAuth = true;};environment.systemPackages = [ pkgs.yubioath-flutter ];home-manager.sharedModules = [{}];}
environment = mkIf config.isDesktop {shellAliases.agenix = if config.isLinux then"agenix --identity ${config.users.users.root.home}/.ssh/id"else"agenix --identity ${config.users.users.${config.system.primaryUser}.home}/.ssh/id";systemPackages = [ pkgs.agenix ];};
environment.systemPackages = mkIf config.isDesktop [pkgs.agenixinputs.agenix-rekey.packages.${pkgs.system}.defaultpkgs.age-plugin-yubikey];
age.secrets.id.file = ./id.age;services.openssh = enabled {
age.rekey = {hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFDLlddona4PlORWd+QpR/7F5H46/Dic9vV23/YSrZl0 root@yuzu";masterIdentities = [ (self + /yubikey.pub) ];localStorageDir = self + "/hosts/${config.networking.hostName}/rekeyed";storageMode = "local";};age.secrets.id.rekeyFile = ./id.age;services.openssh = enabled {
age.secrets.id.file = ./id.age;services.openssh = enabled {
age.rekey = {hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBH1S3dhOYCCltqrseHc3YZFHc9XU90PsvDo7frzUGrr root@plum";masterIdentities = [ (self + /yubikey.pub) ];localStorageDir = self + "/hosts/${config.networking.hostName}/rekeyed";storageMode = "local";};age.secrets.id.rekeyFile = ./id.age;services.openssh = enabled {
age.secrets.id.file = ./id.age;services.openssh = enabled {
age.rekey = {hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIElcSHxI64xqUUKEY83tKyzEH+fYT5JCWn3qCqtw16af root@kiwi";masterIdentities = [ (self + /yubikey.pub) ];localStorageDir = self + "/hosts/${config.networking.hostName}/rekeyed";storageMode = "local";};age.secrets.id.rekeyFile = ./id.age;services.openssh = enabled {
"lastModified": 1744897914,"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=","owner": "yaxitech","repo": "ragenix","rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"lastModified": 1754433428,"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=","owner": "ryantm","repo": "agenix","rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
"lastModified": 1736955230,"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=","owner": "ryantm","repo": "agenix","rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"lastModified": 1759699908,"narHash": "sha256-kYVGY8sAfqwpNch706Fy2+/b+xbtfidhXSnzvthAhIQ=","owner": "oddlama","repo": "agenix-rekey","rev": "42362b12f59978aabf3ec3334834ce2f3662013d",
"lastModified": 1741481578,"narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=","owner": "ipetkov","repo": "crane","rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5",
"lastModified": 1744478979,"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=","owner": "lnl7","repo": "nix-darwin","rev": "43975d782b418ebf4969e9ccba82466728c2851b",
"lastModified": 1700795494,"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=","owner": "lnl7","repo": "nix-darwin","rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"lastModified": 1728330715,"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=","owner": "numtide","repo": "devshell","rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"lastModified": 1696426674,"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=","owner": "edolstra","repo": "flake-compat","rev": "0f9255e01c2351cc7d116c072cb317785dd33b33","type": "github"},"original": {"owner": "edolstra","repo": "flake-compat","type": "github"}},"flake-compat_2": {"flake": false,"locked": {
"lastModified": 1731533236,"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=","owner": "numtide","repo": "flake-utils","rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"lastModified": 1733312601,"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=","owner": "hercules-ci","repo": "flake-parts","rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"}},"gitignore": {"inputs": {"nixpkgs": ["agenix-rekey","pre-commit-hooks","nixpkgs"]},"locked": {"lastModified": 1709087332,"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=","owner": "hercules-ci","repo": "gitignore.nix","rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"}},"pre-commit-hooks": {"inputs": {"flake-compat": "flake-compat","gitignore": "gitignore","nixpkgs": ["agenix-rekey","nixpkgs"]},"locked": {"lastModified": 1735882644,"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=","owner": "cachix","repo": "pre-commit-hooks.nix","rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
"inputs": {"nixpkgs": ["agenix","nixpkgs"]},"locked": {"lastModified": 1741400194,"narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=","owner": "oxalica","repo": "rust-overlay","rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f","type": "github"},"original": {"owner": "oxalica","repo": "rust-overlay","type": "github"}},"rust-overlay_2": {
"lastModified": 1681028828,"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=","owner": "nix-systems","repo": "default","rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"lastModified": 1735135567,"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=","owner": "numtide","repo": "treefmt-nix","rev": "9e09d30a644c57257715902efbb3adc56c79cf28",