diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..41fb56c --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +export SOPS_AGE_KEY_FILE="$(expand_path ./age.key)" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8181b3e..803e78e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ # Ignore build outputs from performing a nix-build or `nix build` command result result-* -.decrypted~secrets.yaml \ No newline at end of file +.decrypted~secrets.yaml +age.key \ No newline at end of file diff --git a/.sops.yaml b/.sops.yaml index fa3febb..e509823 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -3,10 +3,12 @@ keys: - &jahanson age18kj3xhlvgjeg2awwku3r8d95w360uysu0w5ejghnp4kh8qmtge5qwa2vjp - hosts: - &telperion age1z3vjvkead2h934n3w4m5m7tg4tj5qlzagsq6ly84h3tcu7x4ldsqd3s5fg + - &gandalf age1nuj9sk2k8ede06f8gk5twdlc593uuc7lll2dvuy20nxw9zn97u5swrcjpj creation_rules: - - path_regex: secrets.yaml$ + - path_regex: secrets.sops.yaml$ key_groups: - age: - *jahanson - - *telperion \ No newline at end of file + - *telperion + - *gandalf \ No newline at end of file diff --git a/.taskfiles/sops/Taskfile.yaml b/.taskfiles/sops/Taskfile.yaml new file mode 100644 index 0000000..3c1ef8a --- /dev/null +++ b/.taskfiles/sops/Taskfile.yaml @@ -0,0 +1,18 @@ +--- +# yaml-language-server: $schema=https://taskfile.dev/schema.json +version: "3" + +tasks: + re-encrypt: + desc: Decrypt and re-encrypt all sops secrets + silent: true + dir: "{{.USER_WORKING_DIR}}" + vars: + SECRET_FILES: + sh: find . -type f -name '*.sops.yaml' ! -name ".sops.yaml" + cmds: + - for: { var: SECRET_FILES } + cmd: | + echo "Re-encrypting {{ .ITEM }}" + sops --decrypt --in-place "{{ .ITEM }}" + sops --encrypt --in-place "{{ .ITEM }}" diff --git a/Taskfile.yaml b/Taskfile.yaml new file mode 100644 index 0000000..ab26b83 --- /dev/null +++ b/Taskfile.yaml @@ -0,0 +1,15 @@ +--- +# yaml-language-server: $schema=https://taskfile.dev/schema.json +# go-task runner file - rest of config in .taskfiles/**.*.yaml +version: "3" + +includes: + sops: + taskfile: ".taskfiles/sops" + dir: .taskfiles/sops + +tasks: + default: + silent: true + cmds: + - task -l \ No newline at end of file diff --git a/nixos/common.nix b/nixos/common.nix index c4c4675..e0c3688 100644 --- a/nixos/common.nix +++ b/nixos/common.nix @@ -7,7 +7,7 @@ ]; sops = { - defaultSopsFile = ../secrets.yaml; + defaultSopsFile = ../secrets.sops.yaml; validateSopsFiles = false; age = { diff --git a/nixos/gandalf/configuration.nix b/nixos/gandalf/configuration.nix index 64f8383..a57dfc1 100644 --- a/nixos/gandalf/configuration.nix +++ b/nixos/gandalf/configuration.nix @@ -260,6 +260,16 @@ in PGID = "102"; PUID = "999"; }; + lego-auto = { + image = "ghcr.io/bjw-s/lego-auto:v0.3.0"; + autoStart = true; + volumes = [ + "/eru/containers/volumes/unifi/cert:/certs" + ]; + environment = { + TZ = "America/Chicago"; + EMAIL = ""; + }; }; # # Xen-orchestra container # xen-orchestra = { @@ -284,6 +294,7 @@ in # }; }; }; +}; # ZFS automated snapshots services.sanoid = { diff --git a/secrets.sops.yaml b/secrets.sops.yaml new file mode 100644 index 0000000..67c8d6e --- /dev/null +++ b/secrets.sops.yaml @@ -0,0 +1,45 @@ +1password-credentials.json: ENC[AES256_GCM,data:WBFSyiq30df5D2A3jAvYHLHz1b7nnk4MR0W4E8qDblIo2gug3uBbugR0Dcg2XQRSKfTDpk1kc9KPMrqYPsPtAgKjqQzL1XzuAL9i0C/xBO4+VzFoG8Puwm43791bVjFcG4hxdoMiKY28Pi2MnKlQZEivZUatSNHJqouYfTM/pIuLhRkng6YmUIzT2w47bl0K3Sdu+lh+aGxFsL+k1zepMALq+GZO7IHC9xBq32HwhpWd8UDpgCNqdICaJJ6G8iJxjSqUHjoijkU9QUS+WwWFpVGJ8f1WkmQZ6/gcKudMNg8msMrcyobPw/JgeigxDzF3SpujShRJN6O8QdtE8TBnxb2RZSxC5uNojvqgJVcR4ZvQH5wEZZ9PmNbhpS2vo5nb2/b5fmSFvkIsugOveZ/92O6ffA3rSqT7Eb+nPIH9H1BAu7cUxu0RPXBmM72ohMtFoMpPNXJBkJHODcYNxCYrzWaMfa3673jS5QElzJYeKn0Ir45MFIwWArttq2EVW38Vuwx2YA6qqTrpIiNmhOvKalnVW5f678lwIIzpHDP+1XfiK2MhIXTXst3nV3t/7z4wop4mRLAclS6nmnHMEZ8QrbvK4vVQLUgLDw8r2wRcYa8v8BcdqXdLbkrrHVoPUTn4XHZ0tgO+dfAR5KwkESI/l4B0gxNAlIbYs7edfapphZdbWsyUSbURxt+u70fXovXvgISf9EPT/FcUribInzf4V2PM++x7R72VRARilSXysEouNdeAqreFER/fuMKnXO+7+ywSMwMPLPk2q/J3/u1F+MXTVq4wWJD4UKHek+csAE3qk847/u/XTCJmtVzRLEjJMG5ShNxLI1HuH4Pvf5ebB4MQIeO2gZhiXP2fWNtWt1w+A47FL1GcdXx+Oyl3Mjhze+/762vwVODu9fsY5ySqa86TT96xH67RiVfDp+iTRQYKirwui69LsRACpB6LnKt4yNX3QlS0mawFZhWSuzy6EUqhufQI0I/Pzf2DatyYXtLwHrw/8AYf+J2ouDpew6tghsdSy4s0BnypSL6UmP8OitpDmD+IHSom/eeOCG/vXtUD2KOzzmCR7FFRXrqyYtyQ10djq4jUKO43bzKkWINm/NDVzfQf8NQdXTAR6eneyXJ6Zt+FzMtmbHVjfdrCfLNdXROSfhRFX/YZHVwF+HwtK33RK0DOwpFZGOnW1bceQ2BhgEQbv06IPK6mS9WGx6ymDJ6C/nldTBXLbc5LV/S5sKnnIi8stkd47e3olJSp3xs9ri/ZSFrT3JxVIU2mUL8PGjuOuHDknv8VTZlx1WFp1xqj0l3kgz40SzpWcvSyavHFnPs/+W5UN0N4xBZo7Wuf21u1gqAagypDzoUCnWakjHXQK2LsREFcN72FXHRihpcJLQOjWnZEuQDpH+1Dk5RpUjIZl3M0VQFb0XPwHlnK0pBaBn9eiKZU17gyElXKAz8=,iv:YqHHD0nHnil9s2rG7nmaTjCSvH1TtiiOEi6uqcZKdMM=,tag:/bRmXUnt25SJBJMu6IywTA==,type:str] +bind: + rndc-keys: + main: ENC[AES256_GCM,data:NemSD9HDjU9nj4D7zo5X+xKM2KqnjwKhef7UX8w4k1wWY0BKEa7DHniHynYTs3JIoJ5rP+sU+8xXSpiZlC6dM+BzdUESBNnEKyON6EObxz9opo4UgC6fnjuO1Cu6/iCAgqUdZGx8,iv:Rl5S0neTGSJ+OVobY/kAxOkW/7yEg5AVKwicJOdMFyk=,tag:3HCcyA75Bk5q2ZB2Jjozng==,type:str] + externaldns: ENC[AES256_GCM,data:rOc4mcKV13ljFdQKD6XLW5YHIa1vZ3iVq8dBBgiAmZ2b8Ygzx/j7dZLo0Fa+twbE55CcwEc218PsviiTbs5erO1lAC2g8NhRbXeN1Kblnk/duYscv5U8eM3vRAvBIMoX+1gByYQoaClu,iv:egLkYDIyLggpQQ78lypgzsKAO0H7bxWtzJ/hOeirLqY=,tag:lCMfoMcYCYkMmm0/6hgkkg==,type:str] + zones: + jahanson.tech: ENC[AES256_GCM,data:CNMyJcQhLkJZZ2pre9PobKvf1I1RW+7BcU8jFblnPzkAhQc2ljfFdkPWw1fet+Cza5Zeh+KdxWEFwgqGE0WgIi6mPk2EMFdDgapa9AQNXxHVXMoSmTyVxQJGpHX3ENI/xP6hMSM6KaxoHntPLmNu4QS1pPk+J/pz0LreDL1NfF7WEYbZPbWuKg8+/ZQrx7CcNOi+l8uudrNlyxHc+MjR90SpqluxPOvVhYGV640IZNkcsnoZJIgVgVGEDHDDWcpG0jVmu0N1lP9mhVySliKYHY1RgwB/icajwCJuvOfnk4vBIdjM2mdnA5Ql1pzwMAZ7uZQm2+rZt9/Rmpgd3wIGdGjM6OSHa2qg61WUpIeDtQQdzF+dvrbWlXrXbQNak/GMAoXs8CgivD/uF7xVsITxRMJGRsH+p6WOdr+GtSdo2rCFvb/smAqXKRf76BlJLgRz+G7IJi+08IwZnHC5kS/0A26G9ln5pgzTScPMzUYZ8oVJ0cwCCn9CntyhdwS39/+PYAA7r8sVzo5NVp2yWOL22EzB83ZPoVCuVxn1WGHTbo3ZncyzTxCS8xwEtNsqbxZ0NRe7A6+mZbNAnNGYIlBCL1C+HLmVC/SBTVcmu5rsNOw+3smg2XgJ7+Cpq5lAIabXj8ZS5l3y7JApalwVBirfK0tJmg06AFSmeDDa7040+ulloLQh7zMP0fpOSqotYtFLRAY5Fkx7YiziwewosJkNS4UyTQrJjz8FdNTRptRvIOWpegfd40nduE1Y1fqTAE4VEgGkdZ/3IAv42S4JfsaFxB9XAZVSGuada35FVZtO7V/0KfoBA0ZtBHxQDtnDBrCOsCGdY0+/PuHSkAlhvf3nCGHbasCnv7LY8cVpupDImZ5NSUvhdg3HDTX/0Zpz+0cPSy38GQ4N21s+GDd71U6nLEdtUsku2Uh75eCCqoK3cJDyqqHFdz2GQ7XUv2aOKIB3BGPzISVvRj+pFFRyuIkay1IqyKEdrAWGf5pRNwVOgtWPUcGJIT6vDNtw416DBjUGhHHBnUPQBrtzwbORQuNfZXzop8hgy1X7Og==,iv:B/9nPaUwMY/syfv2SyE9+MA1WHphpNkgr8KsgL0FCaQ=,tag:oGXXI89rxW0q1jVi6zRn6w==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age18kj3xhlvgjeg2awwku3r8d95w360uysu0w5ejghnp4kh8qmtge5qwa2vjp + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCOU45eFJjUHVzVFcwblVy + TC8zSk5XR2dXcnozNVpaaElJa1BteVpTaDN3ClN0L0JrOCtvRkE3RWU4eTh4dXdG + TUZBNnhKSlBRNUw4KzQwVER2QTBNWkUKLS0tIFgxY29mTnFyMlc0Yk9CVFg1aE9J + U0MzK2NXNzBYR3RHOE9qRjhVZzZpWmsKFz7SPBk//ZCcpLAVwhV6dlLR/8airRNy + tTznN6y9kksWFQg4NR+v/hOl9ZAKVhck9KiVyg7SHnwRj80+meEm3w== + -----END AGE ENCRYPTED FILE----- + - recipient: age1z3vjvkead2h934n3w4m5m7tg4tj5qlzagsq6ly84h3tcu7x4ldsqd3s5fg + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSUE1TVg1dGRDM0VNNWVl + S1ZaZjhEZ1BWdmhDelNWNWVyTVBWTTk1eXdrCmR0TEMwdE5LVERjblE5bythMXdZ + TlJCRk95WkVXMzZmaXBlNTF1YU4zR1kKLS0tIFVPOE9icktXZmdjcXAvZHV3ZUQ1 + YjZmTWUwRVdyUEdWaUppKzI1ZkV2NTAKQh3RAJo+yavr5RTPJcW77AvdCTX5KtW2 + TYmNPz1GCI5QN3yqAjcuuzn6IYMRxWR+Kbd6G0jO45PkO7NuEoSeTg== + -----END AGE ENCRYPTED FILE----- + - recipient: age1nuj9sk2k8ede06f8gk5twdlc593uuc7lll2dvuy20nxw9zn97u5swrcjpj + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqdFZlNkRSMmFLM3FVQVdC + QW4reVhuMm9JNjY1OHNFU29YTkNsUEo5VmkwCkFCWVFXdFZBcnNvRFVMbTJ1a1Iy + NnVBOW9vWm1nV2labEhQVWR1VGFvbG8KLS0tIC9OTGVlUEhrK1dQSi9icVZyRk9I + L3I3c1VHZTNUQUNjVjFYaXZXMHlsUTgKplXR6ZN5+Z25n5IlC7jGDHYLH/6g8dWI + MtkYR0606ZC+b4w8PmsHyf6SBfocb8kP9uZKhJAHCtgzn1IQakPN+A== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-05-28T21:41:30Z" + mac: ENC[AES256_GCM,data:wuPcfauGrw67p071Sjr+9TXrFRC/0DOsKbr+t5wM9j3rASN1KOLRCxkyVIkvST02Q62IrjbYJhs3A6Iwl+H0e1VD55ZgR5u5nMZjpxRu+sH9Vl3KZVgKbKgeA+tVvsaK3KNPLUp6rHPVb9f9c0aUAfOD8q4RHE57esdGA5pY0yI=,iv:mL4RMh5LgWO6O03uuoeo6VfCyH9IUQTpk2GXd7VWzqo=,tag:dVqRHlA4P4FIueWg6eVgzw==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.8.1 diff --git a/secrets.yaml b/secrets.yaml deleted file mode 100644 index cb14774..0000000 --- a/secrets.yaml +++ /dev/null @@ -1,36 +0,0 @@ -1password-credentials.json: ENC[AES256_GCM,data:lVFciFilowAdIpLHheFffOA631Qqerwat5pvj6Yn+b2kJvnNd7rNgMWPbp3cElY2pnKOXI6jDeLiWSw6VyNmXzxkJuQRN1rRRdP5F1kwoF2ZSMllxCTs+uXh+LVmV0WR5cO1U6IVLkBBFY35n46U4rmGeuEWQWI8XOoUo/MpfNVjITFOBTfFw9jTWLDuLnDM13BAbKx3km4RiOJMiTzKsoIOhHZg+QhuCB0y34V0K20Rw1cdj4JfWFyIWBe9/HSUYPbl3yPzxHGSgmV+rQlEJ6EvAkvN54/JYsiicoTPFses5dtRzgP5Sfe7QQhE/di11g6sSg8PJdndXv8jdVS7wnA8HLv+VyOcesIlau9JqXWZ9esQZQ4UrXof31R4j8zNinci/hErLx5yDY/cei0A0hFmYr0RmgY+J1JSgkqWw5h+Df3SK4QGfZ78lAUPlQ7iozITEZMU1JL7pVbmuVDDQCTNmjsogCUrEhxE4aWN8k57kBcuEHqpxaIA4XOxYZ6Pid6pbxOfS6IjzwMU6hiIu5hbQTauCnEUba5l54ZAbe5Y71XZNYT23QwbbbIdYByJ9+stSCRHhrJyzElyeIgT1KJFPsIIadrrC2HuS+1pEIOPGhvwkJNLJAJiSZiTtU45d14YCIfr9sfzPLnfyi7ke8ca/qG6WDwTSWVqfuK0HeSt30ZeOksHZ6hSMjGAWYLZE+LbbVJ3KAJzIemwiCry0uM6DnJOFMzsJbV+1Src9Iixmaz/piCZvuGCvPp9iHezTqvRzs7hps1I4ngWMPPKWLkho+yRrRxUsMS0mxgB0UDhJg2Iwn95HfGyApYMtBHBlOu6KVGc8/24f1UXqLOf1MsGkeKNsy09OkvGcGH8B58w2eHLfWjHlA595wnp9Jwiu1NirN0CjZtlNC1Q6Atuvf+42C+h5fWnZaq/ou7IQyYMcS/XqlcxRVXZr9diahowLHOq3WdBJgl2gCJQOpE+5VyrzwtTpaFeEvVx1hSe4ksFx4KvCUwPksb0/jpt+nV1T7ks9PJ0tfdE+0Rg3PT+cElAHecJL57YZnUp1dUtLhPhmE0aFJOHzqJUZ1VcANkR+4Eoeqv2PoDOOwB/oViacERDnJilTKmjPN7AJcsB6f+o+xI2eDOei4EWsTCkWu7zpJLk1mHu1ZeYAUmPiEFdzw2SsXbG/VJD3Rnu3mw+2drSWbA6YHNfw02UcLoVoDVBf6UI/mt3rA38ccsNM2JypJR5qRrluodOYjqNcThOJwm9h0zOPOl/B0JFMdPGRS66WCpwQYvVr5cJob0z+rTGW215KLeeq0xCVPhpMv1AvC4GTP8FcCX2+MCjT1MtRgGc1IScjzgSf85ER+/YHB/u+0yIqbc8QZlDLVQuNIY4hBSW4uw9wLgkcIToBy8vVSkPE153ruxKUK+VBcRH5sgC0r7oj0f6FL4sBYP7FnbBXOM=,iv:jW0DRHr9Q0DzsAq0V5sZlnpCI3hjfE377SzlU7Xew00=,tag:q/hfk04RQMDSUT6F62LTDw==,type:str] -bind: - rndc-keys: - main: ENC[AES256_GCM,data:kHDSEJ9bX8vugV923GXRIibrnx3vRjdvzv5VtDaam3GSI8CSjJd9aIT5K70sJXRRkh+en5dLJlUO/LHPjwIybwQgZpj5DgOcyE0ks3FEyJsgpxYRXrQtGtUb83c5CaY07f4vL9oy,iv:rENbmwqpsos6lBIo8B6gp8XE+dYA/eWWH+4dv6tK/Rc=,tag:Jgr12K+nIPzc2P+RtBRlRA==,type:str] - externaldns: ENC[AES256_GCM,data:spx/NK8VszoN7P9AkbZBxbjU0cV9ddo2G91tMe74b0L6DoID/ZSPef7J+NwDl6g+3M6WcQVyXHjhHU/j0NsTj284WnByHfJrKIHJJe1lJQld6aw+/Ax7IDP94kPVYfVEHR9SF0G7odPV,iv:fxqj2BF1F/WgYKb6rWYkggWh/0ngvYd8pN/d4Zw2YWM=,tag:FbG/96/10gmc132J+SXOMA==,type:str] - zones: - jahanson.tech: ENC[AES256_GCM,data:c3Dd7WxDZiRWPwwnOzZzhHCU70dSrDpJtIxkzGi0BBfiVoggO3UD3wDIUUnjkDpt4d/+7Y0W4fwLvEV57DRWJ4YE0fBYF2seHWj15gIRfAReGb+A4EEHJOJsRHMaVf8G7sciDAs4x09JWEKYdKAKOa4ML/N0VX+p/uQgq5O/fp2Hx8P3Qh/JDO6XwCZvl8vqJVzrq1QF1hkU9TBgebAG05KBlfONNhrdlPFy1sFlu/C3jChP6dgWCEV+rOkSQMHI3UCv+xSv91MIbjhst8ouX6ZoMaFMtb7M3WlWRCkhDuYePn/8M1Tk+DZSZAUIRcXCthi7Lsimr8hKz4PKmoDQ9Z8OHOCo7z7W7ksM6+QhvMflOfbS9qjIru0mnidqCJKyxTlGoFVvLLRZQOcAd6yDfq/+0nezxuG3F8fgvCikBDjJmf8y7PZ8egZvspNrXCGFbe/9Hrsz7qmWDlz6FJb37XfE8FNMY6NaAg2nKNIvxQoxYRjspPwPPfr2OZVVFDIvyN/OhjggUAWfy4bd9bPUCKZhGnWbpY7UmjleRKsVAqB3L6wZkhKOD0PSuE7bu5nXwwJqsrFyZii+4oEKMeSdoIbz9vDcN393z4MyGx4ddJH1jYwlPpPm96lvyc5CjrmmCLeZZZ9pUhkDf7pjjPFTuH0l9Xa25tpu/wIVyH1oYebL0i8HSz8Ar+ouGowEh6Wx14xg8MGFbLPVBrFpKTewc7AuTboNlbhFaykJetEUhcjiDqC8ejonXYov9sSq2AzAl7Blh4y40SRKbVQhYecyHxeKJID3ApDJtMRUp2W9c0JpRKQAdspB0eMC9xMzYKa5LJfKGD9k8nGuaDAcFRBFzNURC57R6aLvMIXm95u4bdaz/wGswxbVciYCRPsHr3o0N2ZqBnfHuPsoTyl6YZWREtyjTMdW5ANKZUo1LDSZdq76Al0HgelgZVVH5BTGMkFdIiL2rZhX9K/QjQeq1fU4kxfRicXjT1mTgOdukWg2zybTfuHUkQBW3ueIprNcMD+sqVdNi9wn7z0JwWG6Zyd4qIeZDNbmeuF+SA==,iv:m4/6Nm1hkHOulULTupYwTJtKLAloySxrXwWHu7CN1cM=,tag:uKy851IaKDSkQxzXBEiniQ==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age18kj3xhlvgjeg2awwku3r8d95w360uysu0w5ejghnp4kh8qmtge5qwa2vjp - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNzRsKytjQ25NN2xsU0hI - MWZuRTZjRWNibnhnWkJsYklScmt5UFl2T2pBCnU4L2ZWVnRMclJaN2QyWHQwMVF2 - Z1hTZUEwMXAwamxRWXgyQ0VQMUY3UVkKLS0tIHVVUXljMzh1MEExTURPSkFoV09u - MFB0VDhVUmxCc2JBaTlLV1BVTGJhVkEK2DtRNL6KBkBS23ywub66hpUcRn/Jea6k - +oXXU8kcQ30WqSupI6kUUK0Dd+at0vrV1tV/IkvfW0Qs5OzjgtPo5w== - -----END AGE ENCRYPTED FILE----- - - recipient: age1z3vjvkead2h934n3w4m5m7tg4tj5qlzagsq6ly84h3tcu7x4ldsqd3s5fg - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoT3RINjA2SUVsT21EWFpm - a2V2YytIMktRbSsrNkhlOGI4c2dRS2ZpakFZCmFTNGs5aXA4SW1PQnhSSHlQM0hL - cFZvZzlXdGtXbjg2WDNDYytqQkpwYmsKLS0tIFAyUEkrVXJEYkhSNktQR2pQOWFz - SHZmN3JDL1ExVHZ5K2txM2h6MzRKWE0KbS3kO9teIcRDY4hnb54LgWzcRQu7aGGf - TjnTJzqKqmRRMLOs5be6wbrxBiRe9p5nCN/WJ9nqhr7rfNNMUiZePw== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-04-30T23:29:09Z" - mac: ENC[AES256_GCM,data:x4ElnDRzdwcSf1qNZ6MNPzqDJwtAvQyc/ugrfxpdGyS/PxfhZPcTKshdl1xS6dhAfARVa2Wo343vKJ5fOA/9XNPqa4JL2i9bv1qmd23hgPkz4fFtZ1y5eWUKf2/yaRJrssi1CBQqZWMPPLgggokE80cGOMvD/F5KtcdIhnZjBQI=,iv:VrOtAFB8+Jm7H0JBlo6FsWKXmBZSOkGKuAfIZPbfDy4=,tag:qYJenhFym4iCeXLJqATu0Q==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.8.1