diff --git a/.sops.yaml b/.sops.yaml index 784972b..588f13a 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -2,7 +2,6 @@ keys: - &nerf age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln - &gonne age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 - &daniel age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 - - &totallynotadolphin age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - &bragi age1lqvgpmlemyg9095ujck64u59ma29656zs7a4yxgz4s6u5cld2ccss69jwe - &lobon age12nz7dtc0m5wasxm4r9crtkgwnzvauyfp0xh0n8z8jld0arn9ea9qe0agvn @@ -15,7 +14,6 @@ creation_rules: - *nerf - *gonne - *daniel - - *totallynotadolphin - *nyarlathotep - path_regex: nixos/machines/bragi/.* key_groups: @@ -23,7 +21,6 @@ creation_rules: - *nerf - *gonne - *daniel - - *totallynotadolphin - *bragi - path_regex: nixos/machines/lobon/.* key_groups: @@ -31,7 +28,6 @@ creation_rules: - *nerf - *gonne - *daniel - - *totallynotadolphin - *lobon # this is the catchall clause if nothing above machtes. Encrypt to users but not # to machines @@ -40,4 +36,3 @@ creation_rules: - *nerf - *gonne - *daniel - - *totallynotadolphin diff --git a/flake.lock b/flake.lock index 8cb1fc0..a5e2a10 100644 --- a/flake.lock +++ b/flake.lock @@ -373,11 +373,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "type": "github" }, "original": { @@ -625,17 +625,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1743296961, - "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", - "type": "github" + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" } }, "nixpkgs_2": { @@ -698,11 +695,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1743827369, - "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=", + "lastModified": 1740367490, + "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "42a1c966be226125b48c384171c44c651c236c22", + "rev": "0196c0175e9191c474c26ab5548db27ef5d34b05", "type": "github" }, "original": { @@ -819,11 +816,11 @@ "nixpkgs": [] }, "locked": { - "lastModified": 1742649964, - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "type": "github" }, "original": { @@ -849,11 +846,11 @@ ] }, "locked": { - "lastModified": 1743910657, - "narHash": "sha256-zr2jmWeWyhCD8WmO2aWov2g0WPPuZfcJDKzMJZYGq3Y=", + "lastModified": 1739262228, + "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "523f58a4faff6c67f5f685bed33a7721e984c304", + "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", "type": "github" }, "original": { diff --git a/nixos/machines/bragi/backupKey.secrets.yaml b/nixos/machines/bragi/backupKey.secrets.yaml index d089880..10531ce 100644 --- a/nixos/machines/bragi/backupKey.secrets.yaml +++ b/nixos/machines/bragi/backupKey.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVYWRtOE4zSWdERXdCV1Z3 - Q0JGajFZQ09VRityLzYrT3V3UkNXckwzMEVrClRITU1mUzQ1M2thay9waE5XVm1h - QlpWZEQ1RnNXdmZ3VWUzbTdPTFN5TlkKLS0tIDBHYmN5d2xFOVg3S2hUc1h1U3U3 - SWVDUGdvMm5EL2FyVnFYbmE3TUFJOVEKOvDPkHCmg4N5edpnTwebbPBJZZaNM30W - /J1LA9lTqYsRw2zwhR3SwZI12k5zXWE5RXa4dKXHHnvfFoQhsPwR4w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBESHBiWEdwNVA4UHh3K3JI + aXZIaDV6RER1YVU0Tjg5WEtoZGQ3ODNoM21VCldINWhTK1BDV3dQVDBFZ2pSQXcx + ZDNEMVRJOVRURE1VRmltb3psRXJvYVkKLS0tIHdzRXFWa1cxcm9QRkFtNlRhclRW + SW9Dd00za2h6RGFBS2JQYzUreW9PelkKH/vpD5kFkUEXjP30GlgcDYq8DLf84Qkp + Bz6YfniDXw7EFVFcyXlexxrmDmd/IUxYVZ//uNwkUpal/g2CKZDHPg== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtd1F5WG04aGlxUVdlWC8y - RDl3dDlyM0RlVWlpWk1KR054MDNCaFU2TlJnCkRQcVhnZG9aS1YzUjVaVk1lNFhD - RmpCZWJPU051QzA1bGNRWk5Ka2lIMW8KLS0tIGZ6MVpWcmY1NmVqd21jOENSUE1k - TjZ0T055Qll0UDVLYnBsa2g1bUVSK0kKRYGKOmxPMFiM/PhzKRu2PwCJUXR0x1+y - cNa/7xJiUkamL6Uy8hfsUQBT1r8+KBR2J5FXx20G+QRxrAHuYlD30Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOd2NiNW9aZWMzem1lK2NE + THVkSkcrNVdORHhpRWk3VFZ2aHBKRitTZWdFCmVrYys1aFZJSFBacStVa3NQdTFJ + d0pYUENuSjYzVDlKdHMyci9NMEFNMWMKLS0tIGRTem0xdmhEbzh0dGtOdW1aT0lD + aVFZVFZCNHpqY3VTOWdHNGN1MWZTRkUKYuPEc0sl65pQGVg1UiFDvJwQdf//XkDU + qb90DQtC1j71l8wscu7ZuuxzNoK0yUGvI8x6LJ5JLo7ljsIy0pTElA== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEM1JtektNbk4yd1Mwa2RS - VXdoSEovMEJKN3krL2J5dStCaUJ0QVlsZEUwCnhHbWw4N0dOL29WN2tOVkY5cFVC - blpsbVRsSENUSHYwbW5YTzRoc0tITXcKLS0tIFpZZzNEZW4rQUh1N01TNlhYRHdV - K0FaalVQMEFOeG9pRm43bzlDQXFiR2MK7GVdlzDcWWH+yIDTyQzBSlraY77HvpNz - BauVM/f9QSFhsMC+Enx4kFq+b4iGXiJXPglfAD7t0pQovtwwMDbHNg== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpS0VINzU3VmVKVW9lallB - dFdMRzE5bnlNTG1qaE9mMGhzTC8xTW1vSVQ4ClR5VlRldU9oY255c3pTOStvUldH - bGxjTW9JcXJ1YS94OXpDQ3ZwM2VLbWsKLS0tIDRoQmJzTWxScnhwUldBdWp2TlJt - Q0lXdXRaaW9NcGFSYU9neGxLaE9LYTQK4rHpTOCuUhokrshoPA9XvBrqI0jzl9YX - Kc1zMju0Y86RFSgE/RK9Hx2l7pKboI2BqacwNCy8AC3grdcTLz22yg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBdFMzUXZ0RTAwR1BsbFRs + c1R4bmxlM2xQeEErYUJTazZYSmphc3pjTEJJCng2czR1eDJNUEdPd3J4dVFwSVdF + b3JkKzgxSk5sbXJZRE5FU3NDRC9OeGMKLS0tIEZ4bXU3L1RNTFlzWHVSL0EvQ2d3 + UE0zVFFpMEEvaHhaYmlRcWlHVXl3dUUKr31P1ovm1MLGQGWCshLJpug0jsxyRqb+ + 4Y4apn0eutpYfBw3zKP+2huTdMLHk/RkSHJUBs5UxgfOY18StdjIcg== -----END AGE ENCRYPTED FILE----- - recipient: age1lqvgpmlemyg9095ujck64u59ma29656zs7a4yxgz4s6u5cld2ccss69jwe enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnY1BuWUdUYTBoUGpMN0Uy - S2VjUmNZRWtldEdVSWFjVEM5dUhUMS9lSkE0CkxjT0NlVlhOdG1NdnpSYmtIYU5Y - clFPeXFxWWRmeTB2UGY3MXZjUVVIQTgKLS0tIDBHNmVHSWVpQzg4YVliaHN0dHVX - QStVb0tWRUtSSDRqOVgvQmNPTzVIdkEKcl0AByrV+94EZ8ppxhO4xQoYe9mD19V0 - zDx7Thq7Hr6OPnU/nSpJTwxRJnSKr1w4dGDN00v3v3KwBekI6H49XQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNZk9LVmY0SlBpMWttcitK + L3djYzlCTENvVXFrZTV5MGd4TWF0WUZkWVQwCjVJLzJsdWVmeFBtd2x4RGw0SmV3 + clc5d3FtRFk0VWlqbk5CMXFCSllKbHMKLS0tIGRwVEJwUzBMeGFwUnNBVFRJQjIw + UFhDYVF2ZHhldFRtUFJEZlBLTG5zS2sK9vvB+5PPSytzN/wNTxzXwYfXxQPEYFeq + IAzVWchShU6uTMMZeO88qmkZjz1kYIdjPHqny3g/ZqsW18NCtLYqfg== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-03-21T16:38:08Z" mac: ENC[AES256_GCM,data:kEVWd988Ia6T8v3w0slQhM0lh78VhnP8qJNa6IZg0NF2B0JQbFRnQNbUfvG9Rf4mkAR/O9PD+r6HR+b3LCwzb/Ok/eD4/M3+oPaEx/JnoHrzF/1N29VEAvBHjQgw6DL05toqu5G03UDcDUFGc111AeRsexhONQRHJx3zqWyWGy4=,iv:T5Pkhl3vhSAIoKkC3r3VQn3tC4t04WxvAZDQ4PMvD84=,tag:h0/aB91SFr5q0Or5daxWUQ==,type:str] diff --git a/nixos/machines/ghatanothoa/configuration.nix b/nixos/machines/ghatanothoa/configuration.nix index 57cc0cb..8364bea 100644 --- a/nixos/machines/ghatanothoa/configuration.nix +++ b/nixos/machines/ghatanothoa/configuration.nix @@ -4,6 +4,7 @@ ../../modules/jitsi.nix ../../roles ../../roles/vm.nix + ../../modules/vmNetwork.nix ]; services.mathebau-jitsi = { @@ -13,5 +14,6 @@ # System configuration here networking.hostName = "ghatanothoa"; + vmNetwork.ipv4 = "192.168.0.25"; system.stateVersion = "23.11"; } diff --git a/nixos/machines/lobon/allowlistPass.secrets.yaml b/nixos/machines/lobon/allowlistPass.secrets.yaml index c228a1c..7435db6 100644 --- a/nixos/machines/lobon/allowlistPass.secrets.yaml +++ b/nixos/machines/lobon/allowlistPass.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTU9oYXNXQXMwRmlMVk1V - UUlvZi9PY0RhU3JFREhmZkJ1UWRIUXdkakZvCkZ3YTNrbElHalRKRDlqbjFBZHJK - QnBBMm14LzBtS0R0SGZMb2RuY0E1cG8KLS0tIFJuZzFZUTdLOFpYc3UzYUhYYTdT - TUlxS0c4QXp0QVF3M21sS09iTVBiLzgKY2PsrhMeS/OZ6YvRsjbSMLnVJJ7MyyqA - 0boT6Nx539FxKQUd9uXSAsXIlkolKRvXEBi7jujg4wgxqYb8atXhKA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhQTRPaXNNUWlwU0hTdHA4 + RTAycU12SFZXRGJqbTZVV1Rkd3NFQVJrWGtvCkNzc1FzemkxaGNzd0FjU3hPcWl6 + U3J1V3Q5WVcwNVZ0ZTUxckY2Z0RBa2cKLS0tIHBHVzVGVHg5N1FyTFhOd3JPVEJy + Kys4SjE2cGpVeGZDenFGN3VsQjZLUWMKThmZnM0wYLVh0xEsr8bqtgvo50sPn4rp + vo4Cn+7osvABl4BJKKhcrLoxgIrz9NcdQLToOZHn7YfHRpAGH+VIAg== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSSnhSbURXakcza2lBVDBQ - amdJdVNOSlpTaEdvUXB6a3VuQnNaSTBGVHpjCmNtWllnL3MyS0JyVFVscWJrdFBr - dUprRXc0L2lkRnMwTFhzYVJoMTRkcVEKLS0tIGVYTGcwejJVUi9FdHMvTUJyY3A2 - ekxiK2cvMHBESGhrZjU2RGVicnJVY1UK2FCXLTqHhgYZl0vCG1V246FAicBkg2CY - Z8PKxVEOchBptR6y64EXoeUKFN+5jMoTj/+vUC7bJjNKlNrM9gnI2w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxNUhhM1NlRDFoMHQzYVN0 + MW9hcUZPQXc1YTJQeWRsL2pXYjBPSUZJQ25zCnNSREszRFo2cnFVd055WWlMR3A5 + NWdINkdKRnU0M3ZIeEtXSGY3UVZkUGMKLS0tIHpUeEc5Yk9sMkVucnlHeWtTaHdj + TVdZVDd1Q3UrS2JoNHR3RVhoZFB1VUkKmo0HHSwh1pzqoeKUtiDD5UAa44efv11c + 9QymycpZ7e//69uKHlY+r19TIvBz6s6jTguFY6JhQ9VeqfIlFLuokg== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtRFJlRWRRa1h5UzJpR015 - akx6SlpVUEY2L2x5SzdteTN3T2ZxSDM3YVhVCmpDSDEyTkJON3d6Vzd3ODhRR2dk - Rk1ROVBjdHNGUWVsR01HN3RNZEtPT3cKLS0tIEUwT0R3Q0tIKzlPSkkxYnloVXlV - dXBmNXJhbWZrL2hZV1JIV2dIWFBrTEUKfKy7+dfkl76D2LiOOKRCsUVsHT/4Te+J - SEb9rRE1BSS3E2+F6zlIhbfkklH24dXMcgAtkQ8wX+tNAnpTecASdg== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4aUFheWFyNk5MWVZzYXZR - OEZkUVFQcS9SdEpZMU04ZWtqL2k4SWQrRlRJCkhxdUdmbUQ2UTJ4bEhjMTRoTXlO - ZGJMZTN2TDh5cTJjZ05aMnh0RzJSczQKLS0tIFpMT0Iza0FVYi9NaytWN2NaZ2x0 - YWUydW1GRHZQdHE0eWhlc3Z1d3hUd0EK5UOePSGLZy9viOP4Opuq6r0S1n9U19IB - Q68mv/8LvRXKPyqKBDJk9UgNo5L6tTHxYkrByXFV95SMBiTC0NrAXA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvU0QvQy9jdmVRTzZzSnFI + NU1rQjRpWWV5WFUrMWZzV2huVGhIUU8ySG44CjllRUh3T3MzcmF6cjg5RjIxZHds + QUc4b3krZi9CWjRjUENNUnZrNTdlN1kKLS0tIDNtRW9IZlVxVlk1THBNMzhtQmw2 + TTExeG5hMnNOdHF1djlmM0xaM05XODAK2XnV+iluWnpC7snAEpGaYRADKbZbNlx2 + yIplp4Mj8nakS1OKMTK+FdwP/qmEs7e804AfPFtI9j/ljYKub4gKgQ== -----END AGE ENCRYPTED FILE----- - recipient: age12nz7dtc0m5wasxm4r9crtkgwnzvauyfp0xh0n8z8jld0arn9ea9qe0agvn enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhZndKQ2I4MldzeFVkL0Za - QlBnaGN1djJmQXRZN3F2bnlmQlFESXNaNmpFClJUL0x5RnJ2UlFoUlZNYlk0Smk4 - emp1M1RUQmkwdWQ3Vzc1RVFzWnA0YjQKLS0tIFVNMXk3OWo1bmVhTGh2RmEwdys2 - dlBBSzU2UWlQbWhIWDUxcERrSUpLdUkK9USI2NzWc6iTIzlUV9Dp5KktVpz50n2y - 3/AjjqMJXZK5BNVGxfyFVuLW33H+dlWFCZgeEuseF1dbYTeJgd2NxA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDUTFrbUh3M0JNTDQrQVlv + cnRrQ3hsN1FkMkUycnNxZXQwYlg1YldWdERRCmZZYk1nQk5RT0orUXc4UzlIcWR3 + L0VJZHNRSW5VdDAwVU1GWE5FUm1DencKLS0tIFhaVklqSUZoNmRqZkV4YUJoTTZi + cEtEN1ZCZW11eFZrUGlQd254cHVIRXcKiYx1tsJ5Y6kuOZLMooV2lNXb83q9FCvr + sOm7rWsMjWb083QgbiWpkY1ndMA6bOODDVII5HEKypy6rp1IIytScQ== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-03-31T14:34:54Z" mac: ENC[AES256_GCM,data:sjWiO96NcFUT4L9mdBuQwt6Zl5cS16o73zes30SYJxzM1R3ZBIg9oOmhXxY9BC3yKjEb6bVuemj/bnnopSR/m3RPH7xfaYCBfz97Zgc4SGtoqLIra5OUCRpWnKSsD6Nf09Qss5Pbla9EIrI0kQt7fpf4iKLF7VJwrQryslnvfcM=,iv:ilnbLK6sttweEyqszVHxVnjbTq8jF5ZTO24OEIPMprE=,tag:3XgAlXMl/RIaUfkVwHJeBQ==,type:str] diff --git a/nixos/machines/lobon/backupKey.secrets.yaml b/nixos/machines/lobon/backupKey.secrets.yaml index 0e7346e..026c7b4 100644 --- a/nixos/machines/lobon/backupKey.secrets.yaml +++ b/nixos/machines/lobon/backupKey.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzdGtWbFBMbnp4QmFzTjRE - N0Y4MVhoRXU0bjB3N3MrVFgzdmNhbXNsYlJJCk5obUgxVFlkRHNXcDE2L3BjZnFS - ZTlIamtjS0h3OXhBTUF3dG1yeUZEa3MKLS0tIFM4cnUzd2U5R096YXlkVkVEQ3Jm - VnV5SDRmSm5wSHBkTnpkeE5sQzdWTzQKTYVpaggjlDIjwi/iKGyZlQL0LnuPGucG - BfL32bECad27F/QWQi9Jvr/7DAH+Oxww95+qNL7GTByNGtnHNXPbLQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5TjF6RzNpTlVOMWlmU0pm + YUJTZzNBMU9PMlFsZ2dyTCswR3FJRkwvb0c4CnlFc3lWeHpYRVl3ZlJYWEtVNnNj + RE9RTWtmbHFvVGJ5QUkvUUNjU21zWmMKLS0tIFVJMnladmwreGJFYWkwZU5kd0RE + L1REeU44a1dkbDYyMFJXSTRZaGpzRG8KtXgSQsLBYln5IvME2hL9ih8arLZBZS11 + dKAXCO2HWxP4lOBOO4Mpzc/q4iyLzq/n7HLamrfyfT9HhjDtP39MGg== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiL0F1MnZyaHYrNFZ4RHdk - MDdGaDkreUpzTURwdU1PRitLeDE2Tlk3VHdzCnpoV00ycGxPMVl6bmIrM2hwZjNh - dzU5ZnJacTFBUEtURTBHRTRzNVc4TzQKLS0tIHBoM21PdWVFV3FQRXhHQnJyMmdK - eXlYdHdJdlBFTjdHY2ZQc3dSUXFNeFEKXAIdZNGusMHSgNwzRD+grjTcVXIoRR53 - VT5WsLnfY3iFxMcfAMRonG95hafFRK/O3qCjwxr8+aOwXSvn5sq2kg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQS080clRBemY4bnRhdm5o + dXpjVjI3YkpTdVZHbXpsenBweUtMT0lZTWxRCmNzbk5GVHdpd0V3V3JaWVYwZEFM + SEdRV1hHRGRpNXh1TTdxZmR4VlpXRkkKLS0tIG83bSttTDJLa3NBRW9tMjRKR2FB + WmJ0Ky95eC96a2pTQ3FjaTBKTVFhTEkKzW8WguQ2wO93DLETao6FDxaVRshz+aqZ + 7pQnbun/Q+Bu3GT7PX1zFKjNRem4pUI7wYzvhpAUwmrs78bc8TUH1A== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNSjN2ckZ0b0QzSHM3d0NY - VE9XMU1zMDN1R1g3VGRJenIrZmpZOVRpS3lNCnNreS9TcmZlMmx1VnM0YXFDamg0 - Mk92YXFRSlFPSmdlNUYvN3Y3YTRHaGMKLS0tIFJoS21UckNMVnVNSFVjUElWK0tB - ZFdaQjBNZTZJQWlVY0prUXB0UE1KQ0UKFEu9mgN+g/JZQNzyFGwfcmPMoBAtw4sB - aIS9IF/V6VzirGTDBfZwpAvSWCAosLhIMXzqc32ffIKoJstarI6r+g== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4SDBWWktlT2lIamFyWW5z - YW5lUjlzZFFPVlFYUDlVc3BCSUpqa1AzeWxBCkxsZlN0SFdJc1N6YlBheURLbFI5 - MkRudDQ1aEVtU2tsa1NqNWoxU205ZXcKLS0tIGJpT0VVb2FXOFpGZG1QdHFBalNs - aFJzZkFqRWFZdnNKWUt4dkVKRHBmMHcK8ttinrMTIUDkw9boyeIecddjMR7rNZFL - b8BFgRRj9AxacoimSx/zfyHCg88Ls+Jdj1W+wmpJBJKEoxZPVy/nlQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxcUpQMmZDdVIzTmdNUnM3 + ZVdaQlVkTmdjT1dBZ2ZPbUppRkg3WlFMYXpnClMrU01LOGFNTmRRMmsya0hmQ3VZ + S1k3bGFSemZDYzZYUVlXUnFSYzVyejQKLS0tIGR0ZjFyWmF4MitNSlZZdk5lYjFH + STRvNTZ0RG5pNmdaNmcrZ3AwYkFjU2sKlynGN6YUeNQiyWWuspphLpgcZbC2Sqkj + 8E7tWHSWqIc6rmuRi9+xu83MDL4197wlidT0IIZm/tNO36u85fruXQ== -----END AGE ENCRYPTED FILE----- - recipient: age12nz7dtc0m5wasxm4r9crtkgwnzvauyfp0xh0n8z8jld0arn9ea9qe0agvn enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6dEdJZURTS2ZoTkRKTVh2 - bE05MG9PbU5nZFNTWkpCR0YzV1dQVGs3L0M0ClF6RERNaW9HcWFPNFU3ajN2elI4 - OU1oL3ZuK3NXZUFlNW1vR3pIaHRxWm8KLS0tIHd1WCttVkJoWnhVa1JFRnk2T093 - SDhGU2NnTHlvQVJIclNGNjh3SGt0c0UKA8qAglvfcHGMSeaPnU7q4LD3ao4NbIl7 - 4q6UEWS7dREi7JtFvsW2wy5BdjnmG+kwRavKx3fVLslnDGXXF4RFYA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzNHNhUk5zdXlGS1huUjk1 + UnUwb2VFOE9BaEp0ZHlpcDJ3M0JtdytFQmpnCkNKYmplSDRIejVoV05BdTE2Y2NG + SXVJWFZ3b1hrVmwrUDgwanVHRDFxb00KLS0tIEtLMWZDQzl6aUFMcHlRUi84a3ps + cWNaUEJJWFRQU05RcS80ZFN2YnlKUGMKdBvUcdULwbsoo/n2tgow+qDlWmJAJUqP + wcPf1SiP0i15jza2+MU1MzAfv58uwfvAiA2kdHawLXtqv9nZD0qeag== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-03-31T16:01:00Z" mac: ENC[AES256_GCM,data:AawTzIXyX+3FyFpw8pXFeVJJtXN7ZpTFnUqhedC2vcbbNUzMMt1X0SaxtNNJ5chZI/tYHn59FT6zznl1eO4Xn29Zc2Up4dkT1BE4yqkEG0hiCFXrXMz/PaHfROzBhIWCVyF4fYj6MZKg1iBBxhWRqhJlQ1q4UVkoaITRUKpFJgs=,iv:3lTPOQ8VjmP3WNGbFK2yLU4Ks1KviNS/l7TH4SnvSUs=,tag:KUbAU6+76/Uxj2Wn9EnqnA==,type:str] diff --git a/nixos/machines/lobon/configuration.nix b/nixos/machines/lobon/configuration.nix index e0662be..6cb371a 100644 --- a/nixos/machines/lobon/configuration.nix +++ b/nixos/machines/lobon/configuration.nix @@ -4,6 +4,7 @@ ../../modules/mailman.nix ../../roles ../../roles/vm.nix + ../../modules/vmNetwork.nix ]; # System configuration here @@ -15,6 +16,7 @@ }; networking.hostName = "lobon"; + vmNetwork.ipv4 = "192.168.0.22"; system.stateVersion = "23.11"; sops.secrets = { diff --git a/nixos/machines/nodens/configuration.nix b/nixos/machines/nodens/configuration.nix index a9ae8a2..554e407 100644 --- a/nixos/machines/nodens/configuration.nix +++ b/nixos/machines/nodens/configuration.nix @@ -3,6 +3,7 @@ ./hardware-configuration.nix ../../roles ../../roles/vm.nix + ../../modules/vmNetwork.nix ]; # System configuration here @@ -10,5 +11,6 @@ environment.systemPackages = [pkgs.git]; networking.hostName = "nodens"; + vmNetwork.ipv4 = "192.168.0.18"; system.stateVersion = "24.11"; } diff --git a/nixos/machines/nyarlathotep/allowlistPass.secrets.yaml b/nixos/machines/nyarlathotep/allowlistPass.secrets.yaml index e7d61c9..7cf182a 100644 --- a/nixos/machines/nyarlathotep/allowlistPass.secrets.yaml +++ b/nixos/machines/nyarlathotep/allowlistPass.secrets.yaml @@ -12,47 +12,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4R3NHZDJYNmtPTXRuOTdT - N3RsRFhGSzg0YXBRQ3Fhb0lSWGdXQU42QmtJCnpHVVFOQ3EvRkcveWFxTlJ1aE5v - TkJCalROOUlXUGlTQWtMSHBFeldtT3MKLS0tIDFGbk5mcEtiYWlmU2dRbU5mQlUy - Y25Yek4zZXh4eEhTRFFKL1YyV1JMWDAKq+RQgWaaHRbkCy1SRG88fq67SkZZVvWS - 5dQEs08WfnIucemMprC2TC0+M9ULfow8fugZfj/bg5P3qmt3W/eHlg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiL2dqdWhPRmFHcjhqeTE1 + YzdPbEpHMmhzVktPVGxKcVpZYTJ3WjFhcWg4CjEvclpTYVJ6YUhKeG1VbzRYVk05 + RDUrcS9NbnYwRFlwSXY2UlVJNDRwcUkKLS0tIDVoaXQ0TFJONVM1WVg4VUF3dkdu + SVFIS2taSGV1K3o3SnpIRERaR2YrZGcKR3QRXITbg3rKZLAiZk/m9saT/46jULEo + a7HnyFBYYdEcHxs1KT3FfGTRjr9vLRmU5+KNcOo1AYM9xGERmqOjrA== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpYzdPd25RTTd6cnVISkRE - alFNVlk1L28yZUtBbnVJZCtwbVFkMG9IZlFVCnNSMWpqS05CMWRNZzh2bjBUak1M - ZmR5a3laQTI5bFFjajg2dnd4QStPc1UKLS0tIDhiNmUyc0hYNHdIdEt0KzMrQlRx - aXFyc1A1Z29SRW54bnpBdW9JMVR0TWsK0bd4nTajZj0f0wEba/SJfVTNlSn7lmgp - hsp/D0/s5SHeCas327RqJi/9dlyPzJdKc7x5nwLpKZqUj0IihuVBdA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZVXZoaEtpZGF1OWViK1A2 + OWtQK0xGT3crYXZzZUhpc2hleUNmY1VKc2hBCml0RU1zL01lWWhpUmYvQmJqKzZF + OFRMSkU5NHVSL0hiY1B3RXZvUTZtZDAKLS0tIFM2T2szQUFCR1EwS2FLSFRsTXhI + dFFEcDFWT3pWR2JUNFpmTDdaZm85aE0Kh4PD2b/cMOtL5k/mBzqvympY9iD8KP28 + jF95w5ED53hpTjYJmeTC3Buk1FcTzSitt8MT1RGI4SqlF4D/230bbg== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPOU10VnphenQ4T1orajNo - d09GSHJwWGlmWndOM2gxcHREaGZTaFFnMFQ0CldzcUZoMkVuS3RoaXJLRGRHQ3dD - WVl0L1YzYUtVdDV4Z3JRRU5wbWFIakkKLS0tIFJlclRuMEJOV2R1YTJ2VHVQdElT - QUpVcU1QYm5xbGhVSFoxY2k3NVlBMWMKRtC+z5uOAIxZLKoVNcHqrZgLbYRyHmCs - Oqn1KZheZn7e66Vx8Yddt87DY6Gd0nUYOogZY3yoQFeTFbw1/jVxAg== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBcm5wMERZMCtiaGpEWWxy - MExUZGRUU3hUcURrOWROK2FIQnZXelRlU2xBCmJHWEhqOEVGTFBNRktEUUVsRkxj - TjZmVHFkdTArOU1DZ0s1dVpmRkw3djQKLS0tIGxjNXB0N0kzSUZLc1RQelFJZmIy - RFc0Vkw2M3VkQjZMOHJDd2ZTUWh5bjQK0VcnCr0PwnVh0CWfQZTJIVsyRu1jmcuT - ntr2M+xj1dtbAiLUffg4T8qszb8fDMr0X6y11CJ1AZGC1Kgn8AwJiA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlRmNQblgyM3hqQnlTeE5h + d2xOQ1ZUbDdGY2VJR2tvSUdBYTIvYm9zNm1NCldleVZQRHc0bktvcnAxSk5aOVI5 + UWpWOGdxSFN0V2g5TVRoc0xGaHhZL2MKLS0tIG0zNmRNbWp6ekxjTDZzMitJK0x0 + Qnp3ckswMmdzRDhBUzVDQ0NLVkFzTUEKsUE9u8fzqEOhbIffeF1nhP2yPv21yZoN + llKJ5FDD1/SFmRlxTLRaAOXxTFbVwwexh17i9bGAUKyywyXXijZcSQ== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZL2xVWjZGZDViTHR4dEFi - QXRaNGtsWElTYWt2K3N5WDd2QjgwQ0prRVQ4CjJ5azl0WWc3UnRDWkVVRThTWW1R - TlVSUXhBM2JjVDVVNThpZjgxRlEvelkKLS0tIDRGdGFFYVlqWUxzbTR4U0ZBaGwx - UUVnU0x4cUFDZkRJMlJHMFc0cng1bHcKKFz0Jo5h+7bn+7x+aQ4FxkrgV1q7BZuZ - qCuvYONfNW2AHZX5Lik2zmBfrze34ELBaOECcYhTVk7RfiNuyH+S0g== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCMUNURWlHYnExZW14d0Jv + QXIwbklNOUVUQnE4MFUwWlRxcWQ5d3BlQVJnCmUxbDVhVkJ1WWlrT05FUWF5cWQx + K0RKTnR4bmlBSSsxYnIyQmwxT1MwNmsKLS0tIGlxclVTMXlscTRNRVFsdjBUSkZF + MWhDMU54Q05EK1kyNU5pTjRWeGNtTjgKNciChLoT3SoVSSVNUqQwLxTM9HeTQeHX + VUEooMETXOkdcnRVbJMz1nIO9PCqFNXK0DA75fkpBSYpAGRsVZZ2UQ== -----END AGE ENCRYPTED FILE----- lastmodified: "2025-01-05T13:49:19Z" mac: ENC[AES256_GCM,data:i7t/Hb5aW0lIvPLk84geQ792uUGP25vX8FC7kK/3H19tz5i4zsIcvl1d+oB5gJ004gP5pRogcuKL1xHUUl+A0UXXNzRpxc0BBVZaxnIhjfPunORbmZeJQRP298tQpvYYqI/pGhjrlit37U9jecGf1l12Cgv97sGW42d2F+S2Soc=,iv:My21fMF3SEr6mg2+eh8KA6B8tzmQVEDy2BG3hfkafrU=,tag:xdU6j8ti8Z68rbiRxkj7Pw==,type:str] diff --git a/nixos/machines/nyarlathotep/backupKey.secrets.yaml b/nixos/machines/nyarlathotep/backupKey.secrets.yaml index c83e6c4..2da13db 100644 --- a/nixos/machines/nyarlathotep/backupKey.secrets.yaml +++ b/nixos/machines/nyarlathotep/backupKey.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZV0pVY2FUV25sNUFTU0J1 - amxNYnJ2ZHd0c2psZC90aFVDWGVlUWZVSG44Cmk1VUZiWGR0SnFxdGlQUEUvLzIv - Mkt3dTNQbTREblJEMFRNY3FNUDdrOTAKLS0tIG9UTTMzRUhLbU1SQjhsTmhmT2dz - aGVJM1hvbmNjWkpGMnFkc20wRlBkV28KBANy0/l04snTsNHWDnxEOObMVsLzNmYx - gs3yXgXGAHFWKLGvrwXPo3qRsW63hFt9Ujtd1YnjMLobisbi6KyMlg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwU20wVE1YVEtYYnl6OGNu + NzZkNmxDQTNzTXFNdDFTM3RuZWdPWlhLSWdnCjhSVTNjUzE2bGF1KzhpT0dLSXZN + Wk9BODZGOUR6d0dzQ2FFQ01tTS85bEUKLS0tIEVYYU5jTDBVZkRkZTFUUTJmTGZL + eUJUMGpjSE40SXZ1SXhKQnRJN0p3OHcK+VCaqOcWZcLA4NW2G6xRGqZE4pMet5GF + 68v9wJvY765fZbBMo1GS9ImxOrXSxqqXPI7XMbFnUskNthd6y1y5QQ== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoZEhvWXdNQkpEaWd3clk2 - RTNkSHZEZ2hjNy9ZWnRFUHJQcURhVWVWc0RjCktWZFJScU5vZmlZSEU3dkFPYlc1 - VFI1Qk1rdWJwNG5JVk5XQmJCZk12WWcKLS0tIEtqYWplZ3cwT0JnYzJHUGpFYmhX - UVJSWHAyUE9iUnB6NVdQN0ljQlkvdlUKFHT3cOT3qQ0LG2H0ve0yY+KYr1y+Flir - LFOfTga5xhp1P436tmpJgLHz+XiGh9Y+tjw+F5Rga6WWDAONPSaf7A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOK3MzU2s2QXpOblNSRUJ2 + Y1RPM1p0Ky9xZUtJVVdEWksyenVKTG0vekNvCk9JZkFHeFhhM0piNVJtV1JqcHV3 + WVR4Q2Jkd1hxN1N4TUxoL2lnSEMrMDQKLS0tIEVjTUZNd09FQVpxTXo5SXVoenJv + UVpqSW9BN3k5Ti9HRWlZQjdCVjBZK2sKv4EDhNZp8i6X3kh9ZHprazDUyeMwxeZv + +2cPHo8n2onlYBayDvjWrh0RhId2s8WOC592GMoyVx4U1YY/qxTJFw== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3Q2d5VkpkN2FwUVhjaTFL - dXZ5QWdCanJ3c1ZsNjZoZzNTNWJoeVlFUzJrCk4vQ2tEUWJXYllNdTF5dC9wazNC - T3dsbGRRN2tlMmpSVzZsbkZoSlJ4RW8KLS0tIEUwdEw2S01JUVVRWmgzbnJZcjBm - M1BKdUJEbllIRHFEcFFOd1NZV3hENmcKcefMMU+/yirj/fGLBoYDJpU9Mjdt20m0 - +ZQHIrFTlucKrRu4acI5/6aFZOGElRZMPx8aH1eMOPsubIdzAqnQzg== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDcm9GSjdKU09Cc1VocEFF - R1l6Ykxpa2dQSWFoT042QllyUFAvOW5Wem44CnpzM1QwRzQ4SklOTXA0QXpDSEQy - S0JPbmFESGI5TTA1eDc1SUhMYUk4clkKLS0tIGNEalN2bURhbzlVWFdCMmRLdC9y - VnBRZzdBYkIwdzJObGZyVnRLZ0x3M3cKYA8mXXkJ3ddD5feXkFYGY+vHsfexLKSD - TFrz4O/ttG6zjKo3cfC+0ngVWaMgEb7K5LVK5A9wUu709+mGARUdQQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiRTVMZWllUVhMM3FiRjR5 + dFRuRVZ5b2dxNWxQYTFXOXJvZDZLcFlXQkg0Cjc5ZUphdmlybEgyYWc0dWhzdUhn + ekg5bnZKYks3c1JBRXpLeWtyUWt6M1kKLS0tIEN1dHN5TXU2azgxZ1MzeFEwVmM5 + MHZ5SmxhcjZHMzllN0phby9McjcyeWsKSljECJAJ6A59UJFR4uzZU2o6cmAOhB8+ + jIfZYIVoKt1GSp6vPBg7XejkeZ/e1FlREWEZ+9NxNwG1G+2fps68AA== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvVU9ka2JjVFJzR3o0bE95 - dVBkTDZxQlR0d2o5VDNCMC8vVmlvZDMrd3pBCitSYnAxbTh3eTZYTE5WNWZ3ZG5v - WUs0em9QWllvSkNLVkxmK3hXb3hOcWcKLS0tIGkvTStodnBYTHE4am1mNzhnTWx3 - aTl4TVRMcy96aUpwNkJDQzRTc29FYW8Kz4Rx+5TqSWgP5J4L22qzMXT2pvUxEe2N - c0BRgL1aN8koscQxmuB5lYiKhWtuiCfCMysnCX79C/pLVcbSRm+FUQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKeWhCR3RqVHVLTnl2akox + Yk9tTXNnM3B6aUlLSFVyM3JCLzh5cVRkcVZnCk95b3FPVzNGZHo3Ty92WE0wMWFK + Vmk2ZHllVG03aXNFZDlta1BWcFNOeVkKLS0tIDFsRWJmOEZ0ZGN3THF6U0ZqUEFG + cC9ZVEFxUUJIWXRvS05PdXI1MzJob28KoehQSuQwkbOQyYMLj0wnHKo2fsqF8IA1 + m1MhZbCeBti8dYshRc6C7ktYHQgZ011+Iu1v7eZD33wLvNPf7CUxlg== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-11-23T09:05:51Z" mac: ENC[AES256_GCM,data:yYBzhvg1g9GQk+Os6wkzNE3FyXIp7N2AnxuzPfexoA0aWXhYD2zQ7ylTiRGZLkbSODezXT0pD9sjYFN8yTXuY5HMIlCYSCPQGIUblZKRqB0EES3JyhQ4bULCMO7pXrsIuAICzoWM9vn7RQ9cVbL3N2rocYiSURhsGuMA47d3QFk=,iv:xS/am6/hLq2sQGB+vMzS6ZqmFr1ZOIDj1l6b56nVMhE=,tag:erNYX6U4/uSlSUBpN7kKiA==,type:str] diff --git a/nixos/machines/nyarlathotep/configuration.nix b/nixos/machines/nyarlathotep/configuration.nix index 88bb1b0..57d00ff 100644 --- a/nixos/machines/nyarlathotep/configuration.nix +++ b/nixos/machines/nyarlathotep/configuration.nix @@ -4,6 +4,7 @@ ../../modules/mail.nix ../../roles ../../roles/vm.nix + ../../modules/vmNetwork.nix ]; # System configuration here @@ -39,6 +40,7 @@ }; networking.hostName = "nyarlathotep"; + vmNetwork.ipv4 = "192.168.0.17"; system.stateVersion = "24.05"; sops.secrets = let diff --git a/nixos/machines/nyarlathotep/dkimKeys.secrets.yaml b/nixos/machines/nyarlathotep/dkimKeys.secrets.yaml index 2bc5a7d..a923ce2 100644 --- a/nixos/machines/nyarlathotep/dkimKeys.secrets.yaml +++ b/nixos/machines/nyarlathotep/dkimKeys.secrets.yaml @@ -9,47 +9,29 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJekVDYzVJaHFlYlNadWdQ - cDlueWRlZWcyTlB4bVA4dElZWFVpZUF0SHpvCmJCb1F4VkJvV2lPdmJMS3J0eHBn - RFVyWUdQQUtONjAvZVJSUmZpcnFMUWsKLS0tIExuOUtCTC9Xb3g2YU1kVUdZcDB3 - RE14Ri9yMVExNDJyek9JWVBqZ0sxZzAK3HkF0UMZqsrbtyjXO7i94sgsyJDHRIw5 - Qgupvo8KZKPRgCUiyqoyva8VXPMemaMnfzPb9Pt/0nnMaU33SFiV/w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6VnhvWHdsZWNHemlueFo4 + L0xCTGp4NlRuU3YwRWJiSHFBbmtURTNMQkVRCnlSbFc0Q2xINjRvU2tQeStQc1U5 + VElxcTVuNm9MUm01RkpGYytrYWg0czgKLS0tIHZqUWhkMGRNNjJvUTQrOHBpZXVS + NlpjeDQxbVZIRHFCcmNtT1JSVHp1K2sKSNcC0fcOar/KKzs1twaozB8wfdFT9OdB + 4quV/ycNpJpfs6+2r0RTLBxYFyusybu1swosAni+PJsRXS82+PTXHQ== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMSGhxN1ZId0lFbDYyYVJn - USt1eUhsaFk4d0IvQVZDYUM0SFBuNmZkNXowCkxySWdpKzJZR0pLMHkrSWdVVkRx - c0w3WTIxOUNpUFh6YWtJdVhxU0tFK1kKLS0tIEZLVy9obEgrWXd4Q1hmR2lhVHJ1 - dzdqeERoRktBQWZuZ3RhbkFYVnVIZ0kK062yYrrdVo9SOuyY8LgfUl3lwBC2S3M+ - oa/osBnxzY6Wcp6j9/Yf5/pwXLdHHhkOdgS7K16Woe32t6//boG/9A== - -----END AGE ENCRYPTED FILE----- - - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUOVlzM1BZSzNQM2hLUWxL - cHNtY2syUlozZ016YjFBcmxSS0FLajNxT0NJCnQyQkxXY1pWOWJmSmtoWUNFeFlk - QXFnb05UYjhrclJWb2tmWTM3dFFSSk0KLS0tIEluWGhZdVFkOS9nbUc3bjBidzVV - YlJucVlacmk3WHF2Q0Y3V202Skh1VWsKVuOTu7m9aTlXtLZTSW+WRm2Y7XkeLZfD - IozmAev+C1qf5KHoSL2mlhpzWFge0rZJpAPMxbSykGaOuPW1wXEPGw== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzN2c5YUpNTnIyWVRLR2lP - dzhuUHFxVDBIUHh3M1l3TlVmV3VNR1ZyWUhjClE0STBSYUtTUVRkbmNMRVhpS0U1 - dHRXRm1CbGhqZ1cwcWt0L1NSSGx3RWcKLS0tIFBFbDZmWDVFc3lrSi9Kb1Z1cURI - d3hmZXUyTUxQRjlMVWhPTjliM0FMQ0EKkKAwVQUpLXly+lYNTgqFWc8uYv288nHv - Wnvdx2S/6CkdzKfcrSdb75hm3+sWlrYkD8bSWRneBKytVawhMZOThg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsUTUzYzZuMkYvcTlrUmRK + aStnak5IWitFUSt0eVBQOHIzcTlrMFRFTjA4CmlYUTdobXFUK2tYMWtFekNqNnhp + R2RRRFdHc1p6bFVjYU9lbTRBeEM3Y2sKLS0tIHdsRW1wR25pVkZIYU1yMm9sQXpr + NFhiN0pyaHVWT1h5eVFXMWZDb0sxUGMKIVkYYheD8F9aaAyCA+m9ZGlV8vKbAW4r + H6FUe+ats30abxoYfHZfMJv17BxJtpodksSxWjnPYm0dfRf/EF/vSQ== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0SzlST1h5bzhMOTJ5OWZq - cXJJbTRjQTFDLzZvemt2WUFEcGtCbytJckZnCktsK0NXejgwbWtETnduUXJ3alNm - QjFVZDJ5UXovTllkZTVDY1NRK2Y1TzgKLS0tIGxWYjBqNkZRYXpja1Y5UzBNWEhk - cGdtejVQQ2hsbWNlTkMzVWdKVm0wYU0KVPSnMAsMt5QlArKokgmHbRp/+UcFnWzi - PWA1Ypkz8SrHtZA9XNeXeav2uRHFVHn7gYuSi9aGojfYJmwQTtbrRg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvU3NzY0Uxc0NhY2xJZyti + TCtTS1crV3hzMXZNV3k4cm0zUFNuY2tBL0dNCnNpYytoaUI1eERhdG1PUlZ2eE5C + R2UrVlBwcXR2L1VNR3RJL1lEQmlTSDgKLS0tIFJyLzhZeG5zejFmL2VkYy8xVEM1 + U3QwOXlRdU8yd3ozL2hUVzRXNGE0bDQKT7SLAqICsbFmRUF+3s2avpBt0dLUbHLX + AgQzx5v6GpMMNwCkCrOnpFX6al7zkRSYHe7hbn03BBORz9mPHek5ew== -----END AGE ENCRYPTED FILE----- lastmodified: "2025-03-02T07:58:00Z" mac: ENC[AES256_GCM,data:OvERjDFfHTJbTfwq9BmXBQy6pjeyIhao6zP4we0KeYL3skbw4+aaMixjUFzjauby0C7nJjEPBSk6pwK3lN+rScS5g7J8tTNtmhfEDQbfsS5zNDKzIQjYxbUbDr2cTPWwCA73gRGMwLbyNvdfuEp46jNV8OJ8km/y2nyG9lDcBb4=,iv:0RSU2MdZWiYEapwXGzevP9/vc/Sk1MS6a0MnCRQyIs8=,tag:vvngXS2IRzH999yzo4JyFQ==,type:str] diff --git a/nixos/machines/nyarlathotep/koma.aliases.secrets.yaml b/nixos/machines/nyarlathotep/koma.aliases.secrets.yaml index f070323..b9334e6 100644 --- a/nixos/machines/nyarlathotep/koma.aliases.secrets.yaml +++ b/nixos/machines/nyarlathotep/koma.aliases.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtamVaWThoN0ZpbUpQRDJw - bGpBemtNb3AraVBzSmowY1NhUlp3UFI5WFdRCmpPNGtFUSszWXZsdzhVc3dNK1JX - ZDRITHVYaWp0Rm9xRkh4N21acWlQazQKLS0tIFF6S0d4czY4a3VsTkUyOFIvbTdu - YXVTZzlFMThxRzE4Vkt5a3Ywb0dzV0EK8jYbkEosl+jhUB9HooENR7afTYEjf6FM - ntxN8+Ik0ui66nZjQV7p8B8bEa2VObWp3QkkJMHu2RzsfcvybyV8bw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLYmxCQk5RdGxjb3YraVhS + NGozeUtNZjBISFArMk9iT013azZUdUtkMVg0ClJ2dFpsUTRoWmlaQjFTOFBuUnJ0 + dEZhSTd2c0JRdjJDdTRacXRMNk5rWGMKLS0tIDQ5eDk5NWdiQ29Qd21jcXE0SWFI + Yms3dVFmT1NBbEZVNENraDVzcmdCYkUKXUpP2S1BNrZNVJWpHOeRljieo0WnGsfF + DKsc+3Xa2T31ISsErnM2nC+ie3Xwhd/W+kzvWaIpZDw+jYHreVTM9g== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArNW16QTFva3R3a0VseWFB - QXRaQzFFRmE5RDhsZThpeTNoMW9YeWN6bDJZCjRaOWZTVCtsMWVYTWlUWlpQcldI - YjFTNHdVT3hrbm44eW1JdjVMdmg2UEEKLS0tIGJRTFkrZlpPZlJSZXhTckxDNDV0 - elRuK3pxRWVJU0YrY0tQbDFtVDF0ZXMKVjD832/sHWsq8wVNdCG32aOxURoC/GMI - RaBkivFaY5VH62wBiGxysVR0wAzhomxotaXBQb1oOd17V3vzzqgbKg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyVGN4bW1FMGI5elpkWHNK + TXVEOFh1bWVyemxzS0VOdmNVZFp4TSt1d0JzCi9ZQ1ZJd0FoTGdWSlEvTVh4VmVU + MHNDVk9oYlpVWlBvTktJbWRJVXFvSXcKLS0tIEMvTCtmdldOYk0wTlUxSXZqVGRn + V0NZYmQrZzQ4c2t1OFBKazY1dnJmU2cKHDw0nsK2EODeR6/ouZXAgxIXTf55iI87 + mvN255aANofIKW8/by2mECU7fRRkI1gZn3lp7vy8iUPb0979A795Vg== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqWnhTM3RpUFNyY1ozK2ZB - ZVBaYkQyN1QwdHgwUmRXYWpvV1BFOU11bTE0ClYxWFJCVFQ2MS8raUFuL0dmVXNB - UXJwbzZLV0FEVkpHdmM4OHNHWnVQakEKLS0tIEdJczRjU2x2NmltbDFPanNreFZz - UVByUUtOZUpFQ2lZL0FRMmZ3OHdNV1UKpCl7y66hRcrfXEbzdWmmqGalmLF3mtpb - I2SBDnFrDXwGzvEm4ws/kmUtgwgs1d3xlHfLpLlzEXr5yv2V9o2weA== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZmRpZWZCSlFRblpKSDN5 - Qyt1aHVITE1MY2lqQkdjU0k3WTFkRjhpcWxrCloxcnpXMDViQ0g2SXJKYnRIMDkx - dXJjTnRaVmx2bmkwRzV4UUMrOGljYTAKLS0tIEZibUJGQTdadUhhZ3FlUy82ZVAz - NVJKdU52TEFqdzN3aytDSXZOWTZadncKSpoePt377xcWNOQDY0vC5NTAi4eez4aB - FHEcwI3IVEaqBT5BX+JpZY+JWNDwmZWPS9oxyvAmMXa9XRtzbYElHA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArUW4xTi9pL1IydVIyL1dj + SmJGYVhaM0swZVRSNncwdjY2ZlJkeUpCRFZJCk1jU0NnbFBNdzBTVzY5OE5MbE42 + OGtTTy8zcTlkZlcwY1lpSDBQNEluZUEKLS0tIFVTWHZCZ0gxM0x0N2FPeHNuU0VO + U1JReVBqMDdrTlJ6NWhsUWpqUU5RREkKjEBva2DIWC8b7FdE/78zWeBCjHqBXY0S + c2gEh8aHDoI7MRndSqoye6SLmqZsF5SDAcPT8BJs9OnXjB4V8t+iQQ== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyeHdkYnAweWQrbEJHYlJs - ZXJndlhJenVkRnF6N2w5ck01TUxPN21GVFdjCmlhVXE2VFJyY1hIT3BPOW91YWk4 - Sy9CdHhCeXJIRHpvZ3drZlJOY2xYOWsKLS0tIEFYWFZ5UlFNMlRxSGVIcjNrejJ6 - RWJIQ3dON3lqQWdtdjdXWVZwZlAyS1kKuP3J9QpVen82D/BRksJyk8TQtsWp85yQ - 3wvod1vT5Sg4wW7ELejgXJG7M0UI++47z99/LF9vZ8xU84ameGDNlg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwdWNRN2dRSHV1a01pK0FG + MjR4MnEwTmhQQ1dKQUNoRnFvT1ZnRGh6UVZRCjJsdDg1QkVyMjB3SHVlNnBITDFB + V3d4VUVhNFVieHpTUkwrKyt0Wm1uNzQKLS0tIHRpZWZaenZWc0RPUDF4WFUzTWlQ + cEdrMFEyL1doTjA4Kzh5cDFvbGxFUTAKplJpFXx3UJ102IBvvaTyNPbZ6t7MM1kr + ORpuT7HHgMSfT+5EDEbUGjyGbxJIZu8R+bv56kW0nJpXHXUPdLqQ/g== -----END AGE ENCRYPTED FILE----- lastmodified: "2025-02-25T17:41:29Z" mac: ENC[AES256_GCM,data:lZ9AXtJzVuc8Jg9L0aGhS18cs8pTjOG/xNP2tG25/7/PEdEV1SNwbxubGQOFAHrNbiDbmJMKJq96mhV8e3tHszlrzQnU1uyu9MrWiAYwV3CjmwSqC4J9ezSm/AY9e9+OWKn6sb4RVsz9A7aDGUhhoZMycnPNRKlpTuzdTIJK98o=,iv:LxSsZoHkJ2HFXBLWkw+SUb/LYW2ciE1DtzpoV4YLOwQ=,tag:QeYmreRGZk4PqlLWJLLD8g==,type:str] diff --git a/nixos/machines/nyarlathotep/mathebau.aliases.secrets.yaml b/nixos/machines/nyarlathotep/mathebau.aliases.secrets.yaml index 41fc273..898deb5 100644 --- a/nixos/machines/nyarlathotep/mathebau.aliases.secrets.yaml +++ b/nixos/machines/nyarlathotep/mathebau.aliases.secrets.yaml @@ -1,4 +1,4 @@ -mathebau.aliases: ENC[AES256_GCM,data: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,iv:z7p6AE7RJr6bQa3ZQenw/Z4vvap1nPORnyw/n+e4G9k=,tag:mpSQwBCQE14CkcaI3IbBRg==,type:str] +mathebau.aliases: ENC[AES256_GCM,data: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,iv:L+u+63QfFnriEGExLS7JDkMdz1/L9pzu8DgJtIqz9LA=,tag:MS2qZSEKPSQXEG6t2ZAiPA==,type:str] sops: kms: [] gcp_kms: [] @@ -8,50 +8,41 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlRDZjdDRXVU9YNzM4YzVt - YTNWVWtSZU5LWjNYeS90b1FBN1BwTHFmNmo0CndkSTFwdU8yc05XQk9hRFFCaExt - RkE5a0RDbjFzR1Jpdlc4VEtFZ2M4NTQKLS0tIDBGSmFIM2tYU3YvVHFvVitYbHNM - WGp3bXlGU1pRN0VYUG9YcXREeDdvejAKCsvP52Y7d6gJjGk4erUr3QnpJ6gA91bo - IN/p0q6Dp/Zon5QdCuDhpP8Pyk+T+wgiWt266fUujuwJ/uvdwU+hJA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0bzRwRTZUQmdTMVBzbDk4 + dU9EQmQ3MG9IWHVIY090TU9VQWJ0T1djZFVjCjBzVlBLNUNvNE1QOWpOdnVtalhM + NkI4Z1hZQW9Eb3JxdUFsRDIvSkh5RVUKLS0tIDRmV3VhWUc2OU42OGdUZWdsSFkr + WU9pNXh5VFJsajJpa3FYMk1sYXRvM28KIYnRHsjhjxPgUO6BKyXTvaKllrETu8EK + EkXEUqKG39KYI9Ibx8fRMrO3RwT4/N3GxM44Xdyx/94Kez2hFEWxKQ== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUY2I0VXpEb1hJcjc5cFlv - dmZXZnBzSnJNODh4S2I1RXNKanVjMkY1R2lrCnFnTC9BYjdtUWZsNC9WTnpOTnR0 - UWpqRnltMXMzcW9qa1h6STdMdGs3QUkKLS0tIDRlZWt3TzlIdHFMdFdKTmVjeG5M - VFZFL2I4MnAvNnV4RThTRVBibVpYc3MKr6BQFIyRWOLV2z8Ru9QeSCI1bPulJiWv - IhQZfpFPE1cgRG4XvU+F5M0xrtOWLzbma+p5lodJbeTUJ8b9MWDxbA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJRDltZGpLcmt4M1Z0TWFr + Ujlid0htWW03SCtlb1N5VEFYN1gvKzBUR1JVClNtNzlGKzZmY0c3OEdSZFBxS1RT + WEZ2OXVSbzMyNDBjdGd5M05uVlNmcFkKLS0tIDJNUDMzOGtIeFd1T2lxcE40TVNC + cEVUVkU1L2ZSdWZubzNXWEZ4Njk1bkUK2nGXeFDNoXnS2W9MJ/JS5NrziimVdQX4 + O1y/kGuJRdNEVF6TQJEXQp0n81b7wfGBCarj/Wkg5TyD6zX1i/0khA== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlYjNmZ09MRndmTzRkell4 - bldxZGt4WE1aK2NqMndSaGVoTC9lTnlmTG1vCldZUTMrbTMzMXU1Q21hb2hDUTRP - VkZFdUxINTY0QW0xcFR3S0E3VmFvMlkKLS0tIEFjTDBFRFgrWXNnR0pJZTJNeFU1 - disvbmZ2cktpR0FRcSt6elIwL0hYOGsK1ORYia035DopTjMUSHYxvLniIKgboqd9 - mj4Lxz/H2owLFzin10jPHKg6aKfUO9XpyDsLBtm4+AxjGGRLI4daMQ== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3SDdKdUJTWDVCUHVab0JC - OVdOcy95QTkwUE12bUMxcmlYWkN4b05TV25ZCmRQaWRpd1RFYWFoZEwwQkQva3E4 - M1RhTGs3K0h2Y0tMV2p2dUp1VzNiWTAKLS0tIDEyaE52SzRueGV4bVRnS0ZESWFV - MXRiTzhDeHgzbk1HQzNCbHFSZGI1R2sKweceNOj3d3EvsMFlZDstgOBUPj8zDzKw - d+LjR4R7RXbhki7X4wQS55toCYed2znuhQc2XHMmDyNd+/qHTKA+Ag== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaYXAwa0w0NnpqcUdLNi9S + enVzbG9kMDVNOGh4RkFlRlp5TC9aWEdDYVRNCkQ5TWRMZThpTGJRNjhha0owYllq + RndyY0NKRTdhdUZxa2lJaU5HcWRtcUUKLS0tIFhQckl2L0YzVG4xMnAzdWJ2STVz + eVJYTUlqS00zalhsck1zeE5XR09GZHcKutZpLNVfPbHpfAWvKililHzlmvNm3aPD + +MGxO2I/eJNxZu20aSusRuAA/5AmJ1B0No3PvfxE0sL143m7wxloig== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByVU5SVEtqL0VNSHlYcW5M - Ymp6enJ1Ynhud0RYbVZJZmNldS9tSFRGQ1ZJClpmNm5GSTVKN2pwQTJHZVJLSEtJ - R3FFRlB5VGthSVJMRzRGNDdCS0x4Q3MKLS0tIGZGajVQME14S1RobFViZVl0NWxO - eDVjSmtzdkdweVNiK1NpWEQ1OEVZLzgKKTQmm2z+Y25qlLUUYn3uhXpiiBS74xb8 - SGJv3r027t5I2i9Gad76vb7mdRrd4Mp2jf0y1DOsVUBjfFPrUAE/LA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOdkdTcnNKalc1VHFwUkhJ + N1M1M2hyTXZyd09QWXhtS2FOb0lkeEJoNzJjClNEZnBUVU5qQ3o3aElZek51dU9G + dFgzNzZHY1REN0VQcXc4ZTRWUGxtbnMKLS0tIDVCUEErMFZGN0pTOWMwemVNSTJq + clA0eHg5bFNRU0lyUmRJcUpSZ0F2dmsKKm0EriU4LFfV2PWm2k9Q7T2gOgG540Jy + rjfQny0dUNM1ofzYSLDXb+Kfm5/aVwNEX/Hl1Jya5ERFJswKbVlCgQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-03-29T10:15:49Z" - mac: ENC[AES256_GCM,data:Ri/8BdSxE7FdyeWG7/zH3u/tYjWWqwgb5bXU6e80rmhc/9U9GBFoDRuADRdmszWRKdAPzZFLqxylx2YUCU0RfA3eS4aEykPtzFm5NmtkJuTcUcGDIjJEY4x/dmAEITAel5iNT1hLx2SKYu8PcqsVYHoLYovDGc4ANyxWej8lp7k=,iv:O5POneuiBVBvfzEwV7Ta34XDULmc6dre0WNNBQ1CzzE=,tag:sQw/rSfdS53Bn98goSGPMA==,type:str] + lastmodified: "2025-03-24T12:47:21Z" + mac: ENC[AES256_GCM,data:LVW1sW/kbA5Ft6YeoNSgfSDhvbGWl/5mJYeKuJWclxn/zCVADU7Z63pisVVzAzg1rr94lZ2ncQw9AYSaN/8EQ1mvwdG7quf18uj8QGC8KCF7S+C5M768kZ7dYbjTlMyQ9J5s6C+G5EeRiEjP4fpUgduW2p9KvEQuPX6LvP5gOrM=,iv:kaaXs9hvIRxZjJE2vW17ziJEKf5ZeypFDGj1YVwIKv8=,tag:Az2oJO4N1RyTi/ON1r8URg==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.4 diff --git a/nixos/machines/nyarlathotep/mathechor.aliases.secrets.yaml b/nixos/machines/nyarlathotep/mathechor.aliases.secrets.yaml index 396dade..d7bac28 100644 --- a/nixos/machines/nyarlathotep/mathechor.aliases.secrets.yaml +++ b/nixos/machines/nyarlathotep/mathechor.aliases.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZc2dLY1c3bnlkYmVtTVBh - MGs0Uzc1a1kzR2hEYTJvckV4eGN1eHRNNFZvClVmL3E4ZmhXQStUamhjU0dtRGZK - VHVnL2RuS1puMEo4b3RxWHN1MWpCYTgKLS0tIE83VzFBUCtDZzBjT3ZDQ2hjcWpq - cmxZSDVQZ09ZaTF1eDdva044VFZJTGMKVWfLUnzuacKEApElMrf1zFNUh+g9d5Ub - u5ZM9ykLVZrY6XYr+cP+OlDfdOW6+DcDqeCu+wpUoj7NqJYIGTRTjA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnamd0eEV5ci93VE0wYUFk + WjFKdHlvdUUzcVZKOXZqWjlibFlWbzNyY0EwCkdibGxsU2I4YlhkTXRtRXpQY3RK + V0E5SEZaMVJHOE1xTW5ubzdvZEJvM2cKLS0tIFlhekt6b0loZFkreFRVQ3gxVHhp + MFZ5YjRlTTBuUU8zS09wU2pVakpXc3MKVg6OF8lgYRzlCgQs0/YADdQkKeXITevl + LnA7J6/rCLt04YXlsp2GzvFJpXTdSVU9E7MV+bNS8e2ilgpFiBpZHg== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuSmtOOGtaY0hJY1REaXdq - NWIyWTJ0V2NLMFhscStURFFJVVQ1bFVvS3o0Cm1hK0o4WmFkcmxiaGpnb2xyclpx - RnRIZEVUcHc2cmgxTkk4MEVMNHVtajAKLS0tIFduNitLVHhRYkJIWkNpRWRlaVE1 - bExKVWZDSjdOK0U1L2ttUXRyL2U5MFkKFXFLOQ/6wyWyI/XEkgWOE5IQ9KzkpBUl - yACV70Wl4kGNs8U3PIPf3UD+M4WwbKGcZS3cLTmXlijbh6bCoJdC2A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWUkVPMkd2UWJha2RuSm5B + UlNGNnNiSituMldmYUhyT2RqSU9XZThySFQ4CjE4eHFIdTJEenVGeHJDaG9LY3N1 + WTNmVWNTcnlFZkptTGsvdzBLeWNqdkkKLS0tIEhFTUYxdW9ERkpoUGdVYVg2ZGFv + a3BWVThndTcySTNWclZ2bDZqUkhMSjAKcwml/zw7suq80SiC2ll1g6TZ0Z+lYA8w + cKrVjXRbF8hZJUafcqnkeX2UlAWEriRfSFRksWlJvU3bKpXcpr+eGw== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOZTNXdi9GYTNZV1JZSWp0 - ck11Qmpzbkl3TmZHTXdKT3Z1cEkvQVg2NjJrCnRPVm5yTFBWb3Q5QWljWm9Eam4z - dUR1bmY4WUl1SVQ2S1lJK1JsL01sVmcKLS0tIEUzY1p3WmVIOHpvUnE3TkVnN1lw - anNNNFg0TU9hRDZCM3VWelZYRlIybU0KymqMqMpBX2yYvjEc1AnbhDqhxWSp18zs - YQCL8kXndPzpKnPrmPFrTMEVjjoMsQWdYl6NydkVyi4eqnzoEUPfnQ== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4anlTZVBTT1U2RVJ0SXBT - cEh3SVd6cGk3OGxoaFJCTldkb3UzMFZvdXdzClpzRTl2RFNvWlhBMEhUU0pvd3Y2 - WEpIZmVGa1FpbmJxR1dWaGNkRTBhQk0KLS0tIGJZb3dJbDE5YWxhUzFzZEtVR1Ur - TjJERlNCbU4vOVkxQWxUQWhCVE1mRkUKlM45rlmhxlwnxmJTyT7Ee+zZx+DBgYIt - gj2OsZqRMSbY+zsKm/fvihb7iQm6hN9NSNjP+raCeS+w3RGi0Q1Fvg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTGhoZmhBcHZMOUxhSEhR + TXYyd043S2ZVWlA4d3dxTjEydXQrR1BHQVNRCkZab01nWlVtUyt5ZkxQeGw4UEd4 + c2RwY0IxVkRweXhoazZEU3hqRkEzdG8KLS0tIGhLQ0ZXaDdTVHNpcjNYWVZBL3ky + Z3cwSEo4OWpxUEthMUs5RkdSRjM4eTgK2H3gbR7LFy4H93MGVeuYT1KyIfJVT7Vv + vVj+uj0iWvEhj7KRGzai8KenwqyQh8bjLdV05HvV+EBNNRpIvukmEA== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3VDhFZmpzOWhyNkdKL0RZ - MHd6cUk1aVF4NEsyQ2N3REJ6TzdtdzhmdXdRClZYKzB1T1pHei9ydWpLbndCd3Bl - cFcxWFVIQ3Y0ZUhwaW5jbVlCNTZoeGMKLS0tIDhIeTRvUzF0WEh0d2VZdStWV2wx - anpiQjlYYnVKVUJHNkFwK2htTDg1TDgKd6cVLn+S6og9RPr0mzNzVZlYFuLukfae - YD/4tkL5SKLEYWXO1FgnoO2G5/hC4Z8i4sLpKsV45iWm+AQZk9zWvg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxTVQyRDdGQ0E1VkNBZTNZ + cWVsYjN5MVlKcmR4c1VOVnp6UGdDNENEdng0CkVVZ2orOTgwMC8xeE90Q1d5bkNP + OUh6L0FzZ2pzclF4TVpwUHIyRWNYRzgKLS0tIFZLVU9wRFl1bW44d25zRmRqRHJQ + Z1I2c3h3TVIyeTNYSzhGbkV3TVZ6dWsKdxp5Lqlkk3Awa/G9OwaCyHBM4OHxu0Gb + cmzw0frdL7+EUiLzxoi7okXhMluj9R3G/lQicDq0+5tCjDRPkuOHcg== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-11-23T09:05:51Z" mac: ENC[AES256_GCM,data:Xnulo0681LtgH9SZt9DL3nd9bSDH+TCQDvbKdggVBJ66rxBiKmlbu5MAblAWqxbdZ6EelldaVeX9OaL2rYJoYbTWxzw2iuPieldp3Ah3PsTI2C8W+UD9KVHcB+3AMOmVmJZzFlZvTwyfPfZRNNb0HAijkN97P3fP0r1Iqf3YjiI=,iv:vhu38HM4e+PyyChXvI87LWSGtKQQiXUr4MKrI7kotzk=,tag:eNuQD74kUO+duqEXNbLJBw==,type:str] diff --git a/nixos/machines/nyarlathotep/stalwartAdmin.secrets.yaml b/nixos/machines/nyarlathotep/stalwartAdmin.secrets.yaml index daebb94..be5436a 100644 --- a/nixos/machines/nyarlathotep/stalwartAdmin.secrets.yaml +++ b/nixos/machines/nyarlathotep/stalwartAdmin.secrets.yaml @@ -8,47 +8,38 @@ sops: - recipient: age1rasjnr2tlv9y70sj0z0hwpgpxdc974wzg5umtx2pnc6z0p05u3js6r8sln enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwQ2RyL243Q0Z4U0ltWHhY - UmtxWUEwekdHanVNQk5CczhvVCtJTklYM1VvCk9kcWxmdjhoakpHRGFnVWtvak92 - Snl6eWN6aTRIRS9RZFZCOXNxMFJ5WE0KLS0tIDlHUGhoQ0hlRWNkSElsei9WQk82 - dmtWZEJaSXBOVERMeDFTSmdycWtSb3MKlJXD4NDOQJlnlmroVvpnUjFZ1TtUQZhi - tRsCWvuF+HIfp42wlxsQG34T5ql5ngleLvAvwksKYTugLzD36BRDQg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxTDh1UjRDemo1TjE2VzBy + Zkh3NTBVVmhVL0oycHJCRXVnR0hnSWJTakhnCnNza2o2NTFHTGd3WjliUlp3M1BR + VVltaldhcjRUSXdtWTd0RHBoNS9UM2MKLS0tIEJTOWpxRURGcStmbUs2TzBSN1FC + YVArVzdqODYvRTkyVFRVSERiU0pFMUEKxiFM8xnNtQvAPeuSd/rAhRveqS8dlp7Z + N6q3vXaL72Fb3KOMKN47OXE1Fevra5IyB51Fc3NDX2VQ/H5dg7xN+w== -----END AGE ENCRYPTED FILE----- - recipient: age1epz92k2rkp43hkrg3u0jgkzhnkwx8y43kag7rvfzwl9wcddelvusyetxl7 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqN2hpeCtBemdrdmpQMGM5 - ZXFSTTROZ25QMThDeFhRZllXdEY5bWVaSEFjCmFFbFZJbHNabzBrdEg3azNtSTh6 - WW1GekpVSzgvUTRSVTM3MHhoRCtCcXcKLS0tIFdwMDFBb3VyTmVrbFBOU3QwbEF6 - ZTBsVWlaNVZqWk82Njh3ZEo4bjF1V1kKFi97lFr4i4vZGhRf7a8gUZoQar2BmOO3 - XkLhtoPLQnSZJDYgH/mfHtdLUoI7OSKA0HtJpST/WGYXhkT+pdSCNQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGYU50QytQQ3hVNUg1cFp2 + V3lQUWJJczlzTG8zc1BoRnZEYTFMS2NYeUZJCjRPRXRnMDB2ZGx5ZGFpTHB3Zjgz + Qk9XNzN5ZjRpWFdKdndEd1oxcTRUYXMKLS0tIDBZYzc3SDdHVXVHMUNkV1RaZ2tz + NU9JWWtxdXhPZTlQODFZM1FpbW1mbjgKJzsaoeNZSumYRWUbxEgdgtNZ/ykVr/Pp + ujlm5Te21pQ4Xna5yyTPdVecPPGFmIuF70F0VjwCdgESV/KbeYj32w== -----END AGE ENCRYPTED FILE----- - recipient: age1mmpdvzy6d23qyhrl55jtv3c25pus2wwfplx9tujmqps2xsreuv8qwc6gv5 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuaTIxd2VxM0NzbXRtdlVl - WmZHaDFTbnQzZTFpNnE1Z2RYRmVjZGRyNTI0CjVERGVTR29IcDl1Q3VxUVlZY2lX - NWZXZkRmSzNPWEFJS2o5QVpvQWZmQkEKLS0tIElwR3lDR21URHJCQUdnVmlCQUpK - RnY5TGV0R2x0emJjcGNGRWsranUyRXMKPfgDEKkyX+IerMp2LGgbVQgLiMy3FrJ0 - lzRTIynAl6xDd8Ux7yHrOxmLdLo1ocADc9nvHEOFjVmhojeLlyRr6Q== - -----END AGE ENCRYPTED FILE----- - - recipient: age1m7l4x2zdgn7akgg5mkm9quen3u9sm0785tzm7vl000anuqrwwg6s5urenn - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJRDJ0TVA5cVdYVSsyT05O - OWRwdUEwSmZSOGVjN0UvLy9td0NSMkk5KzNBCllMYWlBU1Z2ODZ1YkpTZmYvUXMx - NGtZMWZLdGlISFBkWTBTNTNRdDZxNGcKLS0tIHpYMEFnMFY2TE41TC94RlJuUWJB - M3g0WlJSM0RhWHpJUk9jZnZzajJKcDQKADZakgsCYlv6WiBPQ/HFBADk7UG4/NFE - TWWlsjfIT4mTytnr0CYWgBLYV/XoUlQD/V+ta5n6kr2DNZGHVJ7fNQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoZENYOGx0dW53b0pFSUZk + YytGRDNyRmJWOUh3L083TkdNQ1FOTUhSSUZzCkIrbk5uNGlSdXRQM1pyYmhZZHJK + SnIxZ05oT2xSUXdjQmFMeFVqMzluam8KLS0tIE1EbFg2ODBveGNzMWZlaHZwcXpn + UWNKREJ6STc0RHR4K0hIbkw5UG5vczgKhcGeG1kYK3KLAid9oQzPuJml3PEQaYwf + Zc9PmY7aA6Gww9RY3aUGneLSUrpcdJRY7bDsYDbwve+CNO1Ln/+oPA== -----END AGE ENCRYPTED FILE----- - recipient: age1ktwclxa640l89le6yecm8v2z6hmwr4lusd6x9gyzamhv57887szqtqp59a enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByS0NucitnNVFDZXNGR1Zu - Sm5qTk9PR0ZVcTJMclVjQmJod0J5K3hZcmtvCi9tY1YyQkttc3hUZytkNVRDdTlK - VVp6VUQ3TUE4QSsyd3VBZlBqdnhBamMKLS0tIGo3Uk5CZFhMTDlUSWJqallidVph - VlVrUUFFVnF1eFlUb2h1MkJqM0I0NzQKVi6jGebwn2AFkTVLF9OkdWJ3wWmNgKpI - IuJramt9a9I72F+laUpjtX4hwwlRLIU/GicUux3/y8j7GjwkoxdMNQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBd3FTMnEzU0xuVnZtSUd1 + dU1YVjVZU2dST09EZDdiMHoxZ0RXTUU3RlJNClU5UXRPRXIrdkZzRkxtK2RUSTEr + UEltNTlnWVRzOFIra01PNk9keW1YU3MKLS0tIFl3Z2szLzREN3ZBeW5pUUE1VmRh + YytJNUt5NWRncmJua3o1NzdtK3JnekUKHgzr7iAqCfPT+oi0I3yn7CrhRLSXsKv2 + TfXTa4G88ume9S/awMF+iZigX5ubGHVOeuvOwuPY+EdIDY4E3RSfgw== -----END AGE ENCRYPTED FILE----- lastmodified: "2024-11-23T11:43:23Z" mac: ENC[AES256_GCM,data:GZ1Q67n43WU3fDQd6SGsD2EZgoaq1mzh5biy42cx6FQWlveK5lhb0F2HUuWWv5zSHKpslEPD6odvkQmMNCRY8NsvT3+KBAnHHU0aHzM9AEV27cDL4x6oBvO52EMxsNCMm+fXPD1CubQxfbfvx/aIuqb1sovgKGgwf4u6yqIrHJ0=,iv:ExX+ySMXhF/c1w2IP7y8mdlcy8W9Zxiy6X67b2f4AeY=,tag:shxQJdaW3HsG6sNY+zDNCA==,type:str] diff --git a/nixos/modules/mail.nix b/nixos/modules/mail.nix index 5384c40..71a6559 100644 --- a/nixos/modules/mail.nix +++ b/nixos/modules/mail.nix @@ -98,10 +98,8 @@ in { domains = ["fb04184.mathematik.tu-darmstadt.de" "imap.mathebau.de" "smtp.mathebau.de" "mathebau.de"]; default = true; }; - # HRZ/DFN does spam checking for us and this way we don't need to deal with their possibly broken forwarding setup. - spam-filter.enable = false; - # Reevaluate after DKIM and DMARC deployment + spam.header.is-spam = "Dummyheader"; # disable moving to spam which would conflict with forwarding auth = { # TODO check if HRZ and our own VMs conform to these standards and we can validate them strictly dkim.verify = "relaxed"; @@ -360,7 +358,7 @@ in { # We don't want this in order to not need to persist borg cache and simplify new deployments. BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK = "yes"; }; - repo = "borg@bragi:nyarlathotep"; # TODO for https://gitea.mathebau.de/Fachschaft/nixConfig/issues/33 + repo = "borg@192.168.1.11:nyarlathotep"; # TODO for https://gitea.mathebau.de/Fachschaft/nixConfig/issues/33 startAt = "daily"; user = "root"; group = "root"; diff --git a/nixos/modules/mailman.nix b/nixos/modules/mailman.nix index 5383374..66ee109 100644 --- a/nixos/modules/mailman.nix +++ b/nixos/modules/mailman.nix @@ -117,7 +117,7 @@ in { # We don't want this in order to not need to persist borg cache and simplify new deployments. BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK = "yes"; }; - repo = "borg@bragi:lobon"; # TODO for https://gitea.mathebau.de/Fachschaft/nixConfig/issues/33 + repo = "borg@192.168.1.11:lobon"; # TODO for https://gitea.mathebau.de/Fachschaft/nixConfig/issues/33 startAt = "daily"; user = "root"; group = "root"; diff --git a/nixos/modules/vmNetwork.nix b/nixos/modules/vmNetwork.nix new file mode 100644 index 0000000..133d101 --- /dev/null +++ b/nixos/modules/vmNetwork.nix @@ -0,0 +1,48 @@ +{ + lib, + config, + ... +}: let + inherit + (lib) + mkOption + types + last + init + ; + inherit + (lib.strings) + splitString + concatStringsSep + toInt + ; + cfg = config.vmNetwork; +in { + imports = []; + + options.vmNetwork = { + ipv4 = mkOption { + type = types.str; + description = "the ipv4 adress of this machine"; + }; + }; + + config = { + networking = { + interfaces.enX0.ipv4.addresses = [ + { + address = cfg.ipv4; + prefixLength = 16; + } + ]; + defaultGateway = let + addr = splitString "." cfg.ipv4; + addrInit = init addr; + addrLastInt = builtins.toString (toInt (last addr) + 127); + in + concatStringsSep "." (addrInit ++ [addrLastInt]); + # https://www.hrz.tu-darmstadt.de/services/it_services/nameserver_dns/index.de.jsp + nameservers = ["130.83.22.63" "130.83.22.60" "130.83.56.60"]; + }; + }; +} diff --git a/nixos/roles/admins.nix b/nixos/roles/admins.nix index b436b58..2719032 100644 --- a/nixos/roles/admins.nix +++ b/nixos/roles/admins.nix @@ -29,15 +29,6 @@ with lib; let "nix.mathebau.firespike.de-1:OmST0YGbAaBjPo5xSM5Bqwk6/W5o7B5CnW/NDr0NacI=" ]; }; - totallynotadolphin = { - hashedPassword = "$y$j9T$7DJ8VXEx1oB1holOY5U5q1$rSeGtWxDCWeOLpqmmkxYe8DCnb6uowUWafMGODTPQL."; - sshKeys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJRXBT1k40iWHwMVcStnV8jbpXbT3DXrwRURC+GkxEuc dolphin" - ]; - nixKeys = [ - "ocean.mathebau.de-1:G3Jz3mErIy8Mq8Ih+A5pbwDrx7vREcOpKgY8JCQ9dAk=" - ]; - }; }; mkAdmin = name: { diff --git a/nixos/roles/hostmap.nix b/nixos/roles/hostmap.nix deleted file mode 100644 index 66f8615..0000000 --- a/nixos/roles/hostmap.nix +++ /dev/null @@ -1,57 +0,0 @@ -# This data is taken from /etc/hosts from azatoth -{ - bragi = { - ipv4 = "192.168.1.11"; - }; - tsathoggua = { - ipv4 = "192.168.0.13"; - }; - nyogtha = { - ipv4 = "192.168.0.14"; - }; - hastur = { - ipv4 = "192.168.0.15"; - }; - cthulhu = { - ipv4 = "192.168.0.16"; - }; - nyarlathotep = { - ipv4 = "192.168.0.17"; - }; - nodens = { - ipv4 = "192.168.0.18"; - }; - uvhash = { - ipv4 = "192.168.0.19"; - }; - aphoom-zhah = { - ipv4 = "192.168.0.20"; - }; - dagon = { - ipv4 = "192.168.0.21"; - }; - lobon = { - ipv4 = "192.168.0.22"; - }; - yibb-tstll = { - ipv4 = "192.168.0.23"; - }; - eihort = { - ipv4 = "192.168.0.24"; - }; - ghatanothoa = { - ipv4 = "192.168.0.25"; - }; - toth = { - ipv4 = "192.168.0.26"; - }; - ithaqua = { - ipv4 = "192.168.0.27"; - }; - cthugha = { - ipv4 = "192.168.0.30"; - }; - sanctamariamaterdei = { - ipv4 = "192.168.0.92"; - }; -} diff --git a/nixos/roles/vm.nix b/nixos/roles/vm.nix index aff9f22..32fba6d 100644 --- a/nixos/roles/vm.nix +++ b/nixos/roles/vm.nix @@ -1,6 +1,5 @@ {modulesPath, ...}: { imports = [ (modulesPath + "/virtualisation/xen-domU.nix") - ./vmNetwork.nix ]; } diff --git a/nixos/roles/vmNetwork.nix b/nixos/roles/vmNetwork.nix deleted file mode 100644 index d4a0ff7..0000000 --- a/nixos/roles/vmNetwork.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mapAttrsToList; - inherit (lib.attrsets) foldAttrs concatMapAttrs; - inherit (lib.asserts) assertMsg; - inherit (lib.lists) filter last init; - inherit (lib.strings) splitString toInt concatStringsSep; - inherit (builtins) elem toString; - hostmap = import ./hostmap.nix; - myhostName = config.networking.hostName; - # To turn the hostmap around suitable for networking.hosts the following simple code almost works - # concatMapAttrs (hostname: ipData: { ${ipData.ipv4} = [hostname]; }) hostmap - # but breaks as soon as we want to map two different names to the same ip. - # So the code looks uglier than one would expect. - globalhosts = foldAttrs (a: b: a ++ b) [] (mapAttrsToList (hostname: ipData: {${ipData.ipv4} = [hostname];}) hostmap); - # We replace our own ip with 127.0.0.1 in /etc/hosts - myhosts = concatMapAttrs (ip: hosts: - if (elem myhostName hosts) - # nixos maps the hostname to the loopback 127.0.0.2 by default, so we exclude it here. - # there is also a default localhost to 127.0.0.1 in place - then {"127.0.0.1" = filter (x: x != myhostName) hosts;} - else {${ip} = hosts;}) - globalhosts; - myIp = assert (assertMsg (hostmap ? ${myhostName}.ipv4) "${myhostName} has no ip configured in nixos/roles/hostmap.nix"); hostmap.${myhostName}.ipv4; -in { - networking = { - hosts = myhosts; - interfaces.enX0.ipv4.addresses = [ - { - address = myIp; - prefixLength = 16; - } - ]; - defaultGateway = let - addr = splitString "." myIp; - addrInit = init addr; - addrLastInt = toString (toInt (last addr) + 127); - in - concatStringsSep "." (addrInit ++ [addrLastInt]); - # https://www.hrz.tu-darmstadt.de/services/it_services/nameserver_dns/index.de.jsp - nameservers = ["130.83.22.63" "130.83.22.60" "130.83.56.60"]; - }; -} diff --git a/packages/alias-to-sieve/Cargo.lock b/packages/alias-to-sieve/Cargo.lock index f7dffe3..114d415 100644 --- a/packages/alias-to-sieve/Cargo.lock +++ b/packages/alias-to-sieve/Cargo.lock @@ -85,9 +85,9 @@ dependencies = [ [[package]] name = "fqdn" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f5d7f7b3eed2f771fc7f6fcb651f9560d7b0c483d75876082acb4649d266b3" +checksum = "3e7cf4b6cb33615d9adab21d74fd820753c532ef7c15ff556e382abde22e4023" [[package]] name = "generic-array" @@ -101,15 +101,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.171" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "log" -version = "0.4.27" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "memchr" @@ -119,15 +119,15 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "pest" -version = "2.8.0" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", "thiserror", @@ -136,9 +136,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.0" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -146,9 +146,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.0" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.0" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", @@ -170,9 +170,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -188,18 +188,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "sha2" @@ -214,9 +214,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -225,18 +225,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", @@ -257,9 +257,9 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "version_check" diff --git a/packages/alias-to-sieve/src/lib.rs b/packages/alias-to-sieve/src/lib.rs index c0d6842..35ebea2 100644 --- a/packages/alias-to-sieve/src/lib.rs +++ b/packages/alias-to-sieve/src/lib.rs @@ -12,59 +12,29 @@ pub struct AliasFile { pub default_domain: FQDN, } -#[derive(PartialEq, Eq, Clone, Debug)] -pub struct AliasEmailAddress(EmailAddress); +#[derive(PartialEq, Eq, Clone)] +pub struct OrdEmailAddress(EmailAddress); -impl AliasEmailAddress { - /// Create an `AliasEmailAddress` from some alias entry. - /// Return parameter for complete mail addresses and append the default domain for local parts. - pub fn new( - alias_entry: &str, - default_domain: &FQDN, - ) -> Result> { - let mut addr = alias_entry.trim().to_string(); - addr = addr.replace(',', ""); - - // The domain already fails on instantiation of the FQDN type if it contains an apostrophe. - if addr.contains('\'') { - return Err(format!( - "Mailaddress {addr} contains an apostrophe which breaks the script generation." - ) - .into()); - } - - if addr.contains('@') { - return Ok(AliasEmailAddress( - EmailAddress::parse(&addr, None).ok_or::>( - String::from("Mailaddress {addr} not parsable.").into(), - )?, - )); - } - let unsortable_mail = EmailAddress::new(&addr, &default_domain.to_string(), None)?; - Ok(AliasEmailAddress(unsortable_mail)) - } -} - -impl PartialOrd for AliasEmailAddress { +impl PartialOrd for OrdEmailAddress { fn partial_cmp(&self, other: &Self) -> Option { Some(self.0.to_string().cmp(&other.0.to_string())) } } -impl Ord for AliasEmailAddress { +impl Ord for OrdEmailAddress { fn cmp(&self, other: &Self) -> Ordering { self.0.to_string().cmp(&other.0.to_string()) } } -pub type AliasMap = BTreeMap>; +pub type AliasMap = BTreeMap>; /// Read a virtual alias file /// and convert it to a map of destination addresses to a list of their final forwarding addresses. pub fn parse_alias_to_map(alias_files: Vec) -> Result> { // File must exist in the current path let mut redirect_map: AliasMap = AliasMap::new(); - let mut destinations: Vec = Vec::new(); + let mut destinations: Vec = Vec::new(); // Extract all pairs (destination to redirect addresses) from the alias files for alias_file in alias_files { @@ -78,23 +48,20 @@ pub fn parse_alias_to_map(alias_files: Vec) -> Result = line + let redirects: Vec = line .split_at(line.find(char::is_whitespace).unwrap_or(0)) .1 .split(' ') .filter(|address| !address.trim().to_string().replace(',', "").is_empty()) - .map(|addr| AliasEmailAddress::new(addr, &alias_file.default_domain)) + .map(|addr| to_mailaddress(addr, &alias_file.default_domain)) .collect::, _>>()?; if redirects.is_empty() { continue; } - destinations.push(AliasEmailAddress::new( - destination, - &alias_file.default_domain, - )?); + destinations.push(to_mailaddress(destination, &alias_file.default_domain)?); redirect_map.insert( - AliasEmailAddress::new(destination, &alias_file.default_domain)?, + to_mailaddress(destination, &alias_file.default_domain)?, redirects, ); } @@ -128,11 +95,29 @@ pub fn parse_alias_to_map(alias_files: Vec) -> Result Result> { + let mut addr = alias_entry.trim().to_string(); + addr = addr.replace(',', ""); + if addr.contains('@') { + return Ok(OrdEmailAddress( + EmailAddress::parse(&addr, None) + .ok_or::>(String::from("Mailaddress {addr} not parsable.").into())?, + )); + } + let unsortable_mail = EmailAddress::new(&addr, &default_domain.to_string(), None)?; + Ok(OrdEmailAddress(unsortable_mail)) +} + // The output is wrapped in a Result to allow matching on errors. // Returns an Iterator to the Reader of the lines of the file. pub fn read_lines

(filename: P) -> io::Result>> @@ -205,23 +190,6 @@ mod tests { assert!(result.is_err()); } - #[test] - fn apostrophe_destination_detection() { - let result = parse_alias_to_map(vec![AliasFile { - content: read_lines("testdata/apostrophe_destination.aliases").unwrap(), - default_domain: FQDN::from_str("example.com").unwrap(), - }]); - assert!(result.is_err()); - } - #[test] - fn apostrophe_redirect_detection() { - let result = parse_alias_to_map(vec![AliasFile { - content: read_lines("testdata/apostrophe_redirect.aliases").unwrap(), - default_domain: FQDN::from_str("example.com").unwrap(), - }]); - assert!(result.is_err()); - } - #[test] fn basic_parsing() { let result = parse_alias_to_map(vec![AliasFile { diff --git a/packages/alias-to-sieve/testdata/apostrophe_destination.aliases b/packages/alias-to-sieve/testdata/apostrophe_destination.aliases deleted file mode 100644 index 5cc3e26..0000000 --- a/packages/alias-to-sieve/testdata/apostrophe_destination.aliases +++ /dev/null @@ -1,2 +0,0 @@ -# Apostrophes are not allowed -'orga me@example.com diff --git a/packages/alias-to-sieve/testdata/apostrophe_redirect.aliases b/packages/alias-to-sieve/testdata/apostrophe_redirect.aliases deleted file mode 100644 index d6b499f..0000000 --- a/packages/alias-to-sieve/testdata/apostrophe_redirect.aliases +++ /dev/null @@ -1,2 +0,0 @@ -# Apostrophes are not allowed -orga me@e'xample.com