commit d454d39b59b5184578e92b9d18a643fe2bdd54a2
parent 699c76d0c7e3e4ce21c080d0c4f00eaa6db8d4ed
Author: Katja (zaphyra) <git@ctu.cx>
Date: Mon, 9 Jun 2025 18:52:16 +0200
parent 699c76d0c7e3e4ce21c080d0c4f00eaa6db8d4ed
Author: Katja (zaphyra) <git@ctu.cx>
Date: Mon, 9 Jun 2025 18:52:16 +0200
config/nixos/modules/presets/zaphyra/syncthing: refactor config
3 files changed, 93 insertions(+), 71 deletions(-)
M
|
148
++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
diff --git a/config/nixos/modules/presets/zaphyra/syncthing.nix b/config/nixos/modules/presets/zaphyra/syncthing.nix @@ -1,5 +1,6 @@ { - pov, + inputs, + povSelf, pkgs, lib, config, @@ -8,40 +9,55 @@ }: let inherit (lib) types; - cfg = lib.getAttrFromPath pov config; + cfg = lib.getAttrFromPath povSelf config; in { - options.enable = { - type = types.bool; - default = false; + options = { + enable = { + type = types.bool; + default = false; + }; + user = { + type = types.str; + default = "zaphyra"; + }; + group = { + type = types.str; + default = "users"; + }; + dataDir = { + type = types.str; + default = "/home/zaphyra"; + }; + configDir = { + type = types.str; + default = "/home/zaphyra/.config/syncthing"; + }; + + enabledShares = { + type = with types; listOf str; + default = [ + "zaphyra-audiobooks" + "zaphyra-documents" + "zaphyra-pictures" + "zaphyra-videos" + "zaphyra-db-richtlinien" + ]; + }; }; - config = lib.mkIf (cfg.enable && cfg.syncthing.enable) ( + config = lib.mkIf cfg.enable ( let syncthingDevices = { #mobile devices - blechkasten.id = "HGPWBVY-RD4JKBQ-X3V53IB-KRVDXEQ-4YLN5F2-WPPSMYR-SOXGTY6-IDFOAAC"; - coladose.id = "BNCAOEB-CYTYIBA-ZKFJKRB-DX4C3MT-SDH7IWQ-5EI35PJ-YUIJSYH-COCGUAW"; - seifenkiste.id = "6YZT5PZ-EKXZBMV-C2MJL75-OCQ36LC-L3QIRPW-VJ5EU3C-2ICZDDO-IZ7IGAO"; - + huntii.id = "6YZT5PZ-EKXZBMV-C2MJL75-OCQ36LC-L3QIRPW-VJ5EU3C-2ICZDDO-IZ7IGAO"; iphone.id = "3SM3LJV-XMHYW2D-MU5WQ3T-KGYUJOI-LXOL6YI-BSVZ2B5-QJ6GVXN-MPWMKQ7"; #servers - hector.name = "hector.infra.katja.wtf"; - hector.id = "MVGBPSX-YSZNBDO-E7HZFGJ-WULYWQ5-XDHVMJO-BKA4R37-GPPRLLS-Z5DQMQJ"; - wanderduene.name = "wanderduene.infra.katja.wtf"; - wanderduene.id = "WEFYARN-GY3WZXB-TIXBI56-ZZ77AHS-GFH5SH2-Q35NTBI-VPT3OEM-EQNAMQH"; - briefkasten.name = "briefkasten.infra.katja.wtf"; - briefkasten.id = "QI2EPUE-4VMZ3XV-LXX3GXP-RHCWTRY-AACLSGL-YG7MIYV-THST74N-KJGIBQ6"; - }; - - enabledShares = { - briefkasten = [ - "ctucx-music-orig" - "ctucx-media" - ]; + polaris.name = "polaris.home.infra.zaphyra.eu"; + polaris.id = "QI2EPUE-4VMZ3XV-LXX3GXP-RHCWTRY-AACLSGL-YG7MIYV-THST74N-KJGIBQ6"; }; defaultVersioning = { @@ -58,21 +74,23 @@ in shareDeviceNames = share: ( - enabledShares + syncthingDevices |> lib.filterAttrs isCurrentHost - |> lib.filterAttrs (key: value: builtins.elem share value) + |> lib.filterAttrs ( + name: value: + let + syncthingCfg = inputs.self.zaphyraHosts."${name}".config.modules.presets.zaphyra.syncthing; + in + ( + if (inputs.self.zaphyraHosts ? name) then + if (syncthingCfg.enable) then lib.elem share syncthingCfg.enabledShares else false + else + false + ) + ) |> builtins.attrNames ); - isShareEnabled = - share: - ( - if builtins.hasAttr config.networking.hostName enabledShares then - (if builtins.elem share enabledShares.${config.networking.hostName} then true else false) - else - false - ); - devices = lib.filterAttrs isCurrentHost syncthingDevices; folders = @@ -81,65 +99,65 @@ in in { - "${dataDir}/Audiobooks" = { - enable = lib.mkDefault true; - id = "ctucx-audiobooks"; + "${dataDir}/Audiobooks" = rec { + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-audiobooks"; label = "Audiobooks"; devices = deviceNames; versioning = lib.mkDefault defaultVersioning; }; - "${dataDir}/Documents" = { - enable = lib.mkDefault true; - id = "ctucx-documents"; + "${dataDir}/Documents" = rec { + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-documents"; label = "Documents"; devices = deviceNames; versioning = lib.mkDefault defaultVersioning; }; - "${dataDir}/Music" = { - enable = lib.mkDefault true; - id = "ctucx-music"; + "${dataDir}/Music" = rec { + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-music"; label = "Music"; devices = deviceNames; versioning = lib.mkDefault defaultVersioning; }; - "${dataDir}/Pictures" = { - enable = lib.mkDefault true; - id = "ctucx-pictures"; + "${dataDir}/Pictures" = rec { + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-pictures"; label = "Pictures"; devices = deviceNames; versioning = lib.mkDefault defaultVersioning; }; - "${dataDir}/Videos" = { - enable = lib.mkDefault true; - id = "ctucx-videos"; + "${dataDir}/Videos" = rec { + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-videos"; label = "Videos"; devices = deviceNames; versioning = lib.mkDefault defaultVersioning; }; - "${dataDir}/Bahn-Richtlinien" = { - enable = lib.mkDefault true; - id = "Bahn-Richtlinien"; + "${dataDir}/Bahn-Richtlinien" = rec { + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-db-richtlinien"; label = "Bahn-Richtlinien"; devices = deviceNames; versioning = lib.mkDefault defaultVersioning; }; "${dataDir}/Music (Originals)" = rec { - enable = lib.mkDefault (isShareEnabled "${id}"); - id = "ctucx-music-orig"; + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-music-orig"; label = "Music (Originals)"; devices = shareDeviceNames "${id}"; versioning = lib.mkDefault defaultVersioning; }; "${dataDir}/Media (legacy)" = rec { - enable = lib.mkDefault (isShareEnabled "${id}"); - id = "ctucx-media"; + enable = lib.mkDefault (lib.elem id cfg.enabledShares); + id = "zaphyra-media"; label = "Media (legacy)"; devices = shareDeviceNames "${id}"; versioning = lib.mkDefault defaultVersioning; @@ -148,9 +166,9 @@ in in { - sops.secrets = lib.genAttrs [ "syncthingCert" "syncthingKey" ] (name: { - owner = "zaphyra"; - group = "users"; + sops.secrets = lib.genAttrs [ "syncthing/cert" "syncthing/key" ] (name: { + owner = cfg.user; + group = cfg.group; }); services.syncthing = { @@ -158,14 +176,14 @@ in openDefaultPorts = true; guiAddress = "[::1]:8384"; - user = lib.mkDefault "zaphyra"; - group = lib.mkDefault "users"; + user = cfg.user; + group = cfg.group; - cert = lib.mkDefault config.sops.secrets.syncthingCert.path; - key = lib.mkDefault config.sops.secrets.syncthingKey.path; + cert = config.sops.secrets."syncthing/cert".path; + key = config.sops.secrets."syncthing/key".path; - dataDir = lib.mkDefault "/home/zaphyra"; - configDir = lib.mkDefault "/home/zaphyra/.config/syncthing"; + dataDir = cfg.dataDir; + configDir = cfg.configDir; settings.devices = devices; settings.folders = folders;
diff --git a/secrets/huntii.yaml b/secrets/huntii.yaml @@ -1,7 +1,8 @@ machine-id: ENC[AES256_GCM,data:+BtEuwGROivPn2ndlSdw2z1yzL6jNoIBoJOOq6qhqOM=,iv:Ikxuu3fkNycXUdzvSjKGM5E2+IxRcJXcLt3H4T4S3Ks=,tag:pfJza8F4k1SlhmEGpcWQ4A==,type:str] acmeTSIGKey: ENC[AES256_GCM,data:fB7CDRbheyldWpoCX47bozeA4baGS/bmhnsy1KqYzPplK92HMer7v6eZx1S3vsNjCd862FK9iLo3AlIdLu3Vew==,iv:/R+FjiAGfZgjebPv6bV3BoqHt/lAiAJjVNsyy2jBtpQ=,tag:W6vcwVfKpnRRIyWKNWHhHA==,type:str] -syncthingCert: ENC[AES256_GCM,data:f1IFEblA+0kkM11HZCKlRxAKKxRt78W+iYoYiFdE3OBgBanEkbCIXYFAXclZE5WxHkIk2j7Qyf1d4IZN0tyMI+b+AfyjmPHHEO7MxrxHwjg0hzjMRjwO9TOtITnK7Ayz2OTdCcbCgJJK9QF2DqPSK/eQ+aB9bq8RoSedo5+gFJZY1MPW9SeKYYVb0c4cIDimc5WnhvXo/Ma+sXqIKz/YXTAFJig8FJTT7fz8sF/PxGRBln8YWFe4w6VIwsZk0Gerlq9Lt1OyWc7IJw7RxoQpBX6Yi4qqmjeYaVS0R2UsVafnoUzXLt1CMT6EJsW+y+0samy9qTIPnmn/xZEmzIiXKJJGyeMJiVA010S/feXFukcU0xxrfVhCRyCi1/oP15WePjZUOX2ezJLLFPRUbfXQKVJgsD4/EPvfahqXRuz9SOnJeLR0pfMA3hWMDMLY+PuUEaQIDiAF0mt4jZz/ASERaxRegDD0RGEnqu0fcJk1UrpqnUvFXcADW41psdCm5CJB7oG9ydARkEXMmLW5lO60yItWFl1zAVd5QXoLERSBH3SR5xUF9B9ip+9ruPxjlAMK+v84ZiHiXDgOphJYNsODPBtZ5s96LL5/pLAWk0g4AviJNwvIsg7MqvN2rO9cl60g6JVQhQq7jHFBYJOlfa9pLoRDZW+BYWo3Hw+5SfPK/phNtCFxdNC2Uk7dOd4bK0v8q+nWPmqx1FdGmbvVomTHnnDInlNhKwfSSeN4a9Hb4rhZIjB3RKQU/ILSfgWQ9n1+MtQV9moESqZhHP3UgAMoXt7fiI4hVQayUtvPVo3pUlUwNYNyof0axtAciLs/uSlNpI6zbVNTKK/UtoLly4FWdUgX7wySiv7sEKdunCheZ2M7olIqLJk6Bsd1YMwoAR2S5a7nEtip+jELimwViAaJFvQ97RcLePXoe7elQc1TjH+DuRzx54KPbi6bs2xMETDAiosP987928zj0mn423DDuJevQAv5KunEtKcLjxtE7edFaxGjAENhpGN+JrZqtR4xiNvvl2Xtrd6G+sjatrrqG4JCfFx8FeUZ1IA=,iv:8mxfqZ660MYkK9PUPk9xLqtaQzHbtg7IcmwOMRoheVk=,tag:oAwxflAm1NYTqZ7O9WIK8Q==,type:str] -syncthingKey: ENC[AES256_GCM,data:JSu2c+Pq5TD1JF441OrZYOXX8hggGMtjKNsuOBBywk8DEtZwep3gVUTNpjNlvYc/HicsLTgPLt1ZND622ctmt8JcXdAGfSkj8kq1KqpkC6leyEDU57MODoSnFIPVPfqvPCQMYKYhCmbcceJE8Rw3tT9NEH8N0aPMRuTYDgsGmZ8zEDVzSuAcGlHN2EOttX9ohjXh2ApEmvuBbHENLLqasIlW38RvMCAUrmMI+cqRspWfaOoeb3uH23FGPSQLYwDQ8bKBm78elbKukC3t5sTurLday3koHctuKtUYpA2LQCWarAnI/+z/wZ5OKHqayMtzvoqJN0aERniaxOoSjkrTwLiJeZSqvof8a3lqw4XnXhsStTvK30kuVSxqQkHAFONz,iv:YVvzB6+bcnTCpaJvDa9G5mOwxnsZ0bMRGn7/mhyqZiY=,tag:S+i1RKmy/ASUN4dxOeJBuA==,type:str] +syncthing: + cert: ENC[AES256_GCM,data:nld1ZupR5i6UGZsyy+fuDOEjCV31BSTZiv8/GzEw9uaWqCztFL3wzwr4/x9OoPQGp90pK8ELA0KCr9UyqIBFkgjRcZFP2e2RlV9Ej4VrApC6pwAK4BNCxbGnaftsyXliW5Hk2mO+kFkj6CYgPwy+kq3ajoAzX2xaefemFns+sRZcofyTkKZ5MN3XRJ+z8wwHtqHZziDM2m9//D1yMWdjJZv2FDvCVS/fdhw0+Cgi1fB7eCkq1RLLElk/T610/DtC3tIHaivVjMPodvXT9wLL+ElPOxRSACcsN5TwMZDvqpOAOkrMipcYGN48lTtXExZskOga798cN1io4njEM+Vq8O6d2zHpVIzBd2YlCvdyH1aK0qYsR5+xjsmAyO7lMd1pK4UIuIlT5937fLRN8E5OO/TSOM1x44a9VUTEBvUcu0FZZn/UmX0ZdrmUPMhw+V7v9yLdFgMsI7I6V1FaO7yY4DUE4kx9cLKNjQPLtnZ9lc/WXiAIT8KG0ivPxUx4mc/u6EcFig2mMm7nIExUrg43wiusLAv6gZ4WnNmOO+WgbiDewHnXgGLUAN7w4Cmmlom5jsa/iEWaV4x9RXwa23567y08vB7S/RfdgjLaN5/6oKIumfzTk5dfMGh7VmpOuu8XIWSi+E1cCmDr8RUJDg/ea3Fsic/OYYrf4ZF54P55qkf+uDgHrQxDA6xzJIWkpIWCCIeLKcAD8jU/EHhEDzL3L7cAFalGLE0Gn8+Yo9SRWrVrjI7tRm0lG32uCP5BZ3pO8xGprhL+DJWZ36t/tCYMl7CwtRdgtJhzc+Y2CzK9OgGQAuhsRrCUZxXHtGyYtQtdFb5hzu1Vv7bm1tlPOx3KqVzzYO69qtRjFrcVt98VZNXkma92tOsEY+sygPdixWbRtRCKa5pOx+TB7X5CFbxXYU86BJDvbJnzK+DXQPSqKgD5pq+WC74Sxsa2VJ2h0xNfdptYHwN17SuVFw8+f21qwj+W1ZW+hufRpT9Sz+lMEACuxMRRC/9qtkh4s2ctefEL4leiR5pGEJCR+6RcwptnEm5i/lAy7EfhPAo=,iv:UCBmAyLR2fHub25o+u3jh2QDfiIdOGRnjVlk3bKGzKY=,tag:+8wZUgd0y3dRfrSjo2pESQ==,type:str] + key: ENC[AES256_GCM,data:ogVa9Rd4nyhSSM0KPtXAtIdzObyCLWA4mEgdOtB4oOR32rgufdVmBPX593EAifvbgEhRTrcDFSyRDSphKifF0MH6QW+tP5zJyAOkqgvxlB0cB8KpcqrOU8t6ZgTO8Gj0+Wcwdly1WDEfFX3bK7/PZm6QPWDejyM9cfRAld2RESMoEDelEpaPW7xyff6BzlYyzUo9HuGSCYTmuIWdBSU/ER4o5RMDppJT2VWFYXQJgDAa7hFSA9/hrj9eOS28wr1qnCE83zpYCSjBHJ9hfK6d8jwpG6TWROLfdv0C2M53+jPZ0Aa3X+/9+k2RBNS4xU5ULNfEu1Ix+7HyNJ0mI3lujZVTd0LDbBvEebur8oJ3nrrBSszSd2iirUth4j/Nk/A1,iv:GlDGSbNGdUB2nmvIDFQyGZXSf/YacA7mhZkCT9WTZSw=,tag:/grVWjZnKYg/LPVPKmtKnw==,type:str] environments: cccdaWifi: ENC[AES256_GCM,data:O6Id4IrlJLfVfbwZJ4oz9jelYtBXVSUY,iv:o9Rv20e3+bXGMDJQgVqW3gcJH1qqhx249xBKO3Hclvc=,tag:ybYRLE0pLnbv2tnxcZGGPA==,type:str] sops: @@ -15,8 +16,8 @@ sops: TUFjemN1cTNEZGlIcHF2L3hXZ3ZOeWMKK8AR4Ovh7LYwxEsV6uGyLM9WmAQlTeuL adoHhpotA0GfDTga0UsrBP44+6QU1V8+yX6XJPzZIltH1DIVcHV70w== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-06-06T19:15:33Z" - mac: ENC[AES256_GCM,data:dYdKl6pU6uVpPj+YecwFo+EbkVuXfRF8fYhMphhf40JTyDRR0M6IWOseYdReag8XaJLeaMlFPUXC14SnX6LSrI/uEci+ZdiQ4j3Rvl/HFBzXabuk5WSE20MenkEndtGG/UGOFjz63/IlgqJZrtv21VD4Sks82KZo/J07JO8ULqs=,iv:pCvAkzjc5Fpd71iUzv2K8Vy65X8Za77opsCEjDqlRC8=,tag:oK/RfdSnPBBmZjQjEXA3DQ==,type:str] + lastmodified: "2025-06-09T13:04:55Z" + mac: ENC[AES256_GCM,data:epBVHurTlDWi9gG1Ho2bGOgRTPwZbKlEz/uFSPb6rLui0Ldb9bZ88C9lkWFC4mViBrO5Cx38SwW9LZc0kYEe9Z7LUA0E//IxW+ny1CA+mTYsVge61SHWU0nH3DREK+wkgIPT9AOBJloo7P9Dn7Wrp5xMSFxSIzx6tsuiPrOeg28=,iv:RcrM/b8/mUOLlWZ0HgZfwl9G5giZlHhJQ0J87wFZKmg=,tag:FXu67/l1PuWWZTrnsHMmFw==,type:str] pgp: - created_at: "2025-06-04T20:02:52Z" enc: |-
diff --git a/secrets/polaris.yaml b/secrets/polaris.yaml @@ -1,6 +1,9 @@ machine-id: ENC[AES256_GCM,data:LrMBBAlOwnda8OziX/yTUrEVv4tMLNB8n0B5cMqVVJU=,iv:ZnroQ8Pu9K8CnehQXYdUtpbOaXJ2oPDSJtRhKC+U+pw=,tag:0wU0XOu/vrowN85iIqIatA==,type:str] acmeTSIGKey: ENC[AES256_GCM,data:qDk3XM2ZqPqdAbGTkLO1x/ZYK3JNcJxQReYSFz+2Mcpr4B8zeM5Clv2DYZds4g2MhRZngx3zCTabYK/NI3SXlA==,iv:oAP9NmLpI/5dbVjUT0Swyv5ARheY7SYi21+Bbhn6jLQ=,tag:lqjWTXma3Zs6BDu7iVaLSw==,type:str] wireguardPrivKey: ENC[AES256_GCM,data:R8JIxdwu+SjhT5n4ab582jnZ3Ed27FVKk999mrIWNwtF1FsMR7XcBoSpbag=,iv:h/GOtJO7hFe2BYqzfwJ5mpLUUzq1eoEJsd2iDRQDv04=,tag:QS/52ZI260xH3a9Md0r2RA==,type:str] +syncthing: + cert: ENC[AES256_GCM,data:ONKlhBPLZ7qLS5Y/9vtaEL3hx3sZWv9l1u1K9+1AlndPfWNUd4eoGABBb8zm9KOclDoR5IfgZ4Vxz/5M0v9gV8bsjdNW9HcC7aaLv/0Z3MBmc1zX6NMZAHLLxZbt1copV2QofZ+6QV39L5QT6TuD4kVD1oJM/+0gbRQJcQm1EOFz9hWAGuEMVuGJRIkL5dUp/B+WRj7QP2u1gdOliiZkyfOYD84XDqKrZ6aXYk15o3wvMljEv16+lOabt/QjpIZNKRZlOJSKMawTzizMtXS3pt4l4XPSdiwN6VIiNxL7AtYYdcGCsND4y9J7c6b+ge19SC+QJRts+YfGUr2mEEk26PZwKRLMFkuRgJWGV3SrIw53tEIru3Cbr6ARiRT/tQ7qrJBb9MDcug3kouoRAD2/Xm19GtYRaCOLzYT79ZVO9jhuk39CXLvHMgf1sMerh4xhFWVJaDilOUMvXoY3CxZWcSf4sa/M8yPFX23XevhRW0npptAMHElxwOzjkf9oOcfefialsIOnU1oBA5I8tvmBsUU4ZOXh+zxWEcfbuATWBDNC+FJNpux8kZTolF5fYgxsIOuKg4xnWrdYoFKKQDlxZ55GFZ7RKkZ3BLndIjehB8WXqL2D8jCMbOwpI6b43ziCRJ1Lr3I0wpZG0PPIKOb2iZ2ZhB/0n2OD129xdptQbM/vyFIS8FLfD8BshtC/5QbwIsSedMYSc7WCOX9jUTpAU/Ts9IOxBqeLX4S2iS8opUD2WlnOjiSz+1zAhLHLDz1JynbFFY0QzwoTyO6+0ZaeJfQGjdtAga0qcpvCRa8x7P/Hikr4byVRvwJxjYNW0jG4M3FS5iJ58KEPjTL+Cr2/7axmFLZ33MOZ8FYwbya+Crzf/xZMzQYtd0Mb60dvYSyJLKzyqwuTX9TIOVbcg0zK/xpMZ4Y83F23E7NZ/spxXFU0cmhgqs3KyoiNIShLrKLLKLSOYgYmV6C6MZajR+LE5InlGjf2a4rTWI7jvQ2Q4p93jii4EBDh6UA4Yvil8lLt4Dx0NGjCvczC82saUVPdIzwrqAST1IeHKOg=,iv:6/d0VSvyA/T1/R9O0XW1jOayb4aNvKeo+68KaHNQx7M=,tag:p4LXQDpWzst2poIKGSCq0w==,type:str] + key: ENC[AES256_GCM,data:k6jlc/MIcuFtgil3PaqEwajrAjDclKj8sNLl0hDVdE/17kWtY0nnuYxLjY6siETQg+er+qUQ8ezk0hT7rVF6/RNqR8gLe8lgpcLQK3iLC/mGFoAk+xA9Qv9SiI5RuJWnG9OS/ZcF59v1gl2R42BqyJeGBFWq8zPNCfhZp0toK5s5+6dR413LDrnR/wF2Bh0V3Mg69TqJUFFuFtwLKlC/WFkR8t5E/V+U8Dgtsj6Q8rIdB8DaFQht0ymnZYtWv4E3EiS7tl8NUUDn8dAqXpu+mtDmLnaFJSUEYss37QrSasIJXhehZqSZRyhd+zn+L40MiaX2JIZkbhdFZvJfWvuqt0f/9ke21D0jXcuuwmqZVyLebLm074oGHG94tBB0BznF,iv:snVtcje7FU73eEOYxathXydrHwinsHX58TbbKBr1yrw=,tag:mjIhMvQAu2gNSfMpl+gzkw==,type:str] zigbee2mqttSecrets: ENC[AES256_GCM,data:zLoBtmNionxMxg/5PHRL9UvBLAHvpnh/wj4UA0cZzt7CZWna6az4DiuKmaWUrMcvoc+jpng+VLHXF5Z3kv0jRExwU+zCE9dpJQRUNRKHpXfeO3MoiEE=,iv:+EaznAMg4RMVtQPC+S3LQcbDQ/CXU2nD9n00YFw+o+0=,tag:ZokPcnrfdPuZupq8uHF7WA==,type:str] pppCredentials: ENC[AES256_GCM,data:tQhxsYQzHFVPCqLz5p8wjHXHj0S9pz1Z9SaaOStAu5NDz/CrdPUFsOkqCCURzuaYyNGf,iv:lVklNRX3Ya2ChPJHYjjaO8rHrBE+ye4Cyw5VCqWWADQ=,tag:n40RSYBnZks1Aw6VLMis1Q==,type:str] environments: @@ -21,8 +24,8 @@ sops: SUhEaGg3dE9HTnJZVXU5cXZ1YkVVQTgKreIDmLNlNfHNW5XGDJdAN9WIHOQqKKLP yPTbVRLiDdAejAOTA89fR6Vz1hAGtoPQuQoIFQXBdd8TLmp2C5hH5A== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-06-07T09:58:47Z" - mac: ENC[AES256_GCM,data:qS9JNAlA45AjBtaTW4DZQq/kl6GHz7pr8FXe+GUjQMbZNFy5ZPVTEEvxBQ93SYV7XN3XpjKfzLLbus7V+0gMHDEcz2Q7jEFpP7rzdrNbp0w0NEeOV7XFKnk35drQEcJ0+khcrMvfreWLHfCKaTI2x01ag/8tkBuFg8Wqr9tFCmU=,iv:XMY45Ax7rRnotd5be2ThfVcjZT2qU70sC6z0w1/NwVU=,tag:puZI/8HBQ0eG0IxgGIPihA==,type:str] + lastmodified: "2025-06-09T13:04:31Z" + mac: ENC[AES256_GCM,data:Jr6hL3GdaPlfPOxr6pOOAFdg6f7Fsdph0Em/kl6A1ij/m644bISEPSolo0eZIz32jVyfzlLcUjtNjWgOs9qsG03BFiVI8KdtxJSdH/5MWY9zcmAdjwYvQpIUdyswFRna0TmeivNffiqtXm7EOb/rTew1lwIrtkotwpmL5dc+o+w=,iv:zIlxonvNyBKSwP9ZdWR/bBxxKiDu1A4GOiXOSqb87zo=,tag:i6bHKckPBgI8n4rF8wVdOg==,type:str] pgp: - created_at: "2025-06-02T17:31:26Z" enc: |-