diff --git a/.sops.yaml b/.sops.yaml index bd8509c..6b4f967 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -70,12 +70,6 @@ creation_rules: - *hosting-02 pgp: - *lander - - path_regex: hosts/servers/mail-01.yaml$ - key_groups: - - age: - - *mail-01 - pgp: - - *lander - path_regex: hosts/mail-01/secrets.yam?l$ key_groups: - age: diff --git a/flake.nix b/flake.nix index fbca8d1..c45e74c 100644 --- a/flake.nix +++ b/flake.nix @@ -160,6 +160,9 @@ }; # servers + db-01 = hetzner.mkMachine "db-01" { + ipv6Address = "2a01:4f8:c012:15d4::/64"; + }; hosting-01 = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; specialArgs = { inherit inputs outputs; }; @@ -167,6 +170,16 @@ ./hosts/hosting-01 ]; }; + hosting-02 = hetzner.mkMachine "hosting-02" { + ipv6Address = "2a01:4f8:c013:7fc0::/64"; + }; + mail-01 = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + specialArgs = { inherit inputs outputs; }; + modules = [ + ./hosts/mail-01 + ]; + }; }; colmenaHive = @@ -187,7 +200,6 @@ { imports = [ inputs.disko.nixosModules.disko - inputs.nixos-mailserver.nixosModules.mailserver inputs.sops-nix.nixosModules.sops nixosModules.bandcamp-collection-downloader nixosModules.namespaced-vpn @@ -200,16 +212,12 @@ machineConfig ]; - deployment = - let - hostname = if name == "mail-01" then "mail" else name; - in - { - targetHost = "${hostname}.escapeangle.com"; - targetPort = 22; - targetUser = "root"; - buildOnTarget = true; - }; + deployment = { + targetHost = "${name}.escapeangle.com"; + targetPort = 22; + targetUser = "root"; + buildOnTarget = true; + }; } ); in diff --git a/hosts/hosting-01/default.nix b/hosts/hosting-01/default.nix index 8ffc673..1612e68 100644 --- a/hosts/hosting-01/default.nix +++ b/hosts/hosting-01/default.nix @@ -160,8 +160,7 @@ in enable = true; dbBackend = "postgresql"; config = { - DOMAIN = "https://bitwarden.kinkystar.com"; - ROCKET_PORT = 8222; + DOMAIN = "bitwarden.kinkystar.com"; }; environmentFile = config.sops.secrets.vaultwarden.path; }; diff --git a/hosts/hosting-01/secrets.yaml b/hosts/hosting-01/secrets.yaml index d65e468..6a2a910 100644 --- a/hosts/hosting-01/secrets.yaml +++ b/hosts/hosting-01/secrets.yaml @@ -20,7 +20,7 @@ forgejo: mailer-password: ENC[AES256_GCM,data:sO8Tt1Smwcr8hME/zYs118DiUfbcmhKnT2FCyjyUZfId4cHfjvxHuqZIHvBSlec27sbCmxRBHeCJ3Can6IFCAA==,iv:kPmW6oFCRBEzKScpFrW3Z0xhFCRg+MpiA9qJozakHjE=,tag:9xCVN/wFjN8Kl95PSC9aXA==,type:str] oidc-secret: ENC[AES256_GCM,data:NeLfEXssdP5f4ff1uz3RwURw+OWAm3QgYz/EPpWb1aE+vIDIhPigiPem1+NrVvdBQ5uysL3VdnLtJPxwppcouoT7VGJkcog+,iv:eCl4I7EC7GTeQNSthk5QrMqNl1B9qvGGxQTspjD+LEU=,tag:qyPKf7E5xNmUI913Fb8n8A==,type:str] mealie-env: ENC[AES256_GCM,data:3fZJffJs/WwtmMirHBRkghfPPkTB5sgY6oWNs5GUbkUzOooWurOvm0OcQHAEQf+HLn21kCOk/ilmlrcdMFtzXijClpHuy8n7cwmdGI0bwZ14QPCVlSYvSPisjX0=,iv:tc77J3T4tNGzBnXNBlq4wmfFMFQ44ZFEtl2N1QAt77U=,tag:hW7YceS5/GQveJj8fcf5uA==,type:str] -vaultwarden: ENC[AES256_GCM,data:6yLk6ip/Bd/469XNDYq5kKl+fPy8/+9Ybhruyly0HopNXbrBmzfAkAhuP0geZZTeAkxp2k/nn8vQ9I10QwzQ5Si0RhQWWidUdd2VyAlDlppiGBhtpeiY3J/2tlEGH1rf1O0NL23oGtqvRe4mEMZtyqK6YPYv7skOjaV5mzxu97psTQlqnOOAaisIVN/LqmKmzR72T3/SxlN8I0JzMneICfSLcwEp2//qVplqvTwTQgWziMf/Gkf2kkbugKRWSbp7sQ6cel2Gk2zyREx86biTje6nOjZ5goT2dcXzGexp6bzFb+XKu1Zj5wfY7dmvxZzMyigm4SSkjLd0Fh0QxU9cEiMAe5Max8c0i4Nqfh3Y1JZFj5sMS7e34oERMSA5wNu0l9hTaM5AYWiNPpvi4T3kLlguX5oerWvZWzeQT53soZF2iKdah2+J/0Wck8FRU3JXhC56XfIb,iv:AFzQvZnD8Aswoshp6X3AFkdxRCvL7rbClMwoW9C8epA=,tag:+W4t7W59LQMc3JzwoaAAcA==,type:str] +vaultwarden: ENC[AES256_GCM,data:8mv//++mIkbJHrREx0ESy038tU/ZS7EE5OCxOXLufxogr891fx4wFSTrVT2QRQ9+iLsdmSI9h5ug7SUiZ7layga2pJp502luOJZOXATYnGj9Bn8z8Nlrz9RkbbuUy7pY/6Ka66DxXzoukO3djhaSfTvt1DvJvlwOMvS94C6rA+Dpf5IzuZeaomTg1GWHAvfLgypCyQy973WHh1ZHLaTv7wMJYq9ZDoU5aw==,iv:HvsKgWjyzRKDE9BiQLIa4v6JhvS3BS8QAOVPCvmlfgE=,tag:l5vT78Xe0GRpo4JA/QtqFQ==,type:str] sops: age: - recipient: age18g4z53ykxzq35dsjq3a2np4f88xwat0kwtax229l3zn0ykhlpvqqy8fgtv @@ -32,8 +32,8 @@ sops: NW9CUkJQbis1NmpyU0xrb3J4UVNKTDgKsPFnlQBa8LGm6s8uZsUXq9RIt4WzzROc mz9dEVq/R54xvjMRltgzZyu54BWWOQYgkZUEhOnDoqwVnA7XwGGYtA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-10-21T09:26:44Z" - mac: ENC[AES256_GCM,data:yiWDzGJj/Yuq/Y8DvE+muEGiynr8TI0RkX2YAu3KdloSvtAvjBRbc3kkyFqEAjLA9EKJAhb+0O00Ugul5uo0icw8PMBOBg2lMgLGcW7w531O1DgSgoVloUNRp+YlAnFQMkBO/euRwWOgfHmp3Usj4NmnUStTXuZUH225EeSBYkE=,iv:dPnfHLkgpp/AyuAAY4r13toPlMa5myzo3ubNDDN8Ya0=,tag:FaA31H6Rd8RUJvixsIo9BQ==,type:str] + lastmodified: "2025-10-14T13:26:58Z" + mac: ENC[AES256_GCM,data:+3VBgbv7jeeeH8K8CXQCIXgbazGG98KJvglzHSQhpRY6P14EuF0xi8tkeSD69IfrfoATHNcV5QUppNMYB6DBWl3JClhuPRKkp2wQsCUE3OxsMgxuMxSjNXt+5UJvNJ3kCtfoX7Nm/8ammCK5x8lIQJdFleTMK9r6Am2QQy4HGOY=,iv:dsTWs5Ym5nmhZjrhAHC3qzPZAHeHfZuXdOukatJBKSs=,tag:OhrCtGP/cE8+GSAURo9gag==,type:str] pgp: - created_at: "2025-07-06T18:28:35Z" enc: |- @@ -47,4 +47,4 @@ sops: -----END PGP MESSAGE----- fp: 4BE1257015580BAB9F4B9D5FCA5B1C34E649BF92 unencrypted_suffix: _unencrypted - version: 3.11.0 + version: 3.10.2 diff --git a/hosts/mail-01/default.nix b/hosts/mail-01/default.nix new file mode 100644 index 0000000..51384ef --- /dev/null +++ b/hosts/mail-01/default.nix @@ -0,0 +1,101 @@ +{ inputs, config, ... }: +let + floatingIPv4 = "78.47.245.200"; +in +{ + imports = [ + ./disk-config.nix + { + _module.args.disks = [ "/dev/sda" ]; + } + + inputs.nixos-mailserver.nixosModules.mailserver + + ../common/servers + ]; + + time.timeZone = "Europe/Berlin"; + + networking.hostName = "mail-01"; + networking.interfaces.enp1s0 = { + ipv4.addresses = [ + { + address = floatingIPv4; + prefixLength = 32; + } + ]; + }; + networking.defaultGateway = { + address = "172.31.1.1"; + interface = "enp1s0"; + }; + networking.nameservers = [ "8.8.8.8" ]; + + sops.secrets.mail-password-lander = { + owner = "root"; + group = "root"; + sopsFile = ./secrets.yaml; + }; + + sops.secrets.mail-password-authelia = { + owner = "root"; + group = "root"; + sopsFile = ./secrets.yaml; + }; + + sops.secrets.mail-password-forgejo = { + owner = "root"; + group = "root"; + sopsFile = ./secrets.yaml; + }; + mailserver = { + + enable = true; + fqdn = "mail.escapeangle.com"; + domains = [ "escapeangle.com" ]; + + loginAccounts = { + "lander@escapeangle.com" = { + hashedPasswordFile = config.sops.secrets.mail-password-lander.path; + + aliases = [ + "postmaster@escapeangle.com" + ]; + + catchAll = [ + "escapeangle.com" + ]; + }; + + "authelia@escapeangle.com" = { + hashedPasswordFile = config.sops.secrets.mail-password-authelia.path; + }; + + "forgejo@escapeangle.com" = { + hashedPasswordFile = config.sops.secrets.mail-password-forgejo.path; + }; + }; + + extraVirtualAliases = { + "abuse@escapeangle.com" = "lander@escapeangle.com"; + }; + + certificateScheme = "acme-nginx"; + + enableImap = true; + enableImapSsl = true; + + enableManageSieve = true; + + virusScanning = true; + }; + + services.postfix.config = { + "smtp_bind_address" = floatingIPv4; + }; + + security.acme.defaults.email = "landervandenbulcke@gmail.com"; + security.acme.acceptTerms = true; + + system.stateVersion = "24.11"; +} diff --git a/hosts/mail-01/disk-config.nix b/hosts/mail-01/disk-config.nix new file mode 100644 index 0000000..aa2e1fa --- /dev/null +++ b/hosts/mail-01/disk-config.nix @@ -0,0 +1,52 @@ +{ + lib, + disks ? [ "/dev/sda" ], + ... +}: +{ + disko.devices = { + disk = lib.genAttrs disks (disk: { + device = disk; + type = "disk"; + content = { + type = "gpt"; + partitions = { + boot = { + name = "boot"; + size = "256M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + main = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; # override existing partition + subvolumes = { + "/" = { + mountOptions = [ "compress=zstd" ]; + mountpoint = "/"; + }; + "/home" = { + mountOptions = [ "compress=zstd" ]; + mountpoint = "/home"; + }; + "/nix" = { + mountOptions = [ + "compress=zstd" + "noatime" + ]; + mountpoint = "/nix"; + }; + }; + }; + }; + }; + }; + }); + }; +} diff --git a/hosts/mail-01/secrets.yaml b/hosts/mail-01/secrets.yaml new file mode 100644 index 0000000..d36843c --- /dev/null +++ b/hosts/mail-01/secrets.yaml @@ -0,0 +1,30 @@ +mail-password-lander: ENC[AES256_GCM,data:6A0pw04sdzAAE2dakrGt68OkYzMFzeY1fKBAAIcO6PF1Sbna+6JbdIjikuN7ucdEGC+cPBpHNaWM8ZuZ,iv:LC4WSSAWW4uEFGHiDiZG5Q1mQgQnp28WngFyE4sECI8=,tag:gcDe1+PX9Zbe7Uu6RXJ8Ng==,type:str] +mail-password-authelia: ENC[AES256_GCM,data:pbI48v40B8Sehrl28HuZKEdw0nK4pmn7O8FveQzCh/C5+kkbg1QBG6facY58+mvsHXJ5pBZNfPp9uAV9,iv:zZkwl+dDzY0ynun0Pgm5lVB+YZIGFnGr/nNTRE9IgHc=,tag:KmuBl1E8/80yvzP9IAGlnw==,type:str] +mail-password-forgejo: ENC[AES256_GCM,data:arHdupQdSSJgVzcjJdYZ3gB51VfdABk8VNa9tuc9ayerfoOCPn7ydt8eS/qg7XX5fKsH+/5h4q9N/Etw,iv:cc+mqg0ETTikuwXC/i8vKea2k7Ph9Dx7fQOb2iHAOk8=,tag:/bxU7tArkKtv33HPeyxauA==,type:str] +sops: + age: + - recipient: age1u2a7wakgsyct6ed7ah2pksymh7jjl08ankedeyl5pa5jcs8r0uks02jpza + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrUXBtSzJiYXhZMStON3dj + MTlXdE5BaVRWalAzUDBxRWpDT3dWTmRLNFVnCnN0cGc3Qkt5YXRTTHJCaGVIQjgw + NVozQzZDTE5TNUpsa3cyVU9mNEdWOUEKLS0tIG1FWkkrQ0s1TlV1VkIxR2RjRXFw + bG9hd3RXaERsYU5RaCtiOVYrcFlvam8Ky3iq96BO4uMiYLpZ903UCJYfByQIMtI5 + YNDVMgIqVI9vVDq1BnPqyOssHJ7FO69i+BUSSrjqZKsyAjknqPmvoA== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-07-08T10:48:10Z" + mac: ENC[AES256_GCM,data:8BkeK7uMlWWulKvr1aEcKDpDsHntIVTIz37qePaSSby3zOVu6agc4VwNVNk4tbCLvuXJS+ULPUltkAfh9qffsFJe5X+Jd7ZnvEd5IBMJGdWDDtP1iYSMgga9aYfl/hE030xSo6Utblprf2KGw+KpHEeCViFvU6+oJFqTB/Vwekc=,iv:97YBIUh9HjLIwoGFB1oDiLC6OqwRK1POeksDxE+Ierc=,tag:ZBBb4k5tJdqI/HcZCfKoLg==,type:str] + pgp: + - created_at: "2025-01-17T23:46:22Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DARdpY4woM6wSAQdAKAJEIw16NdGquumUwVQeZeHWaQixvg6z/BiWYhkdmRAw + U7r4y86ZTf/Am1D+N+mMSZTWB0ncKjgfS8nzvHyFKHUkBMmJhIwtVNxlIoWe4+xc + 0l4BC+s5Mk8rhkofbq+fw6k5dwVF5HxqE7o9JK9ntbOkyHGsblQd9PsIyvr6pXt+ + Edllt9Ol/oJC+T+Sv3O2Y21y9ZzNJoleGv7UaFvgQ1+9nksYTbYRHLGh7w0B+xSH + =YYVU + -----END PGP MESSAGE----- + fp: 4BE1257015580BAB9F4B9D5FCA5B1C34E649BF92 + unencrypted_suffix: _unencrypted + version: 3.10.2 diff --git a/hosts/servers/common.nix b/hosts/servers/common.nix index 87e9701..26590f1 100644 --- a/hosts/servers/common.nix +++ b/hosts/servers/common.nix @@ -86,9 +86,6 @@ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPnthKtz0fE4yQ/X10cJgKVCjYCNkRNoqV28xAhD7h2M cardno:22_498_026" ]; - security.acme.defaults.email = "landervandenbulcke@gmail.com"; - security.acme.acceptTerms = true; - nix = { settings = { trusted-users = [ "lander" ]; diff --git a/hosts/servers/db-01.nix b/hosts/servers/db-01.nix index 5bbd2c5..b22f2b8 100644 --- a/hosts/servers/db-01.nix +++ b/hosts/servers/db-01.nix @@ -1,12 +1,5 @@ { config, pkgs, ... }: { - - systemd.network.networks."30-wan".addresses = [ - { - Address = "2a01:4f8:c012:15d4::/64"; - } - ]; - services.postgresql = { enable = true; enableTCPIP = true; diff --git a/hosts/servers/hosting-02.nix b/hosts/servers/hosting-02.nix index 603c55d..25d8374 100644 --- a/hosts/servers/hosting-02.nix +++ b/hosts/servers/hosting-02.nix @@ -5,13 +5,6 @@ ... }: { - - systemd.network.networks."30-wan".addresses = [ - { - Address = "2a01:4f8:c013:7fc0::/64"; - } - ]; - networking.firewall = { enable = true; allowedTCPPorts = [ @@ -153,5 +146,8 @@ }; }; + security.acme.defaults.email = "landervandenbulcke@gmail.com"; + security.acme.acceptTerms = true; + system.stateVersion = "25.05"; } diff --git a/hosts/servers/mail-01.nix b/hosts/servers/mail-01.nix deleted file mode 100644 index 32cc880..0000000 --- a/hosts/servers/mail-01.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ config, lib, ... }: -let - floatingIPv4 = "78.47.245.200"; -in -{ - systemd.network.networks."30-wan".addresses = [ - { - Address = "${floatingIPv4}/32"; - } - { - Address = "2a01:4f8:c012:976d::/64"; - } - ]; - - mailserver = { - enable = true; - fqdn = "mail.escapeangle.com"; - domains = [ - "escapeangle.com" - "kinkystar.com" - ]; - - loginAccounts = { - "lander@escapeangle.com" = { - hashedPasswordFile = config.sops.secrets.mail-password-lander.path; - - aliases = [ - "postmaster@escapeangle.com" - ]; - - catchAll = [ - "escapeangle.com" - ]; - }; - - "authelia@escapeangle.com" = { - hashedPasswordFile = config.sops.secrets.mail-password-authelia.path; - }; - - "forgejo@escapeangle.com" = { - hashedPasswordFile = config.sops.secrets.mail-password-forgejo.path; - }; - - "bitwarden@kinkystar.com" = { - hashedPasswordFile = config.sops.secrets.mail-password-kinkystar-bitwarden.path; - sendOnly = true; - }; - }; - - extraVirtualAliases = { - "abuse@escapeangle.com" = "lander@escapeangle.com"; - }; - - certificateScheme = "acme-nginx"; - - enableImap = true; - enableImapSsl = true; - - enableManageSieve = true; - - virusScanning = true; - }; - - services.postfix = { - config = { - inet_protocols = "ipv4"; - smtp_bind_address = floatingIPv4; - - mydestination = lib.mkForce [ - "localhost" - "escapeangle.com" - ]; - - virtual_mailbox_domains = lib.mkForce (builtins.toFile "vhosts" "escapeangle.com"); - }; - - localRecipients = [ "@escapeangle.com" ]; - }; - - sops = { - defaultSopsFile = ./mail-01.yaml; - validateSopsFiles = false; - - secrets = { - mail-password-lander = { - owner = "root"; - group = "root"; - }; - - mail-password-authelia = { - owner = "root"; - group = "root"; - }; - - mail-password-forgejo = { - owner = "root"; - group = "root"; - }; - - mail-password-kinkystar-bitwarden = { - owner = "root"; - group = "root"; - }; - }; - }; - - system.stateVersion = "24.11"; -} diff --git a/hosts/servers/mail-01.yaml b/hosts/servers/mail-01.yaml deleted file mode 100644 index a7483f1..0000000 --- a/hosts/servers/mail-01.yaml +++ /dev/null @@ -1,31 +0,0 @@ -mail-password-lander: ENC[AES256_GCM,data:eSsuEoAyIAL41qCD9SoqwqPsgkYM43Dp/OEatNZ42ocv5neVXBk2QyIYmZWp48vUwBOUwhzTVvV8yZov,iv:AKoosg/0Zf3OkhTiEJQkFjnG6JuQL7EdoUEmEIzsSjE=,tag:jQtTk6kQdYXqYNDDWss8Ig==,type:str] -mail-password-authelia: ENC[AES256_GCM,data:JCSPMP2DMFeb7fdBbkLhj35A3C6h4PmHSKgIuRrrfVlLPHXA+FyhQrl8P3hxdrFiFB1vr+G4ftOcoeZa,iv:Vk1xWJNrETCBKLqijE+Ftc7+hOg5u7KdcdqngIq9ZCE=,tag:pNubO1GLaiegRLAkU6rw4Q==,type:str] -mail-password-forgejo: ENC[AES256_GCM,data:8BQcs6getbwXLvSTJ+j5j1XyS54qa9XMsyVvGaRocNUIgNnjhGndOVtEa2HfdXouIspbBP2rEY/yWRQj,iv:H87iJeDxR5n1VcdCtvVe29VJbvB2xfZE/DyIsl8pzzY=,tag:kIWsl2Rh0If1/8E22qf2BA==,type:str] -mail-password-kinkystar-bitwarden: ENC[AES256_GCM,data:GhhF3k4awem4qldNqX6iInXOq8WVdHg0BKgzr9gq2KjHByAmDwIE5YtsQhHBZe73uUgyKryLBkqDdr/o,iv:wMLuJ/H/ChUKX5CcY6c+gV+kNKIEpqnZMbRd2QlFCNI=,tag:eJTE7iRVjSzaQD6bcLz+MQ==,type:str] -sops: - age: - - recipient: age1u2a7wakgsyct6ed7ah2pksymh7jjl08ankedeyl5pa5jcs8r0uks02jpza - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4TWFSZnBDcHk2YkZ1SUlx - aTBMZXdDajlGY3diUlRJcElJN3Z2T1B6M25rClFHVS9yU1NyZTl1L21QaVFiNmtR - V1liS3NWVERzcGpBclk0SHZaOEVZOTgKLS0tIHZKckRDaDd3ajFNQWw4cUNPeElx - MjI1UTlRRXdVaE5oSHBVRy9hcFNESzAKhdgGeeLl+BhslAFJmChAy7Ht+CPmZQqo - 0Km8AGCKAmOQWEym0yRW/rKp35sOla4PQ4JWGlthNhcqyR2Kd916OQ== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-10-21T08:56:35Z" - mac: ENC[AES256_GCM,data:6ICy3l8BoHAi4NB3VbfiVs7PJdrqgloQUaLWKGam8Qp2gfzTYDm1TQaH/FjAgfE7AtTa5v0CRb0X/+emBpWdh1Swf4sGL/ILyNNSmg1E/mu0/z0FpzSSbCy4JpBwn8aCrUZ6oX/zMobwbNCBBsmhqhFRt8FNDcUeYxkfk3MofnU=,iv:Y8hfwcOCzr7tB2hRosDZsNg5aPUMRlZPnet6YzHpjts=,tag:ypNhw2+VLgx2gqWAG2NH2w==,type:str] - pgp: - - created_at: "2025-10-21T06:31:32Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DARdpY4woM6wSAQdA/Ndn97s0tXWWExKKZS97MBYSoUlgJNysXtHWVMWBfRsw - NtHXaGCHfWTTfVYyM4gZ3uIGdxAJSKafac54AgttzP/XOObv4bkE94eWSdFhwK2a - 0l4BqfqGy3OQmwuwbKjrZJ1HpQ7YvyDdwuHgG+t5fXc7g46DYgn6XkYVVY+nGas2 - o6HxRApdHgXu0V8d9bcZtXaJXBjSW0RllTT5zeHX7kTqtFR9cg7hsggbvrbkqcmN - =xqTz - -----END PGP MESSAGE----- - fp: 4BE1257015580BAB9F4B9D5FCA5B1C34E649BF92 - unencrypted_suffix: _unencrypted - version: 3.11.0