From 16b9e1388a0fa80f4b275a408645e8183c2b1589 Mon Sep 17 00:00:00 2001 From: Quinn Unger Date: Sat, 1 Aug 2026 00:22:04 +0100 Subject: [PATCH] cleanup transmission & netbird config --- .sops.yaml | 2 +- flake.lock | 74 +++++++++--------- hosts/lala/default.nix | 19 +++++ hosts/lala/netbird.nix | 6 +- hosts/lala/proxies.nix | 17 ++++ hosts/tsumugi/transmission.nix | 138 ++++++++++++++++----------------- secrets/secrets.yaml | 11 +-- 7 files changed, 147 insertions(+), 120 deletions(-) create mode 100644 hosts/lala/proxies.nix diff --git a/.sops.yaml b/.sops.yaml index 2d53918..4563de2 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -5,7 +5,7 @@ keys: - &yuhata age1nkknlcvzre92qcv5c62gw5xxmmexhpumcrqslzs3eqa3ty6xna7qkz6hg3 - &lala age1cpqgsevvfgk0nnmxacsdcwsrkefd0xcx7wkdlyaqj8vgvfvnm4rq4npjv6 creation_rules: - - path_regex: secrets/secrets.yaml$ + - path_regex: secrets/* key_groups: - age: - *kaoru diff --git a/flake.lock b/flake.lock index 0d88ee3..0793700 100644 --- a/flake.lock +++ b/flake.lock @@ -195,11 +195,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1785283349, - "narHash": "sha256-1SAsLd0bNWGCHPVu3rcmi73TEXbmKjiSGVJhGaQFXIk=", + "lastModified": 1785543227, + "narHash": "sha256-jpFUp0N+wu/D9OCQHRr09rSR+1LKzwwn4wYSMF+/t94=", "ref": "refs/heads/main", - "rev": "b3b85bd35eeeeb8c6104942d58736824fd3158bd", - "revCount": 150, + "rev": "d73801e0812d2c6e3afca3cf20e5a7f24b10972a", + "revCount": 156, "type": "git", "url": "https://codeberg.org/bananad3v/niri-nix" }, @@ -256,11 +256,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1785295223, - "narHash": "sha256-Y1dvDpIksaDhve6JVHJqDj3uk3WtTkWeJQMu2F1Jc/A=", + "lastModified": 1785555369, + "narHash": "sha256-KUHFKv51VoV1wpyIreeusIkFsgycjeuRA9vDsBmCUu0=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "2aa7b3c07aac2ad1a71518ae37cec473ba89b68f", + "rev": "76a82a08c36423e5ff627c62f55797de52c3061b", "type": "github" }, "original": { @@ -295,11 +295,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1785295339, - "narHash": "sha256-p0/gBGqW0SzC+bDmL8nWEWI5+eYtEEndPJh4vJ/hcI4=", + "lastModified": 1785555171, + "narHash": "sha256-MLBtKBAbLXB81qm5UZq7w0IFnP/fh6QWhfU55dA8uFo=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "8252e4efcda9fe5f28888bedc8075d8e8b9a03ea", + "rev": "730fe1d38d63878df9cf6b46b36308d197a9334e", "type": "github" }, "original": { @@ -334,11 +334,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1785292512, - "narHash": "sha256-DMNyhpHHCPqURGKGveYSlOhfutZ9BcTot8i0xiUoS0s=", + "lastModified": 1785552372, + "narHash": "sha256-mKbN7th6c12Ylpv3mR//iC17PB5O0rYLoqqZVYfgmrM=", "owner": "nix-community", "repo": "nixpkgs-xr", - "rev": "64c3717aafaa122b5274e1f52827658c43a0fbb3", + "rev": "e69b6cc43b3aacd64d28d24515bd18303b34f87b", "type": "github" }, "original": { @@ -349,11 +349,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1785133411, - "narHash": "sha256-Yjv0WEg39KRYS0rBdTbu6Fc/or/ihAKk13W9sQ6VWd0=", + "lastModified": 1785491804, + "narHash": "sha256-p00vplVOyfKGlhju0+eGGPAxyYYKaY0lpyuoHLFIx2Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2f5a153c270b70cb0f8c11f46d96d6d3bc39f4e3", + "rev": "5b4f72e1705a63aace42900610c4db82cb4af0ec", "type": "github" }, "original": { @@ -442,11 +442,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1785090369, - "narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=", + "lastModified": 1785454630, + "narHash": "sha256-LQy14TZp77TwbQf40gg1V3jo8FwJG0jGDkAH+zRHqg8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "624af665418d3c65d544145b4d34ad696439570e", + "rev": "1559d3daa3ecc813a650b79375ea61b6741b8746", "type": "github" }, "original": { @@ -464,11 +464,11 @@ ] }, "locked": { - "lastModified": 1785348049, - "narHash": "sha256-iNeHCmBY1wNa6jb5qsqUQEXGtq85HLgq8ODrM3icJK4=", + "lastModified": 1785583144, + "narHash": "sha256-y1NH1h+NJyHPv2tqvLBrB/zkB9/Hl6n0Bi/qaJO9Lu4=", "owner": "noctalia-dev", "repo": "noctalia", - "rev": "624363e303a5ae6d583df3a11c4b4d80db121bed", + "rev": "93ae25fa364aafba107b914c0103aabd66aeff2a", "type": "github" }, "original": { @@ -485,11 +485,11 @@ ] }, "locked": { - "lastModified": 1785316169, - "narHash": "sha256-7iBE9aITWeYBC5YdRcY9F9y29dtlNhwg7eLar+CYLgc=", + "lastModified": 1785404119, + "narHash": "sha256-3t/+o8Cbve8z43IekUNBj7Ecn/T+v7+p4Ivgs3IEQtk=", "owner": "noctalia-dev", "repo": "noctalia-greeter", - "rev": "d6275cbcb5b9acae2348bed16e358aa6c2cf8188", + "rev": "257ce92ab410a1a9347038e4286a3fc5989bec97", "type": "github" }, "original": { @@ -658,11 +658,11 @@ "zen-browser": "zen-browser" }, "locked": { - "lastModified": 1785353800, - "narHash": "sha256-mFOA8C73U70o4HA/NWty8q0ozyToEVJL71a6YoJI6AM=", + "lastModified": 1785600149, + "narHash": "sha256-pSig1O1CJlH/+PmtYG7XvQ+J7HwS5KPgKOiPHPnT8Xc=", "owner": "Mop-u", "repo": "sidonia", - "rev": "670edcbea037b3b7366ca6fd510f7525615b0e6a", + "rev": "ecd72af5a8b8649f6be496c61e3a3274494d2f46", "type": "github" }, "original": { @@ -783,11 +783,11 @@ ] }, "locked": { - "lastModified": 1784369104, - "narHash": "sha256-47cxbcZODibHv3rELFQ9vZly0vUNkND/atn/U7HLeb0=", + "lastModified": 1785360170, + "narHash": "sha256-XE1lKgQ3eIO3E7zWryqcRsax+mYXod/5RHBn4YaR9YE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "df3c0640565d04a0261253cdd89fce78ec50168a", + "rev": "d1187f8bc71fb8aab02395869ec3f5c1920f75c0", "type": "github" }, "original": { @@ -798,11 +798,11 @@ }, "unstable": { "locked": { - "lastModified": 1785090369, - "narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=", + "lastModified": 1785454630, + "narHash": "sha256-LQy14TZp77TwbQf40gg1V3jo8FwJG0jGDkAH+zRHqg8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "624af665418d3c65d544145b4d34ad696439570e", + "rev": "1559d3daa3ecc813a650b79375ea61b6741b8746", "type": "github" }, "original": { @@ -840,11 +840,11 @@ ] }, "locked": { - "lastModified": 1785224333, - "narHash": "sha256-8DNJUVM10ktK02V9ZIV064CH+fuPF272VCAZBn6arig=", + "lastModified": 1785569296, + "narHash": "sha256-ux2+60xcjl4LloKPevqrkP+uY4DNZXhzVd+TYrfE2+w=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "5f1a4be4d280e1ae06d61a75775a234b1714da3f", + "rev": "945e834a12a97a5e3b08869960e35c7ccfde6f69", "type": "github" }, "original": { diff --git a/hosts/lala/default.nix b/hosts/lala/default.nix index bcba643..68e4be3 100644 --- a/hosts/lala/default.nix +++ b/hosts/lala/default.nix @@ -10,6 +10,7 @@ ../../common/os/services/openssh.nix ./hardware-configuration.nix ./netbird.nix + ./proxies.nix ]; catppuccin = { enable = true; @@ -22,6 +23,24 @@ ssh.pubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMh1dUFmdYFPMsKoidEzYyGjQkG/GMl4F7yoB4BidEFO hiyama@lala"; }; +services.netbird = { + useRoutingFeatures = "both"; + clients = { + sidonia = { + port = 51815; + login = { + enable = true; + setupKeyFile = "${pkgs.writeText "one-time-key" "344166FF-3BE1-4E05-AD2A-1247DFBB2038"}"; + }; + environment = { + NB_MANAGEMENT_URL = "https://netbird.moppu.dev"; + NB_ADMIN_URL = "https://netbird.moppu.dev"; + }; + openFirewall = true; + openInternalFirewall = true; + }; + }; + }; sops = { defaultSopsFile = ../../secrets/secrets.yaml; defaultSopsFormat = "yaml"; diff --git a/hosts/lala/netbird.nix b/hosts/lala/netbird.nix index 9c42b58..ec31e60 100644 --- a/hosts/lala/netbird.nix +++ b/hosts/lala/netbird.nix @@ -40,13 +40,11 @@ in 3478 10000 relayPort - 25565 ]; allowedUDPPorts = [ 3478 5349 relayPort - 8211 ]; allowedUDPPortRanges = [ { @@ -82,9 +80,7 @@ in priority = 1; }; }; - services.proxy-tls.loadBalancer.servers = [ - { address = "localhost:${toString proxyPort}"; } - ]; + services.proxy-tls.loadBalancer.servers = [ { address = "localhost:${toString proxyPort}"; } ]; }; http = { routers = { diff --git a/hosts/lala/proxies.nix b/hosts/lala/proxies.nix new file mode 100644 index 0000000..2c4e55b --- /dev/null +++ b/hosts/lala/proxies.nix @@ -0,0 +1,17 @@ +{ + inputs, + pkgs, + config, + lib, + ... +}: +{ + networking.firewall = { + allowedTCPPorts = [ + 25565 # minecraft + ]; + allowedUDPPorts = [ + 8211 # palworld + ]; + }; +} diff --git a/hosts/tsumugi/transmission.nix b/hosts/tsumugi/transmission.nix index 03124ec..631083f 100644 --- a/hosts/tsumugi/transmission.nix +++ b/hosts/tsumugi/transmission.nix @@ -22,6 +22,7 @@ in let id = 100; containerPort = 9091; + hostPort = 9092; hostAddress = "192.168.${toString id}.10"; localAddress = "192.168.${toString id}.11"; hostRoutes = [ @@ -32,78 +33,77 @@ in inherit (config.sidonia.lib) configContainerCredential; in lib.mkMerge [ - (portRemap { - inherit id containerPort; - hostPort = 9092; - }) - (configContainerCredential (cred: { - networking.wg-quick.interfaces.wg0 = { - privateKeyFile = cred; - address = [ - "10.2.0.2/32" - ]; - dns = [ - "10.2.0.1" - ]; - postUp = lib.concatLines (map (subnet: "ip route add ${subnet} via ${hostAddress}") hostRoutes); - preDown = lib.concatLines (map (subnet: "ip route delete ${subnet}") hostRoutes); - peers = [ - { - publicKey = "YWMbt8hivy0dAHCuK4wFqKFZ54BhlsrLYR07xJzPAQc="; - allowedIPs = [ - "0.0.0.0/0" - ]; - endpoint = "79.127.145.65:51820"; - # endpoint = "[2a02:6ea0:f911:6588::10]:51820"; - } - ]; - }; - }) "wg-quick-wg0" config.sops.secrets."tsumugi/transmissionwgpk".path) - (configContainerCredential (cred: { - systemd.services.transmission = { - serviceConfig = { - # https://github.com/NixOS/nixpkgs/issues/258793 - RootDirectoryStartOnly = lib.mkForce null; - RootDirectory = lib.mkForce null; + (portRemap { inherit id containerPort hostPort; }) + { + config = { + networking.wg-quick.interfaces.wg0 = { + address = [ "10.2.0.2/32" ]; + dns = [ "10.2.0.1" ]; + postUp = lib.concatLines (map (subnet: "ip -4 route add ${subnet} via ${hostAddress}") hostRoutes); + preDown = lib.concatLines (map (subnet: "ip -4 route delete ${subnet}") hostRoutes); + peers = [ + { + publicKey = "D8Sqlj3TYwwnTkycV08HAlxcXXS3Ura4oamz8rB5ImM="; + allowedIPs = [ + "0.0.0.0/0" + "::/0" + ]; + endpoint = "103.69.224.4:51820"; + persistentKeepalive = 25; + } + ]; }; - }; - services.transmission = { - credentialsFile = cred; - enable = true; - package = inputs.unstable.legacyPackages.x86_64-linux.transmission_4; - openRPCPort = true; - openPeerPorts = true; - settings = - let - speed-limit-enabled = true; # speed limit is in KB/s - mbits = x: ((x * 1000) / 8); - in - { - # https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md - speed-limit-up = mbits 10; - speed-limit-down = mbits 60; - speed-limit-up-enabled = speed-limit-enabled; - speed-limit-down-enabled = speed-limit-enabled; - download-queue-enabled = false; - incomplete-dir-enabled = false; - incomplete-dir = "/mnt/media/data/torrents/.incomplete"; - preallocation = 0; - trash-can-enabled = false; - cache-size-mb = 8192; # avoid accessing the disk too much - rpc-whitelist-enabled = true; - rpc-host-whitelist-enabled = false; - rpc-authentication-required = true; - anti-brute-force-enabled = true; - rpc-whitelist = lib.concatStringsSep "," [ - "100.109.*.*" - "10.0.4.*" - "192.168.*.*" - ]; - rpc-bind-address = localAddress; - rpc-port = containerPort; - download-dir = "/mnt/media/data/torrents"; + systemd.services.transmission = { + after = [ "wg-quick-wg0.service" ]; + serviceConfig = { + # https://github.com/NixOS/nixpkgs/issues/258793 + RootDirectoryStartOnly = lib.mkForce null; + RootDirectory = lib.mkForce null; }; + }; + services.transmission = { + enable = true; + package = pkgs.transmission_4; + openRPCPort = true; + openPeerPorts = true; + settings = + let + speed-limit-enabled = true; # speed limit is in KB/s + mbits = x: ((x * 1000) / 8); + in + { + # https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md + speed-limit-up = mbits 10; + speed-limit-down = mbits 60; + speed-limit-up-enabled = speed-limit-enabled; + speed-limit-down-enabled = speed-limit-enabled; + download-queue-enabled = false; + incomplete-dir-enabled = false; + incomplete-dir = "/mnt/media/data/torrents/.incomplete"; + preallocation = 0; + trash-can-enabled = false; + cache-size-mb = 8192; # avoid accessing the disk too much + rpc-whitelist-enabled = true; + rpc-host-whitelist-enabled = false; + rpc-authentication-required = true; + anti-brute-force-enabled = true; + rpc-whitelist = lib.concatStringsSep "," [ + "100.109.*.*" + "10.0.4.*" + "192.168.*.*" + ]; + rpc-bind-address = localAddress; + rpc-port = containerPort; + download-dir = "/mnt/media/data/torrents"; + }; + }; }; + } + (configContainerCredential (cred: { + networking.wg-quick.interfaces.wg0.privateKeyFile = cred; + }) "wg-quick-wg0" config.sops.secrets."tsumugi/transmissionwgpk".path) + (configContainerCredential (cred: { + services.transmission.credentialsFile = cred; }) "transmission" config.sops.secrets."tsumugi/transmission".path) ]; } diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index f39fb84..7b58a5a 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -4,16 +4,11 @@ git: ENC[AES256_GCM,data:sUhHS+P82ySkqTuCy9nhSPoQV0TpswSPEsA1UtnscJMgT/0S0jDvrXrVGPFbsyP5hE892WAdUjwVDYQrn+81YF/+mK+iRTBaYUI8iQ3oZVSwEtaMQrjeqG8+89aT,iv:AQ+oQnphXn5BNEHJxa7IbAnOYcQqCTYG3q8zd7wawaM=,tag:v77FXCUEnULnlrltvFQHbw==,type:str] benisuzume: cifs: ENC[AES256_GCM,data:hjy635OH2DXoqoW2v4XZ/xBE2ZajwLCK1zIaQ/FUQNlUYd4c04i/UfQ=,iv:kk6HUN9FMf259ImEMj7b1Utw+13CiQBqAMBkj1c0yfk=,tag:3DZl94VeSoQA1Wxs+QMaHw==,type:str] -ochiai: - wgpk: ENC[AES256_GCM,data:pG106iOEEtPEf3QpLPYiLL+59MK83fkoycZxy+tzS6E/gUM6SdpsSbLN+NU=,iv:wLtbswBHoIkRKnYS68Gd3mJIqFy/z8ceLAzFb5T8nfI=,tag:uQV3lVSGx6Q53iwm5kZ+5A==,type:str] tsumugi: - wgpk: ENC[AES256_GCM,data:uFSWRhGBMF72vF/vyOIpOmAKqp7kLCjgKFn96UfQAZBzLOMDJzoC8k7VdQk=,iv:wYbgbDk09wV1LpBCtDwMM4L6h4TdBfm/LriBP8nZ1xA=,tag:7i6cSK+vacDesa1cjs60fA==,type:str] - transmissionwgpk: ENC[AES256_GCM,data:P1jEdL3QJ36ATjO6tSnDxMikOOdTGRDebjmi7NVkCKDkhLmZqKNqtt3uBiw=,iv:qIiRq21aAxrEfPSl8TiDrfevVQr3NilJ5mAzoachhyA=,tag:nlebXsrovlw8idMvi6ijkg==,type:str] - delugePass: ENC[AES256_GCM,data:GBoY082RdDxZEKW3ReCISfTpsB4=,iv:Kpd/PYcLMUT//GQDBkzEigrPHW6CLUfPGavs9Ols7H8=,tag:bTUQPzyNZs4DvkIYOESGGQ==,type:str] cacheKey.pem: ENC[AES256_GCM,data:PoXCHVkDmXbwr8kiWV/4l35m9JUuZ8+qJbvAaJ9zk9aAso/jkCCoPvlS+V4i8+RThQleEMgoXnL5AH6DM9qEaQo8UKIScF+Ny+ipgowVCC2Jkn69fmgs/osTPErijU0h,iv:sWZUUPJkdE8+XqML01GfR7xzYiRSCUQT2mNEQBQ8BVc=,tag:6FYcyhOm68PclHejvYVytw==,type:str] + transmissionwgpk: ENC[AES256_GCM,data:qcV7E4am5kyg0Es4z98F8pECwbrnnw4J+wKIPkCuvGFEsR7g2ASBCqLlzs0=,iv:Pga7HS8+ZjNnghfx+GmQatLUBqL2pt5rt1VmGddkZDw=,tag:yKv92JQ0YAKlHu3JB2xpKw==,type:str] transmission: ENC[AES256_GCM,data:lUOP1FgucJ/Qi2nCx3SlZ5X36akHdHKa9ZA1H0JuBrqbyxAogRQJayLd606QNk8QE5Cecrg+el9/njKawWfB,iv:qpHSlLVKskSwW33iOwvINNnEidbQGqxBNjDdzNF7Y7Y=,tag:f7+mPCIvGqBA3t8EfATAew==,type:str] autobrrSecret: ENC[AES256_GCM,data:F3WlaDlhlzFL6ix/stAZIg==,iv:j4EaVIRc6LhqwIGbCEzEFGzKqOd/cfvSI/DgFoAlzDk=,tag:JmpWL0CNydnuluO7x9SRwg==,type:str] - cloudflare: ENC[AES256_GCM,data:tAbCiZKxnq0MIr0VTdLYtRfW5atXEyqSUECSooBXuz/a7NAq/7HwDcLpLJPUEQyiXUVLWa7SANxOKS/ctlPYzUZGbxGDN1YEgElR1DKma6KcfUH1tmvN1fC7SVqRQmc8p22L5ajXmlvcF9hVeKBqkDU7a1DWTmGH2QcyiZjBye5XMvPknKeglg5I411M8T6z3RaCePwFzkMGIgb7Up91asc2,iv:blu3o8JWqPjW4ZeGVjaiAcb4jDpLDHweUHGjaqmlrh0=,tag:i7UtQb1wZX0rCJ6GrC//JQ==,type:str] nutPass: ENC[AES256_GCM,data:jCJ9IEdtRVPy1NfcHUIwqnQ3rsc=,iv:Zafd/x8TOyWwKHAcGK41hZeWu/krb1ErzUo1ei2JqcA=,tag:WZfDmzVIsJ6hQ9Z+UfCvjg==,type:str] radarrMainApiKey: ENC[AES256_GCM,data:KX6ISlzv0DDdAOGUGAgHOoLGrv0Z0mo9KTz7W0BprlY=,iv:bb5CgT874g+5ExlSjCFnMFcp34LSkzGvmh6JdZ85pKs=,tag:9BR2O9SDPjsZ22xm6ADxRw==,type:str] radarrAnimeApiKey: ENC[AES256_GCM,data:Dn9LmPjgmGYlIoi0nV760R8v5nbu0iVtEO5rhgkpDGA=,iv:17YeBObcUP+AmAB2DHHRvgRZNfe2TdQ6+IsWV7qYqS8=,tag:1KLlrXSHM5CKZKP02KFSrw==,type:str] @@ -75,7 +70,7 @@ sops: JFaroA1RPAmhCC0nSl4seBSIuRl8QrPjfcBJy4mFycll5Mp/0/WwLA== -----END AGE ENCRYPTED FILE----- recipient: age1cpqgsevvfgk0nnmxacsdcwsrkefd0xcx7wkdlyaqj8vgvfvnm4rq4npjv6 - lastmodified: "2026-07-31T19:45:38Z" - mac: ENC[AES256_GCM,data:GxNVjmDBxuCAjg1UvBhaHw0eUF+SF1g4dteov2rcIhJEuAVfNQwGIMqDXppI28cdVTQ4B2mMgkFwmLR+EBsdYh86Sl5m1Vs6vuz21u52+kjC6GKDDBIRQyhXKR8375jPhn2LYTOgxpRClVp5TlJ3/2TjLZFAULywFd4fWQoHZiI=,iv:PZxTdSrF82m8/pmIfC6lI4y+9snq0UE3qCjFCHWs6zk=,tag:6r3y7Ups+Gh3ZF3CMfWm+Q==,type:str] + lastmodified: "2026-08-02T15:47:25Z" + mac: ENC[AES256_GCM,data:pGl1hgaQSC6tTayrsBgXeNL/dZmYnMlAelHmZV/eifxJxBPgk2PdHGTBAnz38CPWuOFBtYFWRqOHEzyLey5MxGvuHG0nS8WVZYh/+twCg/7GK+fPOqasREJ54CJ3IL1zxkI/8zASjtcx2bh9zurXzDtsb3iuuA4EkgKnpPaeeKo=,iv:RqYYU4UILamo6q8qIrDf09oDiJy3wUjE+zGHItggDAE=,tag:3dhyIMy5ck1F9fcsjJzmzw==,type:str] unencrypted_suffix: _unencrypted version: 3.13.3 -- 2.51.2