From af724bb96ff69bbbeadf6308cb5b6583e2c46811 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Tue, 2 Apr 2024 20:31:41 +0800 Subject: [PATCH] introduce gcp-instance-1 Signed-off-by: iosmanthus --- flake.nix | 23 ++++ infra/aws-lightsail/outputs.tf | 4 +- infra/cloudflare/main.tf | 4 +- infra/gcp/.terraform.lock.hcl | 27 ++--- infra/gcp/gce/main.tf | 104 +++++++++++++++++ infra/gcp/gce/outputs.tf | 9 ++ infra/gcp/gce/provider.tf | 7 ++ infra/gcp/gce/variables.tf | 23 ++++ infra/gcp/gce/versions.tf | 8 ++ infra/gcp/main.tf | 109 +++--------------- infra/gcp/outputs.tf | 18 ++- infra/gcp/provider.tf | 2 - infra/gcp/terraform.tfvars | 2 - infra/gcp/variables.tf | 8 -- modules/cloud/sing-box/default.nix | 3 +- .../chatgpt-next-web/default.nix | 6 +- nixos/gcp-instance-1/default.nix | 13 +++ packages/subgen/default.nix | 2 + secrets/aws-lightsail-0/secrets.yaml | 6 +- secrets/endpoints/secrets.yaml | 35 +++--- secrets/endpoints/update-ip.py | 63 +++++----- secrets/gcp-instance-0/.sops.yaml | 2 +- secrets/gcp-instance-0/secrets.yaml | 66 +++++------ secrets/gcp-instance-1/.sops.yaml | 8 ++ secrets/gcp-instance-1/default.nix | 26 +++++ secrets/gcp-instance-1/secrets.yaml | 57 +++++++++ secrets/workstation/secrets.yaml | 6 +- secrets/workstation/sing-box | 8 +- 28 files changed, 426 insertions(+), 223 deletions(-) create mode 100644 infra/gcp/gce/main.tf create mode 100644 infra/gcp/gce/outputs.tf create mode 100644 infra/gcp/gce/provider.tf create mode 100644 infra/gcp/gce/variables.tf create mode 100644 infra/gcp/gce/versions.tf create mode 100644 nixos/gcp-instance-1/default.nix create mode 100644 secrets/gcp-instance-1/.sops.yaml create mode 100644 secrets/gcp-instance-1/default.nix create mode 100644 secrets/gcp-instance-1/secrets.yaml diff --git a/flake.nix b/flake.nix index 0c4a3b3..288f197 100644 --- a/flake.nix +++ b/flake.nix @@ -245,6 +245,29 @@ } ]; }; + + gcp-instance-1 = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit self; + }; + modules = [ + ./secrets/gcp-instance-1 + ./nixos/gcp-instance-1 + + sops-nix.nixosModules.sops + + self.nixosModules.cloud.gce + self.nixosModules.cloud.sing-box + self.nixosModules.o11y + + { + nixpkgs.overlays = [ + self.overlays.default + ]; + } + ]; + }; }; } // flake-utils.lib.eachSystem [ "x86_64-linux" ] diff --git a/infra/aws-lightsail/outputs.tf b/infra/aws-lightsail/outputs.tf index c582f80..fe77fab 100644 --- a/infra/aws-lightsail/outputs.tf +++ b/infra/aws-lightsail/outputs.tf @@ -1,9 +1,9 @@ -output "external_address_v4" { +output "aws_lightsail_0_external_address_v4" { value = aws_lightsail_static_ip.main.ip_address sensitive = true } -output "external_address_v6" { +output "aws_lightsail_0_external_address_v6" { value = aws_lightsail_instance.main.ipv6_addresses[0] sensitive = true } diff --git a/infra/cloudflare/main.tf b/infra/cloudflare/main.tf index 41ac967..0d06118 100644 --- a/infra/cloudflare/main.tf +++ b/infra/cloudflare/main.tf @@ -12,7 +12,7 @@ data "terraform_remote_state" "aws_lightsail" { resource "cloudflare_record" "aws_lightsail" { for_each = local.records - value = data.terraform_remote_state.aws_lightsail.outputs.external_address_v4 + value = data.terraform_remote_state.aws_lightsail.outputs.aws_lightsail_0_external_address_v4 zone_id = each.value name = each.key type = "A" @@ -21,7 +21,7 @@ resource "cloudflare_record" "aws_lightsail" { resource "cloudflare_record" "aws_lightsail_v6" { for_each = local.records - value = data.terraform_remote_state.aws_lightsail.outputs.external_address_v6 + value = data.terraform_remote_state.aws_lightsail.outputs.aws_lightsail_0_external_address_v6 zone_id = each.value name = each.key type = "AAAA" diff --git a/infra/gcp/.terraform.lock.hcl b/infra/gcp/.terraform.lock.hcl index 667e67e..c250d52 100644 --- a/infra/gcp/.terraform.lock.hcl +++ b/infra/gcp/.terraform.lock.hcl @@ -2,21 +2,22 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/hashicorp/google" { - version = "5.21.0" + version = "5.22.0" + constraints = "5.22.0" hashes = [ - "h1:6usUS5cjmiWM5GZfLlvPITj2fkKoCg/8apAD2K649vg=", - "zh:4185b880504af117898f6b0c50fd8459ac4b9d5fd7c2ceaf6fc5b18d4d920978", - "zh:56bbb4ae9cfbd1a9c3008e911605f1edccfa6a1048d88dba0c92f347441d274d", - "zh:59246baa783208f5b51ad9d4a4008a327128e234f4a8d1d629cf0af6ae6a9249", - "zh:989e7e07a46e486f791a82f20bf0a2f73b64464fe6a97925edc164eeee33d980", - "zh:9945cce3c36e4e95c74a2f71c38cb0d042014bef555fdeb07e6d92bc624b7567", - "zh:b276a2e6ba9a9d2cd3127b6cc9a9cdf6cca2db1fbe4ad4a5332025ae3c7c9bb6", - "zh:d1af7f76ef64a808dcaeabbeb74f27a7925665082209db019ca79e6e06fe3ab2", - "zh:d7954e905704b4f158c592e0d8c3d8d54a9edd6f8392d2fa3dfc9f0fe29795d8", - "zh:e85724a917887ac00112ca4edafdc2b233c787c2892f386dafa9dfd3215083c0", - "zh:ebadb8e5b387914e118ecbf83e08a72d034fe069e9e5b0cefa857b758479f835", + "h1:zofkDA/M6eZUxcKo7GT2VW/EbddlpYrcxaeapDmJqaw=", + "zh:12fce1e8b7d4cfb150142185ce99165ca3854526f7d826106ec09ba77ef9bab1", + "zh:1ecaff54cf7fecc41d89b130a066e903fd1353a1a476c816ad2b2013b1664776", + "zh:294091d1d0b87b99f9bdfdd42eae769fa44930680a3cefff0ff2f43741fefa53", + "zh:373e7a4127c7fef671a226764bb5f5ebc94823b19f65d8e2370b4c75e43eb2b3", + "zh:7121c14b7a59b07386d09e9ca19160a453680c32708f1132e904d56f8c697a65", + "zh:7d8316fec69a284dae43b3f107798e62478b8d1de9b3197e45b49e99b14bfc27", + "zh:8186df47dcbf112dfd54e3310056a955c422277ccbe369f6074f8c65ecb724dc", + "zh:967dc4f14fb1ad1673befd3e40a181a0bf18cb212822cab1dc9f8b44235fc766", + "zh:9dac1ec8aa80c49189e2dd59ce338c14330da685782fcb261e62c2b2d1b90e26", + "zh:c309f86d35945c02ed2fdb71348cd03fc99a6aaeedfad035b01bad78222e3eda", + "zh:eb46d32b5fa33d8fa7e2cded4ea5b815d66a202754a7afc8ad7c93aa08d13919", "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - "zh:fb38ef67430bcf8e07144f77b76b47df35acd38f5e553fe7104ecfe54378bb9e", ] } diff --git a/infra/gcp/gce/main.tf b/infra/gcp/gce/main.tf new file mode 100644 index 0000000..3d98fba --- /dev/null +++ b/infra/gcp/gce/main.tf @@ -0,0 +1,104 @@ +resource "random_id" "revision" { + keepers = { + creation_timestamp = "20240320173139" + } + byte_length = 4 +} + +data "google_service_account" "default" { + account_id = var.google_service_account_id +} + +resource "random_id" "ip_revision" { + keepers = { + ip_revision = var.ip_revision + } + byte_length = 4 +} + +resource "google_compute_address" "main_external_ip_v4" { + name = "external-ip-v4-${random_id.revision.hex}-${random_id.ip_revision.hex}" + + region = var.google_region +} + +resource "google_compute_subnetwork" "dual_stack" { + region = var.google_region + name = "dual-stack-${random_id.revision.hex}" + ip_cidr_range = "10.0.0.0/22" + stack_type = "IPV4_IPV6" + ipv6_access_type = "EXTERNAL" + + network = google_compute_network.main.id +} + +resource "google_compute_network" "main" { + name = "main-${random_id.revision.hex}" + auto_create_subnetworks = false +} + +resource "google_compute_firewall" "main" { + name = "main-${random_id.revision.hex}" + network = google_compute_network.main.name + + allow { + protocol = "icmp" + } + + allow { + protocol = "tcp" + ports = ["22", "443", "6626", "10080"] + } + + source_ranges = ["0.0.0.0/0"] +} + +resource "google_compute_firewall" "main_v6" { + name = "main-v6-${random_id.revision.hex}" + network = google_compute_network.main.name + + allow { + protocol = "58" + } + + allow { + protocol = "tcp" + ports = ["22", "443", "6626", "10080"] + } + + source_ranges = ["::/0"] +} + +resource "google_compute_instance" "main" { + name = "instance-${random_id.revision.hex}" + machine_type = "e2-micro" + + enable_display = true + allow_stopping_for_update = true + + boot_disk { + initialize_params { + image = var.vm_image + type = "pd-balanced" + size = 40 + } + } + + + network_interface { + subnetwork = google_compute_subnetwork.dual_stack.self_link + stack_type = "IPV4_IPV6" + ipv6_access_config { + network_tier = "PREMIUM" + } + access_config { + nat_ip = google_compute_address.main_external_ip_v4.address + } + } + + service_account { + # Google recommends custom service accounts that have cloud-platform scope and permissions granted via IAM Roles. + email = data.google_service_account.default.email + scopes = ["cloud-platform"] + } +} diff --git a/infra/gcp/gce/outputs.tf b/infra/gcp/gce/outputs.tf new file mode 100644 index 0000000..05485e4 --- /dev/null +++ b/infra/gcp/gce/outputs.tf @@ -0,0 +1,9 @@ +output "external_address_v4" { + value = google_compute_address.main_external_ip_v4.address + sensitive = true +} + +output "external_address_v6" { + value = google_compute_instance.main.network_interface[0].ipv6_access_config[0].external_ipv6 + sensitive = true +} diff --git a/infra/gcp/gce/provider.tf b/infra/gcp/gce/provider.tf new file mode 100644 index 0000000..ac662bc --- /dev/null +++ b/infra/gcp/gce/provider.tf @@ -0,0 +1,7 @@ +provider "google" { + project = var.google_project + region = var.google_region + zone = var.google_zone + + user_project_override = true +} diff --git a/infra/gcp/gce/variables.tf b/infra/gcp/gce/variables.tf new file mode 100644 index 0000000..5d4f393 --- /dev/null +++ b/infra/gcp/gce/variables.tf @@ -0,0 +1,23 @@ +variable "google_project" { + type = string +} + +variable "google_region" { + type = string +} + +variable "google_zone" { + type = string +} + +variable "google_service_account_id" { + type = string +} + +variable "vm_image" { + type = string +} + +variable "ip_revision" { + type = string +} diff --git a/infra/gcp/gce/versions.tf b/infra/gcp/gce/versions.tf new file mode 100644 index 0000000..4bade65 --- /dev/null +++ b/infra/gcp/gce/versions.tf @@ -0,0 +1,8 @@ +terraform { + required_providers { + google = { + source = "hashicorp/google" + version = "5.22.0" + } + } +} diff --git a/infra/gcp/main.tf b/infra/gcp/main.tf index 5b04239..64f1cf6 100644 --- a/infra/gcp/main.tf +++ b/infra/gcp/main.tf @@ -1,10 +1,3 @@ -resource "random_id" "revision" { - keepers = { - creation_timestamp = "20240320173139" - } - byte_length = 4 -} - data "google_service_account" "default" { account_id = var.google_service_account_id } @@ -26,96 +19,26 @@ resource "google_compute_image_iam_binding" "binding" { ] } -resource "random_id" "ip_revision" { - keepers = { - creation_timestamp = "20240320174539" - } - byte_length = 4 -} - -resource "google_compute_address" "main_external_ip_v4" { - name = "external-ip-v4-${random_id.revision.hex}-${random_id.ip_revision.hex}" - - region = var.google_region -} - -resource "google_compute_subnetwork" "dual_stack" { - region = var.google_region - name = "dual-stack-${random_id.revision.hex}" - ip_cidr_range = "10.0.0.0/22" - stack_type = "IPV4_IPV6" - ipv6_access_type = "EXTERNAL" - - network = google_compute_network.main.id -} - -resource "google_compute_network" "main" { - name = "main-${random_id.revision.hex}" - auto_create_subnetworks = false -} - -resource "google_compute_firewall" "main" { - name = "main-${random_id.revision.hex}" - network = google_compute_network.main.name - - allow { - protocol = "icmp" - } - - allow { - protocol = "tcp" - ports = ["22", "443", "6626", "10080"] - } - - source_ranges = ["0.0.0.0/0"] -} - -resource "google_compute_firewall" "main_v6" { - name = "main-v6-${random_id.revision.hex}" - network = google_compute_network.main.name +module "gcp_instance_0" { + source = "./gce" - allow { - protocol = "58" - } + google_project = var.google_project + google_service_account_id = var.google_service_account_id + vm_image = google_compute_image.nixos.self_link - allow { - protocol = "tcp" - ports = ["22", "443", "6626", "10080"] - } - - source_ranges = ["::/0"] + google_region = "asia-east1" + google_zone = "asia-east1-b" + ip_revision = "20240401172200" } -resource "google_compute_instance" "main" { - name = "instance-${random_id.revision.hex}" - machine_type = "e2-micro" - - enable_display = true - allow_stopping_for_update = true - - boot_disk { - initialize_params { - image = google_compute_image.nixos.self_link - type = "pd-balanced" - size = 40 - } - } +module "gcp_instance_1" { + source = "./gce" + google_project = var.google_project + google_service_account_id = var.google_service_account_id + vm_image = google_compute_image.nixos.self_link - network_interface { - subnetwork = google_compute_subnetwork.dual_stack.self_link - stack_type = "IPV4_IPV6" - ipv6_access_config { - network_tier = "PREMIUM" - } - access_config { - nat_ip = google_compute_address.main_external_ip_v4.address - } - } - - service_account { - # Google recommends custom service accounts that have cloud-platform scope and permissions granted via IAM Roles. - email = data.google_service_account.default.email - scopes = ["cloud-platform"] - } + google_region = "us-west1" + google_zone = "us-west1-b" + ip_revision = "20240401173637" } diff --git a/infra/gcp/outputs.tf b/infra/gcp/outputs.tf index 05485e4..04ed62e 100644 --- a/infra/gcp/outputs.tf +++ b/infra/gcp/outputs.tf @@ -1,9 +1,19 @@ -output "external_address_v4" { - value = google_compute_address.main_external_ip_v4.address +output "gcp_instance_0_external_address_v4" { + value = module.gcp_instance_0.external_address_v4 sensitive = true } -output "external_address_v6" { - value = google_compute_instance.main.network_interface[0].ipv6_access_config[0].external_ipv6 +output "gcp_instance_0_external_address_v6" { + value = module.gcp_instance_0.external_address_v6 + sensitive = true +} + +output "gcp_instance_1_external_address_v4" { + value = module.gcp_instance_1.external_address_v4 + sensitive = true +} + +output "gcp_instance_1_external_address_v6" { + value = module.gcp_instance_1.external_address_v6 sensitive = true } diff --git a/infra/gcp/provider.tf b/infra/gcp/provider.tf index ac662bc..1d57027 100644 --- a/infra/gcp/provider.tf +++ b/infra/gcp/provider.tf @@ -1,7 +1,5 @@ provider "google" { project = var.google_project - region = var.google_region - zone = var.google_zone user_project_override = true } diff --git a/infra/gcp/terraform.tfvars b/infra/gcp/terraform.tfvars index 18cc95e..64bd92a 100644 --- a/infra/gcp/terraform.tfvars +++ b/infra/gcp/terraform.tfvars @@ -1,4 +1,2 @@ -google_zone = "asia-east1-b" -google_region = "asia-east1" google_project = "infra-417609" google_service_account_id = "440233887397-compute@developer.gserviceaccount.com" diff --git a/infra/gcp/variables.tf b/infra/gcp/variables.tf index 3380108..1ba16c6 100644 --- a/infra/gcp/variables.tf +++ b/infra/gcp/variables.tf @@ -2,14 +2,6 @@ variable "google_project" { type = string } -variable "google_region" { - type = string -} - -variable "google_zone" { - type = string -} - variable "google_service_account_id" { type = string } diff --git a/modules/cloud/sing-box/default.nix b/modules/cloud/sing-box/default.nix index 76698db..312423d 100644 --- a/modules/cloud/sing-box/default.nix +++ b/modules/cloud/sing-box/default.nix @@ -15,8 +15,9 @@ let "hulu" "netflix" "openai" - "youtube" "stripe" + "tiktok" + "youtube" ]; settings = { diff --git a/nixos/aws-lightsail-0/chatgpt-next-web/default.nix b/nixos/aws-lightsail-0/chatgpt-next-web/default.nix index 037ea74..2f264fb 100644 --- a/nixos/aws-lightsail-0/chatgpt-next-web/default.nix +++ b/nixos/aws-lightsail-0/chatgpt-next-web/default.nix @@ -4,9 +4,9 @@ }: let imageName = "gosuto/chatgpt-next-web-langchain"; - imageTag = "v2.11.2"; - imageDigest = "sha256:b1435d1e97741c0ffdd260e84595b0afebcc6889f3ec1f1f7b04d81e216848ef"; - imageSha256 = "sha256-3p/+rdFNbSzyFmP1ogK/GFGkSIK8EzY651ez/yy2rds="; + imageTag = "v2.11.3"; + imageDigest = "sha256:0838e87d66fdb24deab914d831855e30acc8d6548ac81a55145a6e58034ca231"; + imageSha256 = "sha256-KH3AXZPXLe24FV5P9Wty7TfP5VQcblOETq8KoNJbhDY="; in { sops.templates."chatgpt-next-web.env" = { diff --git a/nixos/gcp-instance-1/default.nix b/nixos/gcp-instance-1/default.nix new file mode 100644 index 0000000..b916045 --- /dev/null +++ b/nixos/gcp-instance-1/default.nix @@ -0,0 +1,13 @@ +{ ... }: { + virtualisation.docker.enable = true; + + services.self-hosted.o11y = { + enable = true; + hostName = "gcp-instance-1"; + }; + + services.self-hosted.cloud.sing-box = { + enable = true; + ingress = 10080; + }; +} diff --git a/packages/subgen/default.nix b/packages/subgen/default.nix index 4138a52..2476bfa 100644 --- a/packages/subgen/default.nix +++ b/packages/subgen/default.nix @@ -3,8 +3,10 @@ buildGoModule { pname = "subgen"; + version = "unstable-2023-12-15"; src = ./.; + vendorHash = "sha256-3FHiEFDSDr1KiEYAGWcdy6jgcasEMFh66Is7/6hbTFc="; } diff --git a/secrets/aws-lightsail-0/secrets.yaml b/secrets/aws-lightsail-0/secrets.yaml index 6418050..63a4a44 100644 --- a/secrets/aws-lightsail-0/secrets.yaml +++ b/secrets/aws-lightsail-0/secrets.yaml @@ -42,7 +42,7 @@ chatgpt-next-web: openai-api-key: ENC[AES256_GCM,data:UsDqrt0iCLXW9Ae40dS38K04irrBVOTLBa49TYP/I8pER5B04ltMfY/tVuNGF6xquxYa,iv:cym1Cq0bU5BmCVFxUwUYK8og2uVdpAiWpR02kz/bVXI=,tag:20b8LAdf7UaFvYjczL9NNQ==,type:str] google-api-key: ENC[AES256_GCM,data:2CckbsnFJ66Uz7qssxVvAQJ2QnKbIXhR+wikTie8mEKdWk3Sr+dN,iv:B++bS72KKr8lQDsKxdj/xQB7NFa6zZZcMwNTdRs6sE8=,tag:puP1EscL13O8t12RgMBcTQ==,type:str] google-cse-id: ENC[AES256_GCM,data:ZLr0b4WcIE5pa3RgCzzYb2Q=,iv:yo/PzNvzygRVcTEmbjh8hec/miJxmmdbFjiEIw6Xzic=,tag:5JLp8woSYBlIyN2FMzGk3g==,type:str] - password: ENC[AES256_GCM,data:Vatexw4VUkNJjT11eoecTaa3OIZtFEFFCaqSHKmC/84=,iv:hOP2ZtJmiKomu7D5Wm/TGn69SB0t5hkfI+vDLr3HDMY=,tag:sYUB0Srtwhs4HuEHsv6sHA==,type:str] + password: ENC[AES256_GCM,data:mRg/PB4cZ9d6VLHbCOOUQDZ6OHsCXQcP5D+R,iv:se+nCvKJgsKeKb9bFwOodsI11hIAHYiBlMrb1hMf/IM=,tag:qrk27X0D2oy+XS8XRdKC/Q==,type:str] sops: kms: [] gcp_kms: [] @@ -67,8 +67,8 @@ sops: QzVLR3duOUt2ZWpXR0xwV1Y0MjI3TncKHnOJ8NkBSVe7AaPn5isMMLJ1boXRM5gN FeQioIcIEsGRFyXOPXYdmxq/N3QBzM7viLafcq/XxZovA1qxZ3z5Fg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-03-20T11:42:40Z" - mac: ENC[AES256_GCM,data:+XTO4JsldWmNWE22ZPwZ73tIXNEU6KkDo+jgVKGRvhNZDT7w8PoKe9aa8DLe2+iuZBIZundyUR//1bhfkWkwvUJT0ZprEg4r5UrVKScGDN/wnzee3y9kQIVZTox/w3Jscu2t1j0PF+5Nm7KmLnwGvbeCuqZsgwdLPffuwCTJnWw=,iv:nxIKX8FGHIPl01d1Uqa8x3lRDv02UsF8XmkT1yP9zqc=,tag:s5CZ8CTeauQw08xL5aguQQ==,type:str] + lastmodified: "2024-04-02T08:23:04Z" + mac: ENC[AES256_GCM,data:nFuhMB+v/YBCvDTytmNVFVYChOr0CBRPC85WdDw7k+7DKiywUWvJ95t/V4Kr2oYXZyinSp5t9KeslMHK45kgUoaO6eu7FUhIUayBCYiUVDe0OIDOTne1qtIDYWSo1xTy61/Ee73h/qTRPHnbanYX2lT4lCLNJ2TizmyAH4EAAZM=,iv:a0RhmdL+0LdR5qsqgJhQXIInMrGDmIDrSZS/wGeJWiI=,tag:AWzHYYpsdc+uXmppUqpv9Q==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1 diff --git a/secrets/endpoints/secrets.yaml b/secrets/endpoints/secrets.yaml index d45dc43..43b7e0d 100644 --- a/secrets/endpoints/secrets.yaml +++ b/secrets/endpoints/secrets.yaml @@ -1,9 +1,12 @@ aws-lightsail-0: - external-address-v4: ENC[AES256_GCM,data:xPIyR9vkR1Vp+mkld0w=,iv:F29xWm8j2Qtx7KLUD07Un/aKKD5s8HGfgPBqs7+YXAo=,tag:VavfXGK4ofxMFTZR6lzM5w==,type:str] - external-address-v6: ENC[AES256_GCM,data:oXeQKX6tGVDAyeD7G7HgxUgNMCeUIWdPIyb3dV2VkGVC4cF742U=,iv:P77VP0fRqPe0ubFduLB+TStsFxltmeb8fN60ZdVwfW8=,tag:U7m3n8lt97XXvKGCpxFkNA==,type:str] + external-address-v4: ENC[AES256_GCM,data:qpxpL0x/WA0jWRhTJG8=,iv:0DT8oafpm202DIbV1Vs5R12l58Xmh5iFIUvGgtU/LVk=,tag:Lcua7BRlDTFoSofY+fNy0g==,type:str] + external-address-v6: ENC[AES256_GCM,data:HSQQJYveiONbqmrktUhPQR7//YhYvTsNDa6kt6Cea0dfwrisJQM=,iv:SZ6YLuHo6w/WTbroRkOXWpFYL3xK6Aw+v0c+7ZDd+w4=,tag:oKA4GSB+QjX8ZTrXQTb3Ww==,type:str] gcp-instance-0: - external-address-v4: ENC[AES256_GCM,data:WdX3kc+f8iQdSQCAjg==,iv:M+LLLNxtpc1dWF5cwbOrmAnQQg6WbKoDN6vRWoX0Y+0=,tag:W11dKzNBuotb0m/ELbJa4w==,type:str] - external-address-v6: ENC[AES256_GCM,data:9hbwjTqLycr9L5VgBK/NHckDxRnW4OIHWH50,iv:yDbgAPcYFlF1pd2v1jV9aUS5N32DCV2VaO5ET0HE4to=,tag:0T1ce83sdlV0XYIW8IuMew==,type:str] + external-address-v4: ENC[AES256_GCM,data:1qmrITJ9aBbEo79Icw==,iv:1DnSN5BTXFwu4IRO70ZEWsrqjV57xexJw+ZTG57Z3ug=,tag:eqjicg4GBlVZHRoeeC5tkQ==,type:str] + external-address-v6: ENC[AES256_GCM,data:qiBqIwGNozW/iEG+Vy+ZzO9O6MgTGhtdzoX7,iv:Pvf73rJz8yvu5wtN5Iy3jcI7wWs1Ce4+X0xkP1MLYbU=,tag:nACnBIJnugxjvlNMTO51yg==,type:str] +gcp-instance-1: + external-address-v4: ENC[AES256_GCM,data:YL/ihYbvbtypq34=,iv:gjqbWUsJ8pN/XXK3HJsJDk0yREZK0WdDv1dwF+/F1Gs=,tag:/ClcqHZkdSUmK9CjT2Acww==,type:str] + external-address-v6: ENC[AES256_GCM,data:5jdZhv4w2EDIA+BI7ybzGSyOa1JNdtMk9hsc,iv:Uls+zVrFmewnR+c/4EyWbHR+xqeW0S0GJCKjZssvUYw=,tag:0niDScEySz919magRkLhIA==,type:str] sops: kms: [] gcp_kms: [] @@ -13,23 +16,23 @@ sops: - recipient: age12409ktkdynl48p38wz45pu2s25kmffsw4p9d9vgt3xmmwl8f7q7sjlxyrs enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2NjMxUGU0Z2xuTTl0S3RC - bklWcndON3BwMUo3WE9WR0JKQmtKZXBTRUhRCk9NcWNXL1BUSEdIaEZQVVJzV0t6 - bW5wWW5lZUtUQnY2V3d2d1k5b0dpNFkKLS0tIC80akpFaE5VOS9vRmxJUDRiSnRO - YjBITnFxbGk3WGpxbTIwbXZWRmpRUGMKpXdfbeoKloz93oMi1qjCv6qEE5j+loXw - l7O7TpE+D/5k76zAesvnGjBbgNR5WwA5cz1B1QPKeCfYUaY0ZT6wiQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIVzg4YUd4dmNteWs3c0JI + ZVk3UEM4OGtobDhJeU1yY3FVWFJEdUtyQVZVCmdNTlI4dzc0U29RZWYyTDJmSjFv + Rk9NUmlGQ1AySXV2SFp3dkZrdCs0YXcKLS0tIDU2SDBybXlSc0ZuS3NUdzVqOVdr + c0VVQ0hLamlFK2pCRW9MalpJcVVTV3cK7BdIbZZgx0im8LnGzUOfyeEgOMOCNLjG + rb3fAvqEFgMFX7YUPKiGxxftHnYU59rvnudefrcCtMehpWqg1duXQg== -----END AGE ENCRYPTED FILE----- - recipient: age1hzjj23k8ckesm7aqvelndn2hkywts84892tp0xhl0vj7kz7kugcsr9fepp enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAybGpGNmgzQjVKTVE3VWVV - QXZBNEE3dWh0K25IYi9hMnBkMnRVRnJ5Yno0ClB2djQwNm9TaXVaeDRvZXI2bWl4 - aWZwZ1VJYm50TVljK3pyT3lGMWFnaVkKLS0tIEJqd09kdXlORS9CQW53VHhPZTVF - VnJOdHg4MlQwR0tzamZkYnRWSWlxQlEKTsj34ZXAPsY7/oepKiRtGx5iShl4x0qb - s+Bph9O8iuKvwZqELfFakMHvh7PhyZ6i2ySwv0GH+sgdOA2tiQnwjQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvcEprNlZRNHpMMjNZWUVN + c0ZaR1VBRUd5amJQSTkxUVJpT3E2VitncHp3CmhPakxPeU5STXNOcVRjUDduVkIw + ZmdVMlkvZFVnRjl0clJsMkRGZlliSkEKLS0tIHVrL3p4eEM2aCt4elMwcUdrNER2 + TWsyRm5JU1ZIbjhLK1NOcEtJSjRQNFUKyxlG46GA2x8rtK2vwFe6X3ql0tuYKzTQ + UGsNsGVLTCpHLWGbtyQmAlXUIfqgmuDOH6x6EPChorJmUxJpeEZnDA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-03-20T11:41:58Z" - mac: ENC[AES256_GCM,data:NR0A4MPrUp9qRZLeSbDNYRYodweRyslfPA/3+TIav9S5UKUS0/feDAYflMRJOVIZrKkQinZ3dR3oGPZ1E7CGjVOumkG8lc456chQjecSgrD8mxp/t92OHj90mJ0rBaQm9vXx8tJz+xRgasT4/V/SiusdQoZqESXnbkIuczjevdg=,iv:nbdEtM+odPj2mtK9ZTYqaK+RGKuj30mZ/dFxJGqipC4=,tag:PC3+6d/V7tGtQLKpU3QMJA==,type:str] + lastmodified: "2024-04-02T06:34:58Z" + mac: ENC[AES256_GCM,data:NeECgtzZPavougOc+1ADnHu5SMPwfIg/WZXR75u0cmotlMpTvtr9+A5RiI8Pa8nUjH0aCVFgoa87larA4JJkWz9ew+ai2BKBxr7KqJvfwwZ10vx9hXn7RNk5cDGlF7pjPHU2wkbKpL8QXlvToZwEw8aNegFpqovarYKlLi/7NWk=,iv:Oa7xLzz73WeSR07J/hlB4l5mxRGUCLXnt5ItjrwThrQ=,tag:yeW+tSdCuaIHDw73WaWWxg==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1 diff --git a/secrets/endpoints/update-ip.py b/secrets/endpoints/update-ip.py index 2576800..dea870f 100755 --- a/secrets/endpoints/update-ip.py +++ b/secrets/endpoints/update-ip.py @@ -6,39 +6,36 @@ import yaml secret_file = sys.argv[1] -decrypted = subprocess.run(["sops", "-d", secret_file], - stdout=subprocess.PIPE).stdout.decode('utf-8') -obj = yaml.safe_load(decrypted) - -ipv4 = subprocess.run([ - "terraform", "-chdir=../../infra/aws-lightsail", "output", "-raw", - "external_address_v4" -], - stdout=subprocess.PIPE).stdout.decode('utf-8') - -ipv6 = subprocess.run([ - "terraform", "-chdir=../../infra/aws-lightsail", "output", "-raw", - "external_address_v6" -], - stdout=subprocess.PIPE).stdout.decode('utf-8') - -obj['aws-lightsail-0']['external-address-v4'] = ipv4 -obj['aws-lightsail-0']['external-address-v6'] = ipv6 - -ipv4 = subprocess.run([ - "terraform", "-chdir=../../infra/gcp", "output", "-raw", - "external_address_v4" -], - stdout=subprocess.PIPE).stdout.decode('utf-8') - -ipv6 = subprocess.run([ - "terraform", "-chdir=../../infra/gcp", "output", "-raw", - "external_address_v6" -], - stdout=subprocess.PIPE).stdout.decode('utf-8') - -obj['gcp-instance-0']['external-address-v4'] = ipv4 -obj['gcp-instance-0']['external-address-v6'] = ipv6 +obj = {} + +instances = [{ + 'name': "aws_lightsail_0", + 'src': "../../infra/aws-lightsail", +}, { + 'name': "gcp_instance_0", + 'src': "../../infra/gcp", +}, { + 'name': "gcp_instance_1", + 'src': "../../infra/gcp", +}] + +for instance in instances: + ipv4 = subprocess.run([ + "terraform", f"-chdir={instance['src']}", "output", "-raw", + f"{instance['name']}_external_address_v4" + ], + stdout=subprocess.PIPE).stdout.decode('utf-8') + + ipv6 = subprocess.run([ + "terraform", f"-chdir={instance['src']}", "output", "-raw", + f"{instance['name']}_external_address_v6" + ], + stdout=subprocess.PIPE).stdout.decode('utf-8') + + instance_name = instance['name'].replace('_', '-') + obj[instance_name] = {} + obj[instance_name]['external-address-v4'] = ipv4 + obj[instance_name]['external-address-v6'] = ipv6 yaml.dump(obj, open(secret_file, "w"), indent=4) subprocess.run(["sops", "-e", "-i", secret_file]) diff --git a/secrets/gcp-instance-0/.sops.yaml b/secrets/gcp-instance-0/.sops.yaml index 9819bb8..80b785d 100644 --- a/secrets/gcp-instance-0/.sops.yaml +++ b/secrets/gcp-instance-0/.sops.yaml @@ -1,6 +1,6 @@ keys: - &iosmanthus age12409ktkdynl48p38wz45pu2s25kmffsw4p9d9vgt3xmmwl8f7q7sjlxyrs - - &gcp-instance-0 age1xmtu762yzwj7498c3un3tx8ct9zcg2cz560vek43mqdnmtuul3ks0lyca4 + - &gcp-instance-0 age12rc72jm8h7js6qkxucwg8z7k9gz0w5vyavj4tpeyqphrddvjvsns37tkzq creation_rules: - key_groups: - age: diff --git a/secrets/gcp-instance-0/secrets.yaml b/secrets/gcp-instance-0/secrets.yaml index 7e83f38..e92c2c9 100644 --- a/secrets/gcp-instance-0/secrets.yaml +++ b/secrets/gcp-instance-0/secrets.yaml @@ -1,31 +1,31 @@ cloudflare: warp: - access_token: ENC[AES256_GCM,data:P2XVhln8TakIVCULDn3Dlo1A87Y1GLiFRbbcGpgIvUNzwI+S,iv:uJOu7SzM9uyfy9e3dP35LXNtpOCrQQUow3VMjs2XlTk=,tag:06UU9/6vjruZ98kG/LvYsA==,type:str] - device_id: ENC[AES256_GCM,data:LNkFaCw0bmufiLTbSlaM4s3AnasnIACN4KXJKinYNLPW8qQi,iv:nWJDh/HWEoU9K4yJdNmQ9rJwiZDCBaqNFp9IKj6zirM=,tag:ccnLu7dVlo8QPArGpqht9g==,type:str] - license_key: ENC[AES256_GCM,data:HbnHu7i+tO8WtsIfO8Xt0BF7MLUW5/ygSXU=,iv:odeMyFYtyprGyQk0p0PtnH9NNYPUcNAujnVzeATxfXI=,tag:pH4Tn8ldX30HUe/s/Xe3yA==,type:str] - local_address_v4: ENC[AES256_GCM,data:iD/fuCJOCdqpGv4wZQ==,iv:lF+Bs5jCO1x3EVL56bt1xBeXbGPXYvQpb7jPoIlUvK0=,tag:TpAY3/Qz/1OdtdhB6me7Fw==,type:str] - local_address_v6: ENC[AES256_GCM,data:R3j/Sf52mQrMdLNFMET7sA/YkCKdf5KcNX4DqC/XojquZfBXEv9xJpab,iv:RrDgVATAZ9YiqFUyoam/ucj5R5w9GVBI43uD7heIz9o=,tag:foNONmPkl6deoISqK4P7lA==,type:str] - peer_public_key: ENC[AES256_GCM,data:fvuRcvbVtXFBIq4AW1ep9XpQbvD/kQKdDx1W+ZDH5LGQXFrkBuO3eZ8nGDw=,iv:r/Mc58Rhlid7yrrXiy8uwv5RYKaJx+UqknTxO3hswHk=,tag:nVridJpFvFgdeylLeaTnXA==,type:str] - private_key: ENC[AES256_GCM,data:u6AMlIgsBSFno5ElSaPIMCYxKMkaoCCJs2snslAMMh7RWU6L8MwmEW6uDTA=,iv:tQFM+habHbPNEkesRFFUPkyOnH0v87DvLEKpAm/G0UA=,tag:YNNdIF7rJnzKkdQOUNVptQ==,type:str] + access_token: ENC[AES256_GCM,data:4eXOD1ZOzCOhAFBBC0IfMgqlaFvijNdcVstgwq6nIZk/3cV6,iv:1L70BmUfY839H9F6zygbVrUVZ8j/nQVi5W0tXOXbM18=,tag:xoJhGKIRf/sydQLeRVI/CQ==,type:str] + device_id: ENC[AES256_GCM,data:a19W/Cm0YYPev/PPOkQDgUMglBP9tNrSNbnUoNze3mzBH7o5,iv:09C5qqpGVL/glikQ8PUph7+qIpdlLPDgY3gltG9NARo=,tag:OKTPJP9INqLD7c7LCC6rOQ==,type:str] + license_key: ENC[AES256_GCM,data:Xa4IXWEsroLMaTASad8YG5y7Zr6pa5x86zE=,iv:Xy2yG5tvkueOxswFoBVWpgN7utSpclRSxXyhAnBqQj8=,tag:yjJInJSgA8lrFncEXiOE6A==,type:str] + local_address_v4: ENC[AES256_GCM,data:K2aiQ24u4Hu3k/bXHg==,iv:BSWnjHKGF6KdMWTKQX4GipVk4x9aR0kr7T0OsSzNnNk=,tag:oYJtkHcl3pAyvKt2MQN4Ug==,type:str] + local_address_v6: ENC[AES256_GCM,data:40FOgzQ5w3/yF9AzQD2oRGyZ86OIls0rvkVTHHgup+qtngpaO/qztXwH,iv:wl0hCANq6pUiJzhd5Vg/Jh/cCheddJJQu1HvVqqGZCU=,tag:5guCn0LA5LntCDsHPS3y5g==,type:str] + peer_public_key: ENC[AES256_GCM,data:UcHEaBI4Au0YqgBCOvTYzZ7KhfVo9AQTc8cbyW1sKfZKOFG1ihzbO5BSNu4=,iv:iAPB0TmYtxPEmNbx4ZOxMj42VpXbppBRZZ5tRrmrddc=,tag:MjtYWu1ts+yoZT/5Q2IjNQ==,type:str] + private_key: ENC[AES256_GCM,data:CDg6aK6RsRP5mnArCwVFKx9q0cf5UAx+dEU8b1kcGZM3m5yR6WAY6QtAAjg=,iv:H0U2Xhh4McgBYpXnr50MstW7t+kC5pCQipOQgoXaXFo=,tag:QTbb07Hkwa71krypYFKcmw==,type:str] grafana: - prometheus-basic-auth: ENC[AES256_GCM,data:xQCGNIQSQ6zOlG9C5mDG7eZePhOpXLCRoubFRLce5jMp6FTO8DTNC8ZWgtxJ8Ypgq0lGqpCU09E7XRQaSvmHAuIVg1asP2X29wf+3g27gUQA0qVP+5d+K2vCLFjEkRMHhzB8+ewQgjPMAYCWpe0Q1UdYfQDUlQZ1DZl+EPZOfI91+E7Dx02Mi4svIk8srNS/ofsDdldKXch9FCn1wtSmhhHRG2h1I0zW5/MwKaEzwROU9ioSElHXSV3C9fI+7xozWxNZy7/cPGrKAiG7Aa1yYGYStblduSL0/IvoopMY3PUWDUj1PdaJru5FDvM=,iv:wXshdenfewwZvEN07CwS2YQKCOCn1qGJikOZl3dEF1s=,tag:VAWDhzpQA8g3dOLM4+RQpw==,type:str] - promtail-basic-auth: ENC[AES256_GCM,data:wBoedoGsNbdQjQh1UwEVD10MjL9Nl6D88s3yUIqJsktEsqjWKjM3RuUbU+8kAahwPH4aGvdyK1rBfIA4zt9CIuA+/nwk2sMpiJxiuopiXhRGl5+qWAN3g5RhDo9aruAC8I5ksL0ZDIv3b9T6tx8rUajFh159vcYQlV2bYdq/0s6AI7wHhmWC8jujvUT+KCnffn/qEaH2Ips5Rtt5baCK0vrRpy0bg1yRiVydFAc8HDCLjiYvb38f6ANnROG2NYt7t/hkB+D/TZM6E8v6qFkyU7dP5EuEOLIHvGgzNNtR9TG4Do1cEA0r3oJ3b6M=,iv:ulFC9k3adYCmeUo30KHT+njrAnHurgjFlodItBC+8qg=,tag:krBOY/Ugxl01KPgWRWM4NA==,type:str] + prometheus-basic-auth: ENC[AES256_GCM,data:wFmq4y4vq+mla/8q615c51lV0vgNm/Jtl7OopsCtijPNvSGVAaR/jujwu9qjZCtCNchYWbfqLnfwVWQSq0UuvlydN9tU39e8kGyu/SodXPoh59Wrdwv6OD+COkt/8frKKeJb8FeIhNPmhcBkixLhWXs1AV88+cL4sYgspTpscYPmIvQGaOKyOOO28lTM4evkL1igFWjouLSaS1SfXS76jO4gJtPSs3ug131lXJYAm8woH+C9BjODEjQpqq4kc97q00FCN6fTy4sdsnaJPcKMF3kbK3irTVJbdufRm1D3wtsrzet3Lj4ZjkepgG0=,iv:aE1FHxrpYDHvVSOz5kf+OKHARkQbbECnWtaEZhQHvHs=,tag:9SpotP15etxMj+GLAnq5kA==,type:str] + promtail-basic-auth: ENC[AES256_GCM,data:e21ozY8gtskHR5j95/IbiAKHhDZZ1EI+8efawZql1Ky5GOtgAAy7Ae+v4EhGWnBy5rpQTRvJ+w1hfWAIfOdS//t8Mjifn5NGsx6LFd7fqjznFjsTwedPtGJT8ih6jJeOjkENrdYPFZEUAWZPTblSNGmB9IkPOZCYWb9jEZ7Ia/hoUtH5vOiE5HRE8Kal3fsP7GGPRFsfsGQyFCea91bicbgaCgTFP/JLlMpkAUwJM/DNCPLCrLYncJgvxQDw0CXZeslDBKvqu5ePVSWoxcSHG424GYEpXVpoWiHgzC+8A8sEWpZQfhVmE5NOL9M=,iv:Do5rXU3aEJcpQj92dcfkxb/5OvWm4H9g9nk6fpTqH8s=,tag:W6gJnCo2zFXCvRzfWIgdbA==,type:str] sing-box: shadowsocks: - method: ENC[AES256_GCM,data:3AMZT2W4hSGMjGibinriBmCA43wZVIg=,iv:chOy07EAbjJGPPjTJIDpL01LuoAEr4hysWhN1A3+t/Q=,tag:3Mh/BDAb6Ebs3GFPoPSZjA==,type:str] - password: ENC[AES256_GCM,data:PyIwH5ehCNRUVDm7BCFvFzRzFAkeXbQ4,iv:pdGcjVYa7Eo0pjZpg8So2MPPqaduPwRP4PXIVuTWqUg=,tag:o3UmRlf5M7WduptGGdqwqw==,type:str] + method: ENC[AES256_GCM,data:wNIl2p4u3LRtGIoaliOEYoDuxM12hUs=,iv:3XHbmeN1vCKr2TKBxphcE/yje7FbGwdkfdZWcH/GEc0=,tag:tJFQ62OoXiizHaMFTEgJuA==,type:str] + password: ENC[AES256_GCM,data:tIqdM7JXcty8UKSROcM/EuX4NAWH7q56,iv:4VG/bLG8RjkuxI93o5/bs2b80eqXQy7lTLGRehmq+iM=,tag:BvEEq3M33jTTx9hZupWSMg==,type:str] users: - alex: ENC[AES256_GCM,data:yII1OONz+Xuy5exdPQ4vLPWn5apxORq1,iv:JaThnzzimIYqGngsfJ3Ro161DS7hgJYTKSVgublRXAQ=,tag:DxAYq8G9RQI8sDI+wUwIOQ==,type:str] - iosmanthus: ENC[AES256_GCM,data:87c9jChwY2bgqmJXgP+eabyVIxCB+ukl,iv:VCcmrge+kcKVgYuat46Ub3/muJgAJk7Ws8psfojrLDg=,tag:ONyXLgOoa4R2mFdTLmHMkg==,type:str] - lbwang: ENC[AES256_GCM,data:GjHI0CXT8h/sxh3vXck2p51Kjo+pTbgI,iv:UZw2mRR9JriocUuQazileQvFzF+Dvv5RKL95K3UCcjU=,tag:SOKv0McThqG1CvJZi8Oumw==,type:str] - lego: ENC[AES256_GCM,data:DH2iszv30uJxg/3ApPB06XK7/Zl9EcxA,iv:s9i1ZKN/+lZkkW8SL5GXonMrsn6sYJEofduIYkzsGcM=,tag:uM8rqZRnFDw+RF9bIIWz6g==,type:str] - mgw: ENC[AES256_GCM,data:lASl8+TVQO96B0owS3MOZJ02n7khLvI4,iv:4YO2CkVcWZeiAD9UUpAjjp6ryPMmeZB01XXsfEGKsb0=,tag:J/q8iGdLGBHIZmks4B+JSQ==,type:str] - tover: ENC[AES256_GCM,data:wX8UdEbXZhrRZvk9hFs4EakvpcMgnrJg,iv:adWuiay9V1N5Jr59d7eZLnh0/HCOHflE7JTlklA7KAM=,tag:Q+RBAh0xmDQAvyqmgcI1LA==,type:str] + alex: ENC[AES256_GCM,data:BZ2cVhMcLyI8ei51B3RBco6NQDu1iB5s,iv:VKGaUiQlpuJQFd985lU4co91h8QKeoUiU9c8Tvl2Ftg=,tag:kepZMrlcclmlw3ivRTPSsw==,type:str] + iosmanthus: ENC[AES256_GCM,data:Y60RLFRxnTu7hhbzmpFQd1voA8J4cuQk,iv:rkauDUez94PcRcuA/zaIQrwzEI+W8xqAxmSb7nw+CoY=,tag:C85UQ/NgMZVxloUNmP5JEw==,type:str] + lbwang: ENC[AES256_GCM,data:0TCiHfoOSB/YEDcKjXHN5Z076/x31eXV,iv:5JBZ99Na3jiNNhpg4SSMYN+PGtllfL0LbZMmQtJiBj0=,tag:V6y84zvmqn30/TcCi1JxgA==,type:str] + lego: ENC[AES256_GCM,data:uROuL9MvXuFS2iwyEDN6e1NqRp6qgLf0,iv:PGPyP/qjKy9PpoUbUPi7PXlZ27o3ZrTP4mDtK9SkuPw=,tag:ReCGuODRgtT5nLJrmKS/6A==,type:str] + mgw: ENC[AES256_GCM,data:NYoqTCOyM6dcwW8kc5d+MtidvhDoDgYH,iv:+twAw0TgFz7mCsbN9RzgesnjW5WPVABdsxI6p4oplnk=,tag:6JgvOJzJ5aTiAuM9wFd9PA==,type:str] + tover: ENC[AES256_GCM,data:yJ7qjPmzuT9pB6TFZqIazNZvQVa2Hdgb,iv:ZcqFsyD+mnnhwp6x96ipKrHK/1HVqRvVBpzwbLe3eWM=,tag:XLbqYsoKJDfGbjR3zi4n9A==,type:str] shadowtls: handshake: - server: ENC[AES256_GCM,data:8A4OG46u3Vela3kByiiS1mPxcJ3p/mQZbgc=,iv:fGTyZMOEsC26IEunVT1XcyaJ3Z4yjcuWP4eIJE5+ymQ=,tag:PFWfMVS/9wMmiWcNQmJ5mA==,type:str] - password: ENC[AES256_GCM,data:TPRtvLKzA0PoHb7v8Ks2X/FVAZi8FjeFYWenhaKGXs+K23KL,iv:p9cUvN/42S2GYAl/W5xkwsd3NAD+1HKKiucmGF7mXxE=,tag:W3wnGOEZgtf4MeZLDh9FtA==,type:str] - username: ENC[AES256_GCM,data:2T+YYEPNBA==,iv:B6naPw8/PTysY88EFDUEma/rcCcOXEEEhxgXo8ZgQHY=,tag:bxLRn20CabjwkrpTQSq2KQ==,type:str] + server: ENC[AES256_GCM,data:7bOPegoU6p13KJMHTESMuihC4+O2c2XmNoE=,iv:xzTAJ1MlcUJXdODrIETafE8Wfx1fHcRbv1wfRqRpMz0=,tag:QjKTVdtAsrgOkaYD0pcpKQ==,type:str] + password: ENC[AES256_GCM,data:L3hTji/m6VvWCftHRN2a2hfNB3+foYr3HYD5uAuC8hpPCcoi,iv:G+ERqTUhkHzGIINuuXnenr5IY3BWoqIEZXbKITNZZCE=,tag:xxfVjSJwdSOftGRnIyio+Q==,type:str] + username: ENC[AES256_GCM,data:B67yqFDGjg==,iv:r8Cp2NwZKdYD1gC6O4ntrZOmHKMfgUrK2t333/vKt7c=,tag:txP6BwUaRyz+fAkvWqP17A==,type:str] sops: kms: [] gcp_kms: [] @@ -35,23 +35,23 @@ sops: - recipient: age12409ktkdynl48p38wz45pu2s25kmffsw4p9d9vgt3xmmwl8f7q7sjlxyrs enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGb1ZqOGVwbGI4MHpIaE01 - aStuTHUzVVlSNFNRUUFOemNiejgzbjBaQmswCkdsU2krV0wwdDY2Z1pDUWRzdVNn - K1N0WE43UUxyT0hZZTlUQjBOZzF6aVEKLS0tIGJJVDZyNHBzNnZYdXhZQk9KSEJN - MmZqbFlKNFp4TE1WZ1cyaFcyS21IRlUKFCH3QaXdaiCLqO3PqmLDrIUzU9aNSLai - 9NsTlsxb4v0a17+E13KlfZZxWRjeNGifH+ti6i/1rxfV4Ql0w69Ukg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZK2NHUGQwb1hJMzU5cFA5 + N0NVVjBqNFBrVkdzV2JySFcvd3c1dUlEdkJjCkMyQjBKVnBlYWRSRERSREZWR1cz + aTRyRFY5M0xmR3R4enR3SStBb200d3cKLS0tIGhWTzIrdGNxTmxhakR5aG1qZjlw + WXNxb2lUL0h5NkloOVNGV05GTkVRcjQKHdPsBwqbviXwL8bEXUy9XJCfmWb8oMKH + YoAPRuUdwWQV3YjH/d0ZEKWXyKq4yY4jySpf37T9O51jCSOP8pgU1w== -----END AGE ENCRYPTED FILE----- - - recipient: age1xmtu762yzwj7498c3un3tx8ct9zcg2cz560vek43mqdnmtuul3ks0lyca4 + - recipient: age12rc72jm8h7js6qkxucwg8z7k9gz0w5vyavj4tpeyqphrddvjvsns37tkzq enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSjhXVEVSYmZTZHZlZHll - K2dyUURrWW5yY1V0SmQ0eGxOd09BbDlXR2lNCkJKY1hOdWZCeVdFWHBZZzlIZHBl - OVQyTHROK1ZWeE1SNXgxZmJOV29mNnMKLS0tIDFaUFU0RnU0dk5XYmlFYXhZTGxF - VmJjYm9ZOHZBc1ZSZUxnR3NOM1BiNTAKmuwdVq7F0xeLxrUr9ZcSplxjbjhvjLqk - yJELeDZ9l06A09i0zDDsEKhNY01TZng+GvGSebqhT2VPkXj8a0km4Q== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTTzV2RWh0TUNseHRvcFJ2 + bVdtUUIzUDNLTXByakRFb3crRHNObE1oUURBCjdya0FKMjBLU2RJS2N4TFZDVlZM + K2x5WlplQUtlUFpsSWo2cFNRYndJc0kKLS0tIGdaQnlGYmhPWVdSb2h4T2F4VDRJ + RDNEeDRKczNUdUxPRlJEc0tIODNDbHcKhLFEYqM5YcAC1avNj8HX9Lb0WEwRTnUu + niqV6GMTctAQrb1n1uP62wNSgPczRCZzUPnL8rxumno8vokqM/CmKg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-03-22T10:26:33Z" - mac: ENC[AES256_GCM,data:+QVxeXhAf6gmhGkArkT6QglBJqLiYTomVWm2b3ZvJEawVsrgKrWaIWjZ5ZyHZk7DGTLPvhMDSSZYbegOQPMpSF4qQLFem7QcNLB3VDrAktoLBClmDOHQliH6vokK8Qww3soZ8T+98UlVR9GpcR5FaWEh2ZHp9Mn44coo/0aG9ME=,iv:27luZ7V2xhemRZ76gn8ZkseyG+Tax44akSNj/ls3gqg=,tag:bQIlSQGDdcMZRTgloA/yLQ==,type:str] + lastmodified: "2024-04-02T06:51:35Z" + mac: ENC[AES256_GCM,data:rTyuFN615CgHOs8kpuTGhev2cNazUOXQ2rHJfiW7wnn647C8KUYnBZEfUOD3/IuHHSiA9tSTwibTFjUAYdAE3V6Uvwp0cAc3HeRkKm0PMlWO8v3S4bZYu2gPI8Va2qN0LIzPhH7k5X4BVYj2TFL7d6mOMLGCknU6s+dcJeM/DwQ=,iv:uvHvfdQzKzN8uUTudjlt/bnCnP42PAz0qMF38ONwq8Q=,tag:G6wf1KsspRDika7Ol538fw==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1 diff --git a/secrets/gcp-instance-1/.sops.yaml b/secrets/gcp-instance-1/.sops.yaml new file mode 100644 index 0000000..c2ab478 --- /dev/null +++ b/secrets/gcp-instance-1/.sops.yaml @@ -0,0 +1,8 @@ +keys: + - &iosmanthus age12409ktkdynl48p38wz45pu2s25kmffsw4p9d9vgt3xmmwl8f7q7sjlxyrs + - &gcp-instance-1 age1ehxtx7tkgtqwxdwty9as7yjpa08j9y2c2hhtww0hknteasehju3q2xh4fv +creation_rules: + - key_groups: + - age: + - *iosmanthus + - *gcp-instance-1 diff --git a/secrets/gcp-instance-1/default.nix b/secrets/gcp-instance-1/default.nix new file mode 100644 index 0000000..fbdf54e --- /dev/null +++ b/secrets/gcp-instance-1/default.nix @@ -0,0 +1,26 @@ +{ ... }: { + sops = { + defaultSopsFile = ./secrets.yaml; + secrets = { + "cloudflare/warp/private_key" = { }; + "cloudflare/warp/peer_public_key" = { }; + "cloudflare/warp/local_address_v4" = { }; + "cloudflare/warp/local_address_v6" = { }; + + "grafana/promtail-basic-auth" = { }; + "grafana/prometheus-basic-auth" = { }; + + "sing-box/shadowtls/username" = { }; + "sing-box/shadowtls/password" = { }; + "sing-box/shadowtls/handshake/server" = { }; + "sing-box/shadowsocks/method" = { }; + "sing-box/shadowsocks/password" = { }; + "sing-box/shadowsocks/users/iosmanthus" = { }; + "sing-box/shadowsocks/users/lego" = { }; + "sing-box/shadowsocks/users/lbwang" = { }; + "sing-box/shadowsocks/users/tover" = { }; + "sing-box/shadowsocks/users/alex" = { }; + "sing-box/shadowsocks/users/mgw" = { }; + }; + }; +} diff --git a/secrets/gcp-instance-1/secrets.yaml b/secrets/gcp-instance-1/secrets.yaml new file mode 100644 index 0000000..5aeab55 --- /dev/null +++ b/secrets/gcp-instance-1/secrets.yaml @@ -0,0 +1,57 @@ +cloudflare: + warp: + access_token: ENC[AES256_GCM,data:6j3gLC/5V/UhLXrCSxmioutqWBEZzwxSTHPOG8bsa92uFbIE,iv:F2YEpgnfun5jUrSGs9QZPro9wm0zt6L4n6ETgcPt4oI=,tag:fGF50dWxMPrlAyzxBNJ2GQ==,type:str] + device_id: ENC[AES256_GCM,data:DLAQKCkCzAGUm76AMSNsZvuBevpcJx8eGJfx/zIVr/UMUuE1,iv:IqGLfCjQk0scmCdeHWJxY6D6D/omA+r8jOuHuUL+t/E=,tag:8aU1Jag6aYwV9zxo65QtNQ==,type:str] + license_key: ENC[AES256_GCM,data:UYqiYV6fFPr6ctp+fWSgtBaato8/z4+kHrI=,iv:QFPRYCLlbH2Y8fYiSZ8k/7HZZ2eaQYTvUw4293LJRuA=,tag:9kMH6q8gThXGakYD6EPl9Q==,type:str] + local_address_v4: ENC[AES256_GCM,data:21iRUbVJ6ZAuEXQh4w==,iv:A8fakDPndFPHLrl1YfMd12mblgsIsVDM7GpSrGDuVfE=,tag:yamosbUiLULwGXJHc8LuRA==,type:str] + local_address_v6: ENC[AES256_GCM,data:6D0wmDia2ypyx9+fUJnZXOno/jvwYa7X3ck9BBl8sLawmA9rymJ4Gd6q,iv:+l49TOlmYL4/KijbsERhh508WFQJnkuP461HdXPl4Jk=,tag:hZNTqmkZe0hDcPKx4Xlxig==,type:str] + peer_public_key: ENC[AES256_GCM,data:VUW4KwNTfNwlL7vNuifNy+C/dMstPnDNFxUARer5kH0ReYTonPNUQ0TnuSU=,iv:acq5nw1gKC0ZjuHEtZ4PqBMl2df8rGpTc6y/K1h3v2Y=,tag:yB0/0uX5iBlGEPQyxv6zlQ==,type:str] + private_key: ENC[AES256_GCM,data:4RwGqowZ82LzkT7JNic8vJhsRckfGTEGqkTNo1b/GVGnAcf4//6AVsWazEw=,iv:cs6+WlCQLDcBUuZhfgp8mM+Yj9e3MeetsWmCSn/Qf70=,tag:Tcf5hQPdrXDcqG8lrxx+wQ==,type:str] +grafana: + prometheus-basic-auth: ENC[AES256_GCM,data:syd9W8tqrSGABK7FK5PjOVnk1x72JiFAQhnr1gp01cUl5vrC9twNmu6YzW2jMjmQdlnl1eJs+3AgpFm65n1cCvsAJuxlz+8+HnyIh3MM8eBJjSgO9hnp4a9+E1zPUih3yWM5zLzaA4w42E15EjZ7K1W7zVECEu+LGZq6TvqexbuijipIeqG1GPGQeWQAzqPbKy4AMkXE63DmqYuj5bBVWkf1jeQ5LXleuHyD/I6+sS2lRRE8LOeK+iYKGzvodBZTgKw4wiST3c+5HYocttgip3PDAZVj5Wgd+UA/vsElPGVyZc0K9HbuXuDUTzM=,iv:YRuYhzULrwJPgjf8W/hHZm+5AgStR0CWjUNhQpCJG2c=,tag:BbRa341re40EEM5R4k6nlg==,type:str] + promtail-basic-auth: ENC[AES256_GCM,data:81GglX75XbWLW1mRZuTtS22Jo0wm3h4nmVban7g7mUsJNYt7xn0V64aNSpc12TnzG61/1d5A8JeJuu8c7t4wvz6ci/kQMD0wbgh8F1tiqNi84/EXfXWnBMj37s+NfRzd2J8JaFIQNCrZWZp6xTA+Qq05AGHADp6gY09/9q7ayf5KGdr1Vc8xKkewTDKhpDD/xoujPpbeVaI9sq5yLvNVfJ13TvmWuSPNaLz5zbj8fuo/VLPeztNqXKuzqZ2Wwy89MKUzWeoeD0ifyVkWjavCOCBejI3dHf9jJHmiWWMDhjczI3rlUpGuU+8ZsgE=,iv:5QnHYsP9jLXk9y1xhqqGPle2ljPs35Cnhz5viUoMkIU=,tag:VMFKUlEsiQS+AhwMgqGb5A==,type:str] +sing-box: + shadowsocks: + method: ENC[AES256_GCM,data:VmEX4c7L/+Z93w4mAPLKI+4Msl/KYmk=,iv:PIiW2yNel/JKjj9ZE2XB/Ph6HJqleqpwuUkcqCPJBVg=,tag:FSBAlVMeHiH91wpr/r40xg==,type:str] + password: ENC[AES256_GCM,data:U9XcuYfibPSaa7NsJMVmbql3j0LDtrul,iv:DkaZ6AhxEvMq1mhg6PWBPO0nOk5AVmpEpk4BYfSTboA=,tag:1X4P6c7zYWTWx87iTCQ7yg==,type:str] + users: + alex: ENC[AES256_GCM,data:rjVHXb4yAMfx745XDUiEEHGhm3weq3yy,iv:BfxOfdtEwVbdYjMV9wy4VzsiMd+lUkWjY3UjCYjF+yw=,tag:s3wBTvM+TFybw6JgqD6hjA==,type:str] + iosmanthus: ENC[AES256_GCM,data:nPfl4OvMGDG3uW9262ulwh8ZDpHJ9yLd,iv:YAGX51Hc3n4sWV2/+dW6Z6mjvbdLbMNiUeDB0406xyI=,tag:FwnoTQuGWoaZM2K/L6SLiw==,type:str] + lbwang: ENC[AES256_GCM,data:dAtVdsK0Ne0p9D+4Dwr/LiBjdyglvCgb,iv:S6QwCIJlzxNQupCiiyM0umkbTgurzVpFioyRcMZPvHk=,tag:jJU5yNII+qhjYUYm5y3W/w==,type:str] + lego: ENC[AES256_GCM,data:k6XSDRhLoxcNGeBF/Ge04myMnJ9VDaLe,iv:i+vgflPCFf7cP+SqNR3JpSsVKZVTffOlz+8Fu7NVTRo=,tag:yP/CDeh6dM9o+mgnel5fKQ==,type:str] + mgw: ENC[AES256_GCM,data:q8cAXUZk8KfjGuGjKTPb+84k++e+AGRZ,iv:aASZq/lT/+2sSW/+SVFTgJTM1C4rfo3LMQml/tPTrT4=,tag:FpEt8hoTdilpvStaZIxpdQ==,type:str] + tover: ENC[AES256_GCM,data:mSQRO3EO3dEX+0MXT2sraXhMJVe0hEwa,iv:DG13a0jsCGfZ4cwJwIOQfmMbYL+6a90sk8PUJb5McDg=,tag:RbcfAvJj2XWv4D0/bKVWzg==,type:str] + shadowtls: + handshake: + server: ENC[AES256_GCM,data:Bx/P301Nx7rjAI/6d4sinCbk8JStLCatAuw=,iv:lZvXBOPiTKzQHCVbiOZWMgDWdNdw8J2dJphfoM8Dxbo=,tag:7GCFulfbe7pOO0z5Q2Gj8A==,type:str] + password: ENC[AES256_GCM,data:13q9SbPiSBwGnMU7cFABrnHgB3uIDy4toUIyqsrIyyGefv/a,iv:HBcm68284tqxtEuhvWiEyZI1KPcW+DUMchDkC0yNTs4=,tag:BenOJRelnkIjgPUEpG/dFw==,type:str] + username: ENC[AES256_GCM,data:gU0k2rN3Ww==,iv:1E4MxXMjyEGuVfTkyynUm6EnxufKaMkcLHFcf9LKJas=,tag:lKebuiRq1N0qAwPoZZYEkw==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age12409ktkdynl48p38wz45pu2s25kmffsw4p9d9vgt3xmmwl8f7q7sjlxyrs + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwdUVWdEVyZTZsazVNQTJ1 + KzUzNFo3dUVxZi9sZWRLcFZ5ckgwY1VkK3hvCllaQlZWVUlSZFE5ZjZiYm1FSmhU + S3lXNUhNQUV3RjhyczhDZENkbG5GV2cKLS0tIE8yNFhoa2ttWVZmZzJraEFOM1ht + Z0liM0tOeWFnc0JqTGNoQUF3MkRuR3cKpYLTug21ZDZ3SyJIjpqL+CtZWdY3Ssft + B3zO+GGW2SFViYflwABvROp2gfftegx9+pmKTRxidPdwiXMHfWTEog== + -----END AGE ENCRYPTED FILE----- + - recipient: age1ehxtx7tkgtqwxdwty9as7yjpa08j9y2c2hhtww0hknteasehju3q2xh4fv + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2bUU1cTRVZnp3RFJxMS9n + ZXFBTFdlYkdMdTB0K2U1YllqcFB0N2ZubGc4ClVXSm1mb21EbS9YUVpwd0VQY1Y0 + Tk1JVTZiQUNzTVRtNVlGZ2ZBL3VvQ28KLS0tIE0zVU9TWFc0UGc4SCtrSmJld2JF + RTcwQURDVDc5NEppOWdsemIxVHZYQVEKTKv4wbmq8YDYyDX6vMpdJZT+eOJhOiNv + 1BcekPsP3ehIetF8wB6/wDPXiovwAl/ZtiQWi4sRUFlaCboa1L3ECw== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-04-02T07:02:54Z" + mac: ENC[AES256_GCM,data:TRlUpc+sEpcEgArlMI/uPLJG5SdfXnCKcUjV/APGcXv2NEQyXN+1K/WQZS7m2Qz93h5Kt/20Ux14kHTH42ZCepTnyAc22T3Z609dnQF+OT5BdG4woU4M6blPOHRTT0VqWveCr+IAl7N5AsFK0HDPJNJifKw0B48EEG9z05IB0dQ=,iv:qp8yo8+lKz8a4dxr2WEJOX40/I+8N5J4oYTceInxQWY=,tag:YlD8wQKCXe2qRrxHP1F4Pg==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.8.1 diff --git a/secrets/workstation/secrets.yaml b/secrets/workstation/secrets.yaml index 3f6e29f..d19fcf5 100644 --- a/secrets/workstation/secrets.yaml +++ b/secrets/workstation/secrets.yaml @@ -1,4 +1,4 @@ -sing-box-url: ENC[AES256_GCM,data:I+xk2UgJe34/8zvyfORkT0R/Tl2xqkvuyVIdw0xM51CpxgiT+0JA3iBmZbZ+mxnUpVGU0U4Ui0gUrekT0bXyDpA=,iv:VPHWGAltmy+3S6oxfWm0frSEiMFSYI1WTWMegOqeAlw=,tag:8ipoiMP+Pz4DK3v9u4Y6Pw==,type:str] +sing-box-url: ENC[AES256_GCM,data:WRTv61Cah7lwTM43/VPNAT6c2JW+M/YL4Ks9rJfulcS0FUBDQ97CamYylrxKXYoxwqCbHzKZks4tImIcow==,iv:2Ia3tlURfZ3QdzcX00k1K1MJL10DIaAhFuqGA0bdUbM=,tag:nGAhmnw+ECtqWxKkGxLjeg==,type:str] iosmanthus: hashed-password: ENC[AES256_GCM,data:2yH4RAp+yUerVBO9nqgrs6j0qHZIlU9zcOiwoom81GeAwP8qlaC+ukZC5GcExSnYsPt2YKu+DnyGPtAtQNsTGOmFOFj+QIVEKjFbyvZhg07D+v0iNHKCG9ZRNPbwq6qLacBTWLUnq1tfkS85tBbsHSoHX35e9w==,iv:JXxg9YPWj/I+oiDV3tzTjoKKKrQAFarj0thJrdTmhZU=,tag:RR2Nl4NzYuZv/Z1R4EzsqA==,type:str] sops: @@ -25,8 +25,8 @@ sops: U1dvTXRCN1ZvNHZHMThWcEc1UGJVeGcKkd6/ifa7FJn3c5ceVSOeK5qMIrnO8aMT drN+Bw/hjt72ZKPuAEYsAs8pW8CuLaxqvV2KTrK+C61mmn0b7yppUA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-02-19T07:52:14Z" - mac: ENC[AES256_GCM,data:HvDf448Z5/DJcsoEJ/8KjTBHzlIhpWjs32dcUr1M0wMuyXuA/QsED0OE1GwATgkfiD8GYcF09PKp/YXRHRIyTICAVhUBSCn80lmROMiCECHNV3V88Lz1RkdGYv4h+o9znz3zTTmQXuk/lKtMNIMm9Ml+KL3Btim36+oYQ8Tir9Y=,iv:0+2cUaLiEeUhIAqg/GFjl+KeHpuKKeP8Vh0Oufyb94U=,tag:eDuqRJTWZSC/ptZiciLF8A==,type:str] + lastmodified: "2024-04-02T08:50:36Z" + mac: ENC[AES256_GCM,data:eQX3KdDk43axSRdaJXndHtMl+O7RHaGM6hdMMDaizjGNE0FGtN2k6rJzSrARvXFp3BesOkQG2Mjl8sLIcpFQyJlwnjBD1h6qUaC9QEJiv+vGsVVXVEd69fwFPDP5P6Gjdd1OCyUvrgkqxsbqTUFe7UkOCeTqoPhWpad40/P1G8c=,iv:/QMYme/GpdmlQAjiS96UqiSRvpII7OecMJzOmBtGfrU=,tag:8vAKB0hQQq/2TLq0qSr1kg==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1 diff --git a/secrets/workstation/sing-box b/secrets/workstation/sing-box index f58f9e5..5801010 100644 --- a/secrets/workstation/sing-box +++ b/secrets/workstation/sing-box @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data: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,iv:YzQEdlMoyhHmKbIODahLBTbXfWAIcuskXrYgsyldqIk=,tag:+Ob16i1MdVkdJTjBp7Y5ew==,type:str]", + "data": "ENC[AES256_GCM,data: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,iv:rtdtcNGAFPcOc13bXkidm4PwX3RDko0rbJa/R/eLiH4=,tag:Mqu+nctKv8nVjjT3RDvUmA==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -8,11 +8,11 @@ "age": [ { "recipient": "age12409ktkdynl48p38wz45pu2s25kmffsw4p9d9vgt3xmmwl8f7q7sjlxyrs", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVFk2aWQ5dUVtZHhEd2NX\nVjFEOVRMRXJ0bWY4QzQvZHlZdzA5RHZic2c0Cm9UUTd3ZVgvdDlaMGJlbEF5UlZk\nQ0F6VjFvRkZDU29nR056aGs5THZsQlEKLS0tIFBHUDRRbHZTSUZHVnRub1JoVlFk\nYlhiL2ozNG1pN3BKNVpINkpsUklRYW8K9gF4mKWxU0o9QQLMkxoBvuIqB6xGDkBy\nZwXNU16Sw8ZeXpVeSZYHrJvkdzgGzPbw0RwA+faLrtQbrB8g31jV0g==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqUXArNlVrL0N5VnpMTUFv\nTk5EaEFFT21LVlQvbFpqS1psWHlMMEdORTNzClBXUmNCU280NHpsSHU3VzBEODJO\nbnZzVXVzejlYUEZiR3Zkb0ZiNWJhZGMKLS0tIEs3YkM5K0ZNeUdUUEgyaFNLaytY\nLzVsM2w5WW9zWUNtN2VsbGY0M0NNQWMKmXV3JMylY60oMK2Km2S/AAj830e9Opqt\nXzaJ4GQW0fgKwleMk1ST5UA+fQEkZU8l8dvIJm17PzARwIC7xMeZ2g==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-03-20T11:58:31Z", - "mac": "ENC[AES256_GCM,data:y3aWly6EPd9iybzrZ1usmjLDkj7ALrMVz7TvTSFTWz9mF/Yi0YPymdamUkWL/izz8AMhJaWkiuk41z4fPapMIe2PLqKHnDq70/dmLtHQl3OaaadgZ4GcOS2at2WxE8bjN/7m5qdH+kcpn+QPlXePq3/TRzAFzJgxbXavJwTGkIA=,iv:Nm35PMH04RENRJceYNtxDc4gZzY57mKhQEwbmeuQTGQ=,tag:jh0awKFNf9UpAfiT+6OCvA==,type:str]", + "lastmodified": "2024-04-02T08:50:47Z", + "mac": "ENC[AES256_GCM,data:+a7dxwO/JnGVvSbROJ9aeaFv5zJTiMIYO92PCSFow3TsjbRK8GE525wUrHNFxSj4kbuCNvqRVINNcwBD5rQWCLHjl2KhTOaqPACjSjkEBohbpEZ8iMQzF3W4iv+2ZW8//nF2VJOb3dzqZ+EiM7CjYpm6U/wrVPxWist3CShZLQ4=,iv:bwgV3qzGv/lEeatkd5dD7rom7/Idkp4md7ryDiKlw8c=,tag:8h4dwO+VGZaC0YEEmt+JsQ==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1"