diff options
20 files changed, 76 insertions, 1 deletions
@@ -4,7 +4,7 @@ set -Eeuo pipefail # # envsubst # -export TLD='arrobaponto.org' +export TLD="$(cat sync/tld.txt)" # # Terraform @@ -12,5 +12,12 @@ export TLD='arrobaponto.org' export TF_VAR_tld="${TLD}" export TF_VAR_hostname="sovereignty-guix-system" export TF_VAR_storage_name="sovereignty-storage" + TF_VAR_vultr_api_key="$(cat ./secrets/terraform/vultr-api-key.txt)" export TF_VAR_vultr_api_key + +TF_VAR_dkim_public_key="$(cat ./secrets/mail/dkim/tld.pub | head -n -1 | tail -n +2 | tr -d '\n')" +export TF_VAR_dkim_public_key + +# Selector: date when it was created +export TF_VAR_dkim_selector='20201126' diff --git a/secrets/mail/dkim/tld.key b/secrets/mail/dkim/tld.key Binary files differnew file mode 100644 index 0000000..4738a73 --- /dev/null +++ b/secrets/mail/dkim/tld.key diff --git a/secrets/mail/dkim/tld.pub b/secrets/mail/dkim/tld.pub Binary files differnew file mode 100644 index 0000000..5954001 --- /dev/null +++ b/secrets/mail/dkim/tld.pub diff --git a/secrets/terraform/plan-files/2020-11-26T13:47:30-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T13:47:30-03:00.tfplan Binary files differnew file mode 100644 index 0000000..5c52f72 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T13:47:30-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T13:51:16-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T13:51:16-03:00.tfplan Binary files differnew file mode 100644 index 0000000..7e61915 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T13:51:16-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T13:51:48-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T13:51:48-03:00.tfplan Binary files differnew file mode 100644 index 0000000..f229586 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T13:51:48-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:27:01-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:27:01-03:00.tfplan Binary files differnew file mode 100644 index 0000000..148fc94 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:27:01-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:28:03-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:28:03-03:00.tfplan Binary files differnew file mode 100644 index 0000000..f4e6788 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:28:03-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:29:14-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:29:14-03:00.tfplan Binary files differnew file mode 100644 index 0000000..2c9d42e --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:29:14-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:31:17-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:31:17-03:00.tfplan Binary files differnew file mode 100644 index 0000000..8628174 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:31:17-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:45:29-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:45:29-03:00.tfplan Binary files differnew file mode 100644 index 0000000..7b2f5f2 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:45:29-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:46:53-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:46:53-03:00.tfplan Binary files differnew file mode 100644 index 0000000..26a4ee6 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:46:53-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:56:51-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:56:51-03:00.tfplan Binary files differnew file mode 100644 index 0000000..b8c21a9 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:56:51-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T14:57:42-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T14:57:42-03:00.tfplan Binary files differnew file mode 100644 index 0000000..b2052d1 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T14:57:42-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T15:14:51-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T15:14:51-03:00.tfplan Binary files differnew file mode 100644 index 0000000..eebd758 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T15:14:51-03:00.tfplan diff --git a/secrets/terraform/plan-files/2020-11-26T15:16:32-03:00.tfplan b/secrets/terraform/plan-files/2020-11-26T15:16:32-03:00.tfplan Binary files differnew file mode 100644 index 0000000..a157868 --- /dev/null +++ b/secrets/terraform/plan-files/2020-11-26T15:16:32-03:00.tfplan diff --git a/secrets/terraform/terraform.tfstate b/secrets/terraform/terraform.tfstate Binary files differindex 78a3106..6a6beca 100644 --- a/secrets/terraform/terraform.tfstate +++ b/secrets/terraform/terraform.tfstate diff --git a/secrets/terraform/terraform.tfstate.backup b/secrets/terraform/terraform.tfstate.backup Binary files differindex 96a51dc..928925b 100644 --- a/secrets/terraform/terraform.tfstate.backup +++ b/secrets/terraform/terraform.tfstate.backup diff --git a/sync/tld.txt b/sync/tld.txt new file mode 100644 index 0000000..1aaed8d --- /dev/null +++ b/sync/tld.txt @@ -0,0 +1 @@ +arrobaponto.org @@ -15,6 +15,15 @@ variable "hostname" { description = "Human name of the host. This is a pet name, not cattle name :)" } +variable "dkim_public_key" { + type = string + description = "Public key for the DNS TXT DKIM record." +} + +variable "dkim_selector" { + type = string + description = "The DKIM selector that prefixes the domain in the TXT record." +} # Vultr @@ -45,8 +54,66 @@ output "public_ip" { # DNS and IP configuration +locals { + mail_domain = "mail.${var.tld}" +} + resource "vultr_dns_domain" "vps_tld" { # The CNAME record is already generated by Vultr domain = var.tld server_ip = vultr_server.vps_server.main_ip } + +resource "vultr_dns_record" "vps_mail_a_record" { + domain = var.tld + name = "mail" + data = vultr_server.vps_server.main_ip + type = "A" +} + +resource "vultr_reverse_ipv4" "vps_mail_reverse_ipv4" { + instance_id = vultr_server.vps_server.id + ip = vultr_server.vps_server.main_ip + reverse = local.mail_domain +} + +resource "vultr_dns_record" "vps_mail_aaaa_record" { + domain = var.tld + name = "mail" + data = vultr_server.vps_server.v6_networks[0].v6_main_ip + type = "AAAA" +} + +resource "vultr_reverse_ipv6" "vps_mail_reverse_ipv6" { + instance_id = vultr_server.vps_server.id + ip = vultr_server.vps_server.v6_networks[0].v6_main_ip + reverse = local.mail_domain +} + +resource "vultr_dns_record" "vps_mx_record" { + domain = var.tld + name = "" + data = local.mail_domain + type = "MX" +} + +resource "vultr_dns_record" "vps_spf_txt" { + domain = var.tld + name = "" + data = "\"v=spf1 mx -all\"" + type = "TXT" +} + +resource "vultr_dns_record" "vps_dkim_txt" { + domain = var.tld + name = "${var.dkim_selector}._domainkey" + data = "\"v=DKIM1;k=rsa;p=${var.dkim_public_key}\"" + type = "TXT" +} + +resource "vultr_dns_record" "vps_dmarc_txt" { + domain = var.tld + name = "_dmarc" + data = "\"v=DMARC1;p=none;pct=100;rua=mailto:postmaster@${var.tld};\"" + type = "TXT" +} |