infra/terraform/dns_mcintire.tf
2025-12-16 15:42:47 -06:00

136 lines
4.1 KiB
HCL

# DNS configuration for mcintire.me domain
# Mail records point to Mailcow on mail.w5isp.com
resource "powerdns_record" "mcintire_soa" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "mcintire.me."
type = "SOA"
ttl = 3600
records = ["ns1.as393837.net. graham.mcintire.me. 0 10800 3600 604800 3600"]
}
# Mailcow MX records
resource "powerdns_record" "mcintire_mx_mailcow" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "mcintire.me."
type = "MX"
ttl = 3600
records = ["10 mail.w5isp.com."]
}
resource "powerdns_record" "mcintire_mx_backup" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "mcintire.me."
type = "MX"
ttl = 3600
records = ["20 mail.nsnw.ca."]
}
resource "powerdns_record" "mcintire_cname_test" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "*.test.mcintire.me."
type = "CNAME"
ttl = 14400
records = ["cname.bookappt.link."]
}
# Mail server
resource "powerdns_record" "mcintire_mail" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "mail.mcintire.me."
type = "A"
ttl = 3600
records = ["204.110.191.5"]
}
# Autodiscover for mail clients
resource "powerdns_record" "mcintire_autodiscover" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "autodiscover.mcintire.me."
type = "CNAME"
ttl = 3600
records = ["mail.w5isp.com."]
}
# Autodiscover SRV record
resource "powerdns_record" "mcintire_autodiscover_srv" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "_autodiscover._tcp.mcintire.me."
type = "SRV"
ttl = 3600
records = ["0 0 443 mail.w5isp.com."]
}
# Autoconfig for mail clients
resource "powerdns_record" "mcintire_autoconfig" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "autoconfig.mcintire.me."
type = "CNAME"
ttl = 3600
records = ["mail.w5isp.com."]
}
# SPF record for Mailcow
resource "powerdns_record" "mcintire_spf_mailcow" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "mcintire.me."
type = "TXT"
ttl = 3600
records = ["\"v=spf1 mx a ip4:204.110.191.5 ~all\""]
}
# DMARC record for Mailcow
resource "powerdns_record" "mcintire_dmarc_mailcow" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "_dmarc.mcintire.me."
type = "TXT"
ttl = 3600
records = ["\"v=DMARC1; p=quarantine; rua=mailto:postmaster@mcintire.me; ruf=mailto:postmaster@mcintire.me; fo=1\""]
}
# DKIM record from Mailcow
resource "powerdns_record" "mcintire_dkim_mailcow" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "dkim._domainkey.mcintire.me."
type = "TXT"
ttl = 3600
records = ["\"v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0rQie7Hz5AmDbVUX+rKNgp6Hf7crtWyfy6qKbqnrxmmernz1rQ6HyOrHhFAlc8nVLNKr8XP2DOROb1jAnrjndZo9I/ymbrrrCBsi9w6zAht2BheijO/R9k5CDRjeSafm6bg0oMKihtNMIdXvEj9ND8hDpZZKxtOrKFH7zLm4CPmm7jf0gqZH2yK+AA3OYUGSYa1OT0LtdMXadk0IVOI2VYf37Hzb3RUvGOYMVkT0xi+23DiyFk7AyCiyv3LQVBMT+/bwyd4k3yVVn2cr9+Nor+HXVjqASLtqcFLMf1SuX0ezSAjBG7BbqQr5G6Jz+n5YglqEIUKVYzJFE7JdDmqQYQIDAQAB\""]
}
resource "powerdns_record" "mcintire_photos" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "photos.mcintire.me."
type = "A"
ttl = 3600
records = ["204.110.191.8"]
}
resource "powerdns_record" "mcintire_headscale" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "headscale.mcintire.me."
type = "A"
ttl = 3600
records = ["66.206.18.166"]
}
resource "powerdns_record" "mcintire_hs" {
depends_on = [powerdns_zone.mcintire_me]
zone = "mcintire.me."
name = "hs.mcintire.me."
type = "A"
ttl = 3600
records = ["66.206.18.166"]
}