From d711859f23f164ffacf340c58897ad0f803ac6de Mon Sep 17 00:00:00 2001 From: CDaut Date: Tue, 18 Nov 2025 21:24:30 +0100 Subject: [PATCH] more hosts in nginx --- .sops.yaml | 21 +-- configs/containers/cube/nginx_container.nix | 24 ++++ .../forgejo_container.nix | 0 .../containers/netcup_pve/nginx_container.nix | 2 +- configs/services/nginx_cube.nix | 29 ++++ .../services/{nginx.nix => nginx_netcup.nix} | 7 + flake.nix | 4 +- secrets/all/secrets.yaml | 129 ++++++++++-------- 8 files changed, 144 insertions(+), 72 deletions(-) create mode 100644 configs/containers/cube/nginx_container.nix rename configs/containers/{cube => netcup_pve}/forgejo_container.nix (100%) create mode 100644 configs/services/nginx_cube.nix rename configs/services/{nginx.nix => nginx_netcup.nix} (88%) diff --git a/.sops.yaml b/.sops.yaml index 4dd0e8b..0ec6fcd 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -3,21 +3,22 @@ keys: - &clara 58EF8D71114EF548DEE3320DE6F04916B6EEBD83 # Servers - - &wireguard age12d8mxwnt0a7gl4uu0uwdqaxuqdf5j7zm50qy5qrhj0kd4ny7luaqv7rj4e - - &mcserver age1jlt47gkctq7vfrykqlyg9um5mypy872pvtfql7kkpvhnemlex4mq89a3a8 - - &zammad age14ukkn4plvnjacvjux929qwpeynxk4cfxw285vlwddqakm43kfyysfdg02c - - &forgejo age1vd33efsea2509hm0dwmhkuu7mm2kgw6tsss6lmzsqfg7gat06qyqys3qfh - - &mastodon age19efecaur72d92g452zpe4uxjtwev2ktjtaezascxg9l2p8544s8s05d93r - - &paperless age1zj3tzzcpyq5s66phlrf2g203am7vl6vxg2jlpr8vy6u385xljapqt0d2fr - - &vikunja age1h7yq7n8gcw35apr7jn8r66dwss4hfcdv0sf4ankfxquyavlrqukqhr0lrc - - &nginx age1ypq3n3e7gnwqddq5dgkdsfm0wqagrm5pl5tkunzp44lcezsllumqsjz0hz - - &wg-server age15ydstgk0fmmgy2ugmqufyqhqsqypd2mvy89enzwczz0m8ar2kvzqlcdsm8 + - &wireguard age12d8mxwnt0a7gl4uu0uwdqaxuqdf5j7zm50qy5qrhj0kd4ny7luaqv7rj4e + - &mcserver age1jlt47gkctq7vfrykqlyg9um5mypy872pvtfql7kkpvhnemlex4mq89a3a8 + - &zammad age14ukkn4plvnjacvjux929qwpeynxk4cfxw285vlwddqakm43kfyysfdg02c + - &forgejo age1vd33efsea2509hm0dwmhkuu7mm2kgw6tsss6lmzsqfg7gat06qyqys3qfh + - &mastodon age19efecaur72d92g452zpe4uxjtwev2ktjtaezascxg9l2p8544s8s05d93r + - &paperless age1zj3tzzcpyq5s66phlrf2g203am7vl6vxg2jlpr8vy6u385xljapqt0d2fr + - &vikunja age1h7yq7n8gcw35apr7jn8r66dwss4hfcdv0sf4ankfxquyavlrqukqhr0lrc + - &nginx-netcup age1ypq3n3e7gnwqddq5dgkdsfm0wqagrm5pl5tkunzp44lcezsllumqsjz0hz + - &wg-server age15ydstgk0fmmgy2ugmqufyqhqsqypd2mvy89enzwczz0m8ar2kvzqlcdsm8 + - &nginx-cube age1nh7nnp3rznfqkzudn7dzkkkxuz0ywjw8hacnftvgh60egtw79ejqam4n4p creation_rules: - path_regex: secrets\/all\/* key_groups: - pgp: [*clara] - age: [*wireguard, *mcserver, *zammad, *forgejo, *mastodon, *paperless, *vikunja, *nginx, *wg-server] + age: [*wireguard, *mcserver, *zammad, *forgejo, *mastodon, *paperless, *vikunja, *nginx-netcup, *wg-server, *nginx-cube] - path_regex: secrets\/wireguard\/cube.yaml key_groups: - pgp: [*clara] diff --git a/configs/containers/cube/nginx_container.nix b/configs/containers/cube/nginx_container.nix new file mode 100644 index 0000000..9227068 --- /dev/null +++ b/configs/containers/cube/nginx_container.nix @@ -0,0 +1,24 @@ +{ lib, pkgs, config, ... }: { + + deployment = { + targetHost = "10.10.0.1"; + targetPort = 22; + targetUser = "root"; + tags = [ "cube" ]; + }; + networking = { + hostName = "nginx"; + interfaces.eth0 = { + ipAddress = "10.10.0.1"; + prefixLength = 16; + }; + defaultGateway = { + address = "10.10.0.254"; + interface = "eth0"; + }; + }; + imports = [ + ../../container_config.nix + ../../services/nginx_cube.nix + ]; +} diff --git a/configs/containers/cube/forgejo_container.nix b/configs/containers/netcup_pve/forgejo_container.nix similarity index 100% rename from configs/containers/cube/forgejo_container.nix rename to configs/containers/netcup_pve/forgejo_container.nix diff --git a/configs/containers/netcup_pve/nginx_container.nix b/configs/containers/netcup_pve/nginx_container.nix index 3fb2262..8d660c2 100644 --- a/configs/containers/netcup_pve/nginx_container.nix +++ b/configs/containers/netcup_pve/nginx_container.nix @@ -19,6 +19,6 @@ }; imports = [ ../../container_config.nix - ../../services/nginx.nix + ../../services/nginx_netcup.nix ]; } diff --git a/configs/services/nginx_cube.nix b/configs/services/nginx_cube.nix new file mode 100644 index 0000000..505eb16 --- /dev/null +++ b/configs/services/nginx_cube.nix @@ -0,0 +1,29 @@ +{ lib, pkgs, config, ... }: +{ + services.nginx = { + enable = true; + recommendedProxySettings = true; + + virtualHosts = { + "nas.cdaut.de" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://10.10.0.2"; + extraConfig = " + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection \"upgrade\"; + "; + }; + }; + }; + }; + + security.acme = { + acceptTerms = true; + defaults.email = "acme@cdaut.de"; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 ]; +} diff --git a/configs/services/nginx.nix b/configs/services/nginx_netcup.nix similarity index 88% rename from configs/services/nginx.nix rename to configs/services/nginx_netcup.nix index c70da99..156fd31 100644 --- a/configs/services/nginx.nix +++ b/configs/services/nginx_netcup.nix @@ -46,6 +46,13 @@ proxyPass = "http://10.0.0.6:3000"; }; }; + "tasks.flux-ka.de" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://10.0.0.6:3000"; + }; + }; }; }; diff --git a/flake.nix b/flake.nix index 906e772..0b12448 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,9 @@ vikunja = import ./configs/containers/netcup_pve/vikunja_container.nix; - nginx = import ./configs/containers/netcup_pve/nginx_container.nix; + nginx-netcup = import ./configs/containers/netcup_pve/nginx_container.nix; + + nginx-cube = import ./configs/containers/cube/nginx_container.nix; }; }; } diff --git a/secrets/all/secrets.yaml b/secrets/all/secrets.yaml index 4a45d15..00aff8b 100644 --- a/secrets/all/secrets.yaml +++ b/secrets/all/secrets.yaml @@ -4,105 +4,114 @@ sops: - recipient: age12d8mxwnt0a7gl4uu0uwdqaxuqdf5j7zm50qy5qrhj0kd4ny7luaqv7rj4e enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLZ1huS29WQldXeTI0YjhS - NHB0TStqZ2Q0UTZRdnIyR0U5N1dld3VDRVN3CmxsMGxwY2tKWEVGRkVPdk9MWHdj - cHc1UG1kbUZHQ2VGU2xqejI1WEEzVzQKLS0tIFdxdm9wdit0UGVQSkxmQUxlTnNV - T2hwdHdvZXVDTzNZRGt3YWlqUCtOcEEK9uRwxAGZxS3dEUtmwOf8buol0K3sY14X - g64a7jWbtWsgltDbchs5WabpjQOPnvd5HP9fCc7rivtMQ1dzg2sJ6Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkbzViclZjWlBBT1dlcnph + RVVLTG5tWHloa0ZEbmZNbUZBTCt2VWsvWGw4CitWSVlERDd5YnFpak1meDJkN01K + V25BQ2Q2elMrMVRpQ1pOMDZTSTJ4dDQKLS0tIDVvY0lscDN0T2xBMjdMUFFidm1j + L2F2VC8zb0dSdkN0QVlnTUpyTkdJMFUKL6Gj+Yk/lleYB2iM1ph/OOuxVdwZCSVc + yE/yN0+5A1nsMcyNDv5/G+BPoeXCr/vzYl320llpAkinhcAl8HKFCQ== -----END AGE ENCRYPTED FILE----- - recipient: age1jlt47gkctq7vfrykqlyg9um5mypy872pvtfql7kkpvhnemlex4mq89a3a8 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMaXVKMVNBUEl4RTVXanE5 - QzlFNDdiM3VrOHhTTWR2dTFDSEc5ZGxOMTJnCng2K3dZb1hrODJqTEJyTXZ3NW9z - U3d2TXpWUWM0bTZYZmdyQ1ZCYjFnZEEKLS0tIFFpSUR4alR0QnJkV2haR1BUQW9q - d3U4MXhBOEo3OUs5RlhFQlJrMG5KT1kKm20+DM0YUnfpz/b4vnQk8URUBGb8IE/A - yuADRQnLaX+bZbn3NWfthXtNJk44odwcnVBXRXg95wSpPy4P8/ZUig== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGYkJ4TW5vRUNobDZtQTd2 + a0V0SzF4TktjWklMUDIyZ2REWWNVUnlqSWtvCkYwVjF3NDJYaFFwSzVrNUNuYmxD + Wk9XVk1EdTFsN25XT2lqM0YzcFJpSGsKLS0tIHVZKzJvdUF4MzlENTFvek5admlK + Q3NCVDlGOHh3Ylp6N25rZVByUEhEUHMKRxGmaE5lLhHlg++yKRG/TpoMhc5+7h5g + uv0zN6q9g1ULgMDdbC5v5g4n6ssIHHb50cFkjEm7b7ee7PWiPJ3/xw== -----END AGE ENCRYPTED FILE----- - recipient: age14ukkn4plvnjacvjux929qwpeynxk4cfxw285vlwddqakm43kfyysfdg02c enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxNytGbUZ3VGp3NXM3N09l - ZnQ3SWppUXd1bkMrdzVlckRuUkdEalgra3hjCkZtbTVaaUZhTU44RXYzYldhNmtZ - VWx2Yno1NWwzSTR4Y29tR0twTGJvZ2MKLS0tIGpRZGZSbkhDY0x4bjNQZmhUd0M1 - WW9Uclh5YVZPaEdKdG8wSFlIU3Fnc0kKuK47ES0P0haKTIRwHzop57DGntpbsOZu - eNBd19cpMgerEE0Xfj7Z6iey9IkY3RtszMZafWamZAnJQXpF/KA3ig== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzcDlValVTL1czVG4vaXQ0 + NWUzR2lGTk84NnFrd051K2pwZ25lekdBdXd3CmpWWnVlZWswelNMUlVlazg1Wkxw + VlhsNUVrckxzajhKQStzUGdBTG5Ea0UKLS0tIHRGc2FMV2VUeVFJWHdJUEJyYXUr + bGF6eDN0Y0F5cjdPSTJqdDl1M2lHTHcK6QwAWnajE5yBLd+Fp095TCVEurBaGAV8 + hWvLup7dztIxXVKCK7epHvKEamaM/dSahnY6Muvy9GK0Rkf2YDpE/Q== -----END AGE ENCRYPTED FILE----- - recipient: age1vd33efsea2509hm0dwmhkuu7mm2kgw6tsss6lmzsqfg7gat06qyqys3qfh enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDQm5zQ2RmTWRzSFI4OWJw - QU54SmFiZzlSRllvd2RTOXIwWnRyU1FPZnpRClJNMk1CRExhZk5VcHlBeWhDTmNp - UjVmbytNTlVVVW1Vc0VTSVZZYTRodmsKLS0tIFF5TktPNGI0ZHlMdTVrYTVoT1pi - d0pPV0oyYTRNZlRpZFBZSjVQMkxEemcK/N/a2myjrrv8L7CpxDrBhsiSU+hUMs/h - +DKVgFQX8vRuwsAJw+Y8X5T+I8fIj6rvPn5nb6OSJ/BDdDTHwYXE8Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrajRUT1lteFg1cWlvVlhw + RnQzcjM1S045YWJ5L0FiUnMwM0ZWVzRkRkhrCnVLRzVhSE9seXMzUVRFMGY3VlJn + UGpFZmtVenZNbWVxNWlFbFNvMURHWG8KLS0tIEthRGc2dHRGbDNjcDVMY2ZEK29q + M1FHemlxcXV0VTEyZTlYeUF3dmlBZWMKzcuj0FXT2s+L7LVYcwigSMFb4jtOEhSz + OZYZVl3NzyfoU2Y0PeyIiv5g2CI+EYPUrTPf/HJLeYLQftW9FBUhGA== -----END AGE ENCRYPTED FILE----- - recipient: age19efecaur72d92g452zpe4uxjtwev2ktjtaezascxg9l2p8544s8s05d93r enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoaXRCYWZ6WkM1NEdjb0N1 - UFNJYXRPSGpXbWh5TmtQSHJZWlBKMHhEdlFNCkVjaWtSMFlqZFdxbVJTZm90V0k2 - RVBhNlJqT29GcW9NdDlOWkxuRzdmNmcKLS0tIDVIb25FVlVqRzdQMGhJcFhkckVt - eWJNem1ubmUrbm9iSktGd2IvRmw2Y2cKfxGQ/dQsdNOkUZk+XPmdcdy3bWy3LU3G - vwo5yU9WKYmRy4Ag/pPPlhG4g+/x1nGVxTL2n5yTx7r9yIGMLeDGRw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQQWxyUG0zNlFEcmNhRzhE + cVZ2ODBBWmZNYk0vWS9qSmpvSkUyQmcyZ3dBCjBXTWxEdk9RbWdHQ2thOVZtamVh + NXIwdlRmZE9hWXpvUlZWRFgwRGFqZncKLS0tIDNSQmlmSzJmOGl1aHhnQ3o0VmR2 + Z2tpUDUxWWlmczdiVmUyUTBaUnlIZncKIVv0fUmv1w0OjI4Fg7Xj4XSeXMAJurJN + Hs9Ydo8FLd6jKJbj75oGqhwFIM5t+9GkH2dvk92mhDmW3Yxx4Y08KA== -----END AGE ENCRYPTED FILE----- - recipient: age1zj3tzzcpyq5s66phlrf2g203am7vl6vxg2jlpr8vy6u385xljapqt0d2fr enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnTnEwWWw5amg5TXdhNTZF - YnBqTDIyWDdGd3Z3Y0wxdUFUdDVrT3RVaWw4CjBqSEgrd0ZKZ0libnFTUTZleVpo - cjlHL1BvenI1NVlGY0dCSTNiRERvZlEKLS0tIEhGWnlRcXFxUWRHQlpHUEp0QmZY - WHlsblZ3VE9UbSt1KytsWTQ4MFRpUTQKMw5z74qSTlq6EQCXbv630mr4M0jBPBF9 - b7K1jFF5VGXB3ESgjVpaDRW9ug9rfTIAyxhAzFjxHHl3M2/hKkUByA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjM2xJMEk5R0ZhZjAvQ3Zm + b0FyY2xXWnVZa3k0ZWRUVHphejV6d0lBWnpBCjNVbmY0bWhJV1RXSm8zUzY0TFo0 + a3k0dGFxSGhRMzYzekM0Nk9yK3lIVWMKLS0tIGY2TEQ5S0J0UnI4RjZ3a3JNSWc1 + eEVOSTc2YkpSWGtnN0FaYVZRTnZoR3cKf6LLS80KXUr9EzPkPrZRIUgt4JDmDLzT + kflBMSaUsg1QJ3dSw3jAIJfVaOXm5Mo2fyBZmp9CtmqJ1VELXB/WSw== -----END AGE ENCRYPTED FILE----- - recipient: age1h7yq7n8gcw35apr7jn8r66dwss4hfcdv0sf4ankfxquyavlrqukqhr0lrc enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLbllldG5DKyt3MlNjVWNu - dkpJTGppVGlZSDRaSGgvTkR1dVFzVWRwN1JrCis1ejJkek4vaW81OVFJb0lEWk1V - ZTlMNzJ0SEc5Um8wQlJuakhQRjMzc2sKLS0tIGZOOGpUcURXTXE2YzhvL0ZFZXdQ - Ujc2cnV1K1YrMlU4dytGRDJmK3VDWlEKWZ3a9WShCmviAgbzXOCqLi9LREMMPwSz - 8F3dTMaIxgB9ALcDoMng80eFpabU25eBp1zscQ8k4oudSe28mo0Dnw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVWUxXck9ENWladlpoZlgx + TEFObE5QVGlVKzltaXcwY1hicVhOYnlPSmkwCnhzVHRTdmo2YnY0NEI1dHZhR0hS + VW9LYzUzbUZZMEpsRHIwYnNXeFRBcGsKLS0tIDhaUzVZQTRLS1pJaWhpSVhGaXZL + S2w4UnFwUFJjUlBUYzR3MjFBVFF0cjgKCmNXjm0yJdZGO7kKPQGv2qaYEZQkbF9a + Jijh75gl0ypHXoIkDDFzqtf9/ss6eUmTOTEs4rKeYkKl7Ze7TNiatA== -----END AGE ENCRYPTED FILE----- - recipient: age1ypq3n3e7gnwqddq5dgkdsfm0wqagrm5pl5tkunzp44lcezsllumqsjz0hz enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzL0gyRzZFY0sxRVpLa0t1 - d0NIR3R5b0d6NUdaL00vZkFFdjBrck5FVVRRCk4waE8ydWkreHZNcS80dGtqVGVh - MjdWZmxOemtRQWlKdDFmVkpHODZqY0kKLS0tIGh2U1FJNW4rbWx0MGRPMkUzSFRn - TEJBaDd4RG91SlZkalo1eU1EQVROR0UKowKLTT/WyFzNnD0rdgCWVEjuZDYIoz4J - 5Il2kJy0OOyYD0ez5Kf0k7wouhAGSlib6jn4OGlrcmSOv6+5JTMK1w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNaS9aTWNqYU1qMlZkdW5G + d3h1b0hZSDkycnhtRDlYTkF6SUxtVitWM0NzCm5uVzJua0dheE80QW5sN1FqUlJG + UnV0WEh6SzE3UjhaeGpUY0prSnhOZEUKLS0tIHZhNWx3V0tFNzJrSVJBaUdoczN0 + bnJLODQ2NVd4VDkyNHRHbUNpam1mRVkKc/bMfj6h/KerTkr+Fgyv1y5mwPm/jJ/z + jrtIy7Kz+JtlE3p/TkkazHBie9A/RxBUEPTsa/SS2vT+RViB2AhBbA== -----END AGE ENCRYPTED FILE----- - recipient: age15ydstgk0fmmgy2ugmqufyqhqsqypd2mvy89enzwczz0m8ar2kvzqlcdsm8 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1Q21kMkhnRWZoT1RsdnFl - cHlxdW9EL3dNU0tscUlKdng3d0p2VklVU0c0CjJDM2xScG9TdHhhbWJoUm5ya2lO - TXZFRlZlc3czR3NRQ2VOQ2xFaWxiOTQKLS0tIGdtQkt3b0pnMkpuRTQ4YTRRRDhC - a3BFa3QyU3RJMVBmRHRDVmJUVXZMZEkKm2ARYzkaf4U6StNqfGUIoGJr23gYYc3H - PoSmPPAS9EEmdxPfJ+MwK0Lb7gwCJ0nMwf6CBxzp4dRVhxGbW3+vjg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtM1FqZG9WL1EyNDVZWlJw + djBFbUQwNEkyTDU0Z2psY2FLdTVKRU82VldZCkR4WkJMQjJWU3VsZ1NEL1RGQk5V + VU84M081VVFqOXc0bGQwdThEcWthNjQKLS0tIHVFUU5YeHFBOXA0dGR0aXhCQmFa + VSthN3l3cm5ISC9rR0tLMDBmRHkyWkUKhflWL3W72KLrglJCCykaTcrHSyMeGS+s + EMDQck7nY0n5JMEybq1F14EFTv7jGDseLlss3f18Jeseov47JIao8w== + -----END AGE ENCRYPTED FILE----- + - recipient: age1nh7nnp3rznfqkzudn7dzkkkxuz0ywjw8hacnftvgh60egtw79ejqam4n4p + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzNDhwenphZGUxK3lSbEYv + d3lvN29VSzNVcFpZN2NHU3VUdnhsWjltQkVBCitHL3RzdmswdWltUU9LNGE4Zy9N + dHBpYkV5Z2FTaE4zRThXS1RMbFdiRWsKLS0tIE9pdjI1YWw2b2hoSzF0QUtmbmJN + cE9PZXdBcTY3WVZlSW55dE1hcFp4eXcKXMAWZ2lfYhsJrKSaWeRIByeop6A92vxd + f4lKX5/y5lu9EIH3j16laswfrOYLGpvopbrj2rOp4vWQ0axWVg04Jw== -----END AGE ENCRYPTED FILE----- lastmodified: "2025-08-08T15:38:19Z" mac: ENC[AES256_GCM,data:IoqrJyCNad4/OFH6y24kYMwnkF3OWfsw77POg00btvw7FoPoaSJ76RySMs6hgWs202bDYSDi44OvbgCVeNPkhe9eyM0gwF0Gf0cE3wirc+qj2qfL9/lMOTZm02WymMglJf6xTcPo3BH00XryR7ptid9+WrB0S2aBVNlcXSBwpzY=,iv:aLI2SyUzWqp/4XFPhogq2vq/u47bs6Gmgc/PRMe+GmM=,tag:jVnW7EkqDRfQluGTiw0olA==,type:str] pgp: - - created_at: "2025-10-31T20:08:22Z" + - created_at: "2025-11-18T15:06:30Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAzwtBoBqH5ZOARAAuXkdBPigYqSNhd6iO8RNlvz/x0DLIi4DXKBb9cIaYnWU - plHRxDTAQIWYi8TRPWc0tsFVn6h2U0TuC/wBYJQJNtCJVfD6YtJAEoiWG84EwnJ+ - CNeCTfgd8Opni93X2buRtGiibwVPJSeBsTFj9cPcdOwoFSHVP2HnIRF/V8RTzSv6 - PAbbDdl31CoaxMvAxB4RK4zcACoRQjBtg3JnU/JKaisiVpG9hrdP/XxffDcgxlCF - oXtNEr/fB/HpE6Rs0NEMJWfd/jBnklywo6tV9PUlmVuALMOlVD7VUP2HL55G0JEu - 1X5wcPKHAfQ9MHkJPvc8IhbP582xqza9RZNJV9qFVuteQVVX4eTgFdH1TalpGTwa - pvWAZEal0VPIF00Bzmvu9LCeG5NXcvKouAy/+qViXtcMO4fcluzZN1mVVbbh56DH - Av/21Xnc+pkBKl3O7jBwYozg2PJuNjetRiOcJTaHp5O/LkZCHJrKj1RGaZVmJPyU - pw3SZe8HvP8MnsgkcPxhBglqiiPDMaHCsUFFwEbas1jjZTkI0AtLTIuNNs6us/j+ - 5yKe23TJDPUev/mdr5ziwjVy56V50oElwIxsETybgOSYU1ErK1Hee7bdRvOstaVe - s8tT9X1MI3woYJ6j77pEp0CpLZy6n0q2Qv0on0ZLXsAt3QZhGGguipZh9VXvgT7S - XgH0rGqUFwcL3MG10IL1znHCyjBx415dDVmx6w8TYv82FYsY/Y39BNk50bW1gz4l - VfASFvk2QpcU3jzqPzgNeVyBCUZBuQYzsr327LNDM0uobZjrKZICBWLUt5O7sRE= - =+lQp + hQIMAzwtBoBqH5ZOARAAiUhe3cBmpiJrkNinVIqUw+52Q1GC20LmQVfounrLxegY + 5hEWzKUKs3qBF54oVnLITUJfgYAxYMW9Zn0nlASSPc5QHUGNv013KgOaPQjwaoXS + 8Z3wYMh3qFObbJVmiPI7FtoGfBh6WXfPgPwTjzMfsOJg1zr4WWJzuBJbhMtiI3zJ + rrJiK0IYzQkoha34oT1VJaHBH+xQha2JWVIZ4pBKZLkTJFQYKckAxeKmlEn8nQTT + SJwtBKKlc80fZCe/s7hwKPm0GTTV+wwv1jvCsaf/GIFqKoMOBmqEAz8GcETQNaFC + sNkDWWFlxlsioG6Zi+Ok7tvFhyxEoF4sABuYx8LoBbL12UgZJRbhM7HIakxnORBu + a3QomZKAxfZ4zMRKaOYjUVGFdoJWgxb3wqa5WiHM5GeOQJzRzdpPwdTJPrxQSsx4 + /p5+MOFoia9GdBbwcdkVEopX+m5TvY+i3Gs/GnHSWZaXQBjhSW/O5UE29dHas3ai + tY+1FVnUpVyCnqF/BXRhgXydpVzZEAHoYF/hz2ah7AI2CnmeQ3ypO1DsfoADkgm+ + iinHFmU+ZpZJndpPsjoarJHBySoK4N34JsiJcv4DGv+4XbtEySb/r7rgZzrRNuj5 + tMtmQs82Ii+836NDImvJs8vg2H40bPLsVMtJ7xAYSGLXDDueXHPmCFOuJZ0KsR/S + XgFe91sDNTG/6j0PEilYTMyp04qMaxwT4teouMRlLr/rACJj5jpt5BVO4K8nDaYf + uq0wX2mXYJqoWZU1DBYO0vRRTpcpenLMV5M+ZrUy2LQINmLCUAuFB73cGUlQNac= + =8FwO -----END PGP MESSAGE----- fp: 58EF8D71114EF548DEE3320DE6F04916B6EEBD83 unencrypted_suffix: _unencrypted