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

253 lines
6.8 KiB
HCL

resource "powerdns_record" "w5isp_soa" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "w5isp.com."
type = "SOA"
ttl = 3600
records = ["ns1.as393837.net. graham.mcintire.me. 0 10800 3600 604800 3600"]
}
resource "powerdns_record" "w5isp_root" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.5"]
}
resource "powerdns_record" "w5isp_git" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "git.w5isp.com."
type = "A"
ttl = 3600
records = ["66.206.18.163"]
}
resource "powerdns_record" "w5isp_home" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "home.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.1"]
}
resource "powerdns_record" "w5isp_photos" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "photos.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.8"]
}
resource "powerdns_record" "w5isp_skippy" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "skippy.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.8"]
}
resource "powerdns_record" "w5isp_ha" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "ha.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["q1l09qiycnaagngmjsg1qas0rhqcfoou.ui.nabu.casa."]
}
resource "powerdns_record" "w5isp_mx1" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "w5isp.com."
type = "MX"
ttl = 3600
records = ["10 mail.w5isp.com."]
}
resource "powerdns_record" "w5isp_txt" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "w5isp.com."
type = "TXT"
ttl = 3600
records = ["\"v=spf1 mx a ip4:204.110.191.5 ~all\""]
}
# DKIM record
resource "powerdns_record" "w5isp_dkim" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "dkim._domainkey.w5isp.com."
type = "TXT"
ttl = 3600
records = ["\"v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxti2t8TvzIqKF9BpKn3rQExKg3sS1SyQuwtQgL0r/ELEJ0D9cKU/iM+eB1ROJctKHoMqKDJoRCMP6eibFcgq2kLKqf+aceEOIBx2OK2WCXML+CNqQZA6yO+A8/Jq7iFZPq8D5FmOoxbwRZkso7CkSennSz/+F7nBPI/OfyEiiI4xJzWH3t8SaAkkcy46O+1K0iCkTpsthon7E2PHa3SPkrjbep/5NImTJLK5LuffiLJtLsiK+73mvsAYCDmrNxPTaDjXkj0TWdKl/d/TnlVJl+YloqWIDt/7LtZQM0C7GZ9flIr7z9hHpSWERXAA5Gj5NQ0/hcY3nF4dPoqWs3VeeQIDAQAB\""]
}
resource "powerdns_record" "w5isp_g" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "g.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.5"]
}
resource "powerdns_record" "w5isp_truck" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "truck.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["g.w5isp.com."]
}
resource "powerdns_record" "w5isp_sendgrid1" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "em40.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["u177982.wl233.sendgrid.net."]
}
resource "powerdns_record" "w5isp_sendgrid2" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "s1._domainkey.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["s1.domainkey.u177982.wl233.sendgrid.net."]
}
resource "powerdns_record" "w5isp_sendgrid3" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "s2._domainkey.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["s2.domainkey.u177982.wl233.sendgrid.net."]
}
resource "powerdns_record" "w5isp_dmarc" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "_dmarc.w5isp.com."
type = "TXT"
ttl = 3600
records = ["\"v=DMARC1; p=quarantine; rua=mailto:postmaster@w5isp.com; ruf=mailto:postmaster@w5isp.com; fo=1\""]
}
# Mail server
resource "powerdns_record" "w5isp_mail" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "mail.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.5"]
}
resource "powerdns_record" "w5isp_sync" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "sync.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.216"]
}
resource "powerdns_record" "w5isp_log" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "log.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["g.w5isp.com."]
}
resource "powerdns_record" "w5isp_autodiscover" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "autodiscover.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["mail.w5isp.com."]
}
resource "powerdns_record" "w5isp_autodiscover_srv" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "_autodiscover._tcp.w5isp.com."
type = "SRV"
ttl = 3600
records = ["0 0 443 mail.w5isp.com."]
}
resource "powerdns_record" "w5isp_autoconfig" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "autoconfig.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["mail.w5isp.com."]
}
resource "powerdns_record" "w5isp_n8n" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "n8n.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.2"] # Traefik ingress on k3s cluster
}
resource "powerdns_record" "w5isp_nodered" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "nodered.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.2"] # Node-RED via Traefik on k3s cluster
}
resource "powerdns_record" "w5isp_headscale" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "headscale.w5isp.com."
type = "A"
ttl = 3600
records = ["66.206.18.166"]
}
resource "powerdns_record" "w5isp_hs" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "hs.w5isp.com."
type = "A"
ttl = 3600
records = ["66.206.18.166"]
}
resource "powerdns_record" "w5isp_dokku" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "dokku.w5isp.com."
type = "A"
ttl = 3600
records = ["204.110.191.218"]
}
resource "powerdns_record" "w5isp_camper" {
depends_on = [powerdns_zone.w5isp]
zone = "w5isp.com."
name = "camper.w5isp.com."
type = "CNAME"
ttl = 3600
records = ["skippy.w5isp.com."]
}