self-hosting/terraform/dns.tf

459 lines
12 KiB
Terraform
Raw Normal View History

locals {
dmarc_value = "\"v=DMARC1; p=none; rua=mailto:failed-dmarc@banditlair.com; ruf=mailto:dmarc@banditlair.com\""
hel1_ip = "37.27.138.62"
hel1_ipv6 = "2a01:4f9:3100:1202::2"
}
data "hcloud_zone" "banditlair_zone" {
2025-11-23 23:06:16 +01:00
name = "banditlair.com"
}
resource "hcloud_zone_rrset" "banditlair_hcloud_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "banditlair_mcmap_a" {
zone = data.hcloud_zone.banditlair_zone.name
2025-12-09 01:47:51 +01:00
name = "mcmap"
records = [{ value = local.hel1_ip }]
2025-12-09 01:47:51 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "webmail_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-27 16:39:22 +01:00
name = "webmail"
records = [{ value = local.hel1_ip }]
2021-12-27 16:39:22 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "mail_a" {
zone = data.hcloud_zone.banditlair_zone.name
name = "mail"
records = [{ value = local.hel1_ip }]
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "mail_aaaa" {
zone = data.hcloud_zone.banditlair_zone.name
name = "mail"
records = [{ value = local.hel1_ipv6 }]
type = "AAAA"
}
2022-09-10 03:55:48 +02:00
resource "hcloud_zone_rrset" "hel1_a" {
zone = data.hcloud_zone.banditlair_zone.name
2024-12-05 01:57:40 +01:00
name = "hel1"
records = [{ value = local.hel1_ip }]
2024-12-05 01:57:40 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "ws_a" {
zone = data.hcloud_zone.banditlair_zone.name
name = "ws"
records = [{ value = hcloud_server.relay1.ipv4_address }]
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "grafana_a" {
zone = data.hcloud_zone.banditlair_zone.name
2022-09-15 21:42:58 +02:00
name = "grafana"
records = [{ value = local.hel1_ip }]
2022-09-15 21:42:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "jellyfin_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-07 01:55:01 +01:00
name = "jellyfin"
records = [{ value = local.hel1_ip }]
2021-12-09 09:28:28 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "status_banditlair_a" {
zone = data.hcloud_zone.banditlair_zone.name
2022-12-02 06:36:45 +01:00
name = "status"
records = [{ value = local.hel1_ip }]
2024-09-20 03:55:11 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "jitsi_a" {
zone = data.hcloud_zone.froidmont_zone.name
2021-12-27 17:17:02 +01:00
name = "jitsi"
records = [{ value = local.hel1_ip }]
2022-12-01 02:31:13 +01:00
type = "A"
2022-12-02 06:36:45 +01:00
ttl = 600
}
resource "hcloud_zone_rrset" "uptime_a" {
zone = data.hcloud_zone.froidmont_zone.name
2022-12-02 06:36:45 +01:00
name = "uptime"
records = [{ value = local.hel1_ip }]
2022-12-02 06:36:45 +01:00
type = "A"
2021-12-27 17:17:02 +01:00
ttl = 600
}
resource "hcloud_zone_rrset" "transmission_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-10 03:02:34 +01:00
name = "transmission"
records = [{ value = local.hel1_ip }]
2021-12-10 03:02:34 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "jackett_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-10 03:02:34 +01:00
name = "jackett"
records = [{ value = local.hel1_ip }]
2021-12-10 03:02:34 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "sonarr_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-10 03:02:34 +01:00
name = "sonarr"
records = [{ value = local.hel1_ip }]
2021-12-10 03:02:34 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "radarr_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-10 03:02:34 +01:00
name = "radarr"
records = [{ value = local.hel1_ip }]
2021-12-10 03:02:34 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "lidarr_a" {
zone = data.hcloud_zone.banditlair_zone.name
2023-09-08 07:03:59 +02:00
name = "lidarr"
records = [{ value = local.hel1_ip }]
2021-12-10 03:02:34 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "slskd_a" {
zone = data.hcloud_zone.banditlair_zone.name
2025-12-26 16:45:55 +01:00
name = "slskd"
records = [{ value = local.hel1_ip }]
2025-12-26 16:45:55 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "vtt_a" {
zone = data.hcloud_zone.banditlair_zone.name
2023-10-12 02:59:56 +02:00
name = "vtt"
records = [{ value = local.hel1_ip }]
2023-10-12 02:59:56 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "photos_a" {
zone = data.hcloud_zone.banditlair_zone.name
2024-12-14 05:07:09 +01:00
name = "photos"
records = [{ value = local.hel1_ip }]
2024-12-14 05:07:09 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "monero_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-09 09:28:28 +01:00
name = "monero"
records = [{ value = local.hel1_ip }]
2021-12-07 01:55:01 +01:00
type = "A"
ttl = 600
}
2021-12-07 14:57:13 +01:00
resource "hcloud_zone_rrset" "anderia_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-07 08:34:21 +01:00
name = "anderia"
records = [{ value = local.hel1_ip }]
2021-12-07 08:34:21 +01:00
type = "A"
ttl = 600
}
2021-12-07 14:57:13 +01:00
resource "hcloud_zone_rrset" "arkadia_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-07 08:34:21 +01:00
name = "arkadia"
records = [{ value = local.hel1_ip }]
2021-12-07 08:34:21 +01:00
type = "A"
ttl = 600
}
2024-04-23 23:20:44 +02:00
resource "hcloud_zone_rrset" "chroniques_a" {
zone = data.hcloud_zone.banditlair_zone.name
2026-03-12 23:46:08 +01:00
name = "chroniques"
records = [{ value = local.hel1_ip }]
2026-03-12 23:46:08 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "cifirpg_a" {
zone = data.hcloud_zone.banditlair_zone.name
2024-04-23 23:20:44 +02:00
name = "scifirpg"
records = [{ value = local.hel1_ip }]
2024-04-23 23:20:44 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "banditlair_dedicated_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "*"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "nextcloud_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "cloud"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
2021-07-24 03:02:54 +02:00
}
# Matrix
resource "hcloud_zone_rrset" "matrix_a" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "matrix"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "matrix_srv" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "_matrix._tcp"
records = [{ value = "12 10 443 matrix.banditlair.com." }]
2021-09-02 16:11:58 +02:00
type = "SRV"
}
resource "hcloud_zone_rrset" "coturn_a" {
zone = data.hcloud_zone.banditlair_zone.name
name = "turn"
records = [{ value = local.hel1_ip }]
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "ch_a" {
zone = data.hcloud_zone.banditlair_zone.name
2025-08-28 23:47:37 +02:00
name = "ch"
records = [{ value = local.hel1_ip }]
2025-08-28 23:47:37 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "hs_a" {
zone = data.hcloud_zone.banditlair_zone.name
2025-08-29 16:08:14 +02:00
name = "hs"
records = [{ value = local.hel1_ip }]
2025-08-29 16:08:14 +02:00
type = "A"
ttl = 600
}
# Email
resource "hcloud_zone_rrset" "mail_mx" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = "12 mail.banditlair.com." }]
2021-09-02 16:11:58 +02:00
type = "MX"
}
resource "hcloud_zone_rrset" "spf_txt" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = "\"v=spf1 mx -all\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "dmarc_txt" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "_dmarc"
records = [{ value = local.dmarc_value }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "dmarc_report_froidmont_txt" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "froidmont.org._report._dmarc"
records = [{ value = "\"v=DMARC1\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "dmarc_report_falbo_txt" {
zone = data.hcloud_zone.banditlair_zone.name
2021-09-02 16:11:58 +02:00
name = "falbo.fr._report._dmarc"
records = [{ value = "\"v=DMARC1\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "dkim_txt" {
zone = data.hcloud_zone.banditlair_zone.name
2021-12-26 19:42:23 +01:00
name = "mail._domainkey"
records = [{ value = "\"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgRhQ9zN4hkiASKH4kTfWUSBz+Ov7BvH0459BDVeSNQFjH3KjmofJicKQ6eWXGJOSz4jCpNDRdgMbkVHEiTHOcKd/u9LqxEchWKZU50lwSrYhUmr8j+b4vgf+sUxIWKCZUNuyrDp2ROeheA3Pbx+fYJb3VhGTZecLlchMrRjBJqwIDAQAB\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
data "hcloud_zone" "falbo_zone" {
name = "falbo.fr"
}
resource "hcloud_zone_rrset" "falbo_a" {
zone = data.hcloud_zone.falbo_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "falbo_cname" {
zone = data.hcloud_zone.falbo_zone.name
2021-09-02 16:11:58 +02:00
name = "*"
records = [{ value = "${data.hcloud_zone.falbo_zone.name}." }]
2021-09-02 16:11:58 +02:00
type = "CNAME"
ttl = 600
}
resource "hcloud_zone_rrset" "falbo_mail_mx" {
zone = data.hcloud_zone.falbo_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = "12 mail.${data.hcloud_zone.banditlair_zone.name}." }]
2021-09-02 16:11:58 +02:00
type = "MX"
}
resource "hcloud_zone_rrset" "falbo_spf_txt" {
zone = data.hcloud_zone.falbo_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = "\"v=spf1 include:${data.hcloud_zone.banditlair_zone.name} -all\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "falbo_dmarc_txt" {
zone = data.hcloud_zone.falbo_zone.name
2021-09-02 16:11:58 +02:00
name = "_dmarc"
records = [{ value = local.dmarc_value }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "falbo_dkim_txt" {
zone = data.hcloud_zone.falbo_zone.name
2021-12-26 19:42:23 +01:00
name = "mail._domainkey"
records = [{ value = "\"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCY6ESTQcWbZVNxjb8TFhpyhCoG6Ri8OV1MijDHGNmpLye8AsuMzaEdcFk59AoIWPI6P9ZGIXzYTTwRxXhCIBrRJgcDGrbTAQ7tuaKggJRCXhan7FVMizZSJ53NEr3f4PFaBtrV0Ni8f7ENuT6WcQQ+JsMN3vEGbwA1LmgHH2XSBQIDAQAB\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
data "hcloud_zone" "froidmont_zone" {
name = "froidmont.org"
}
resource "hcloud_zone_rrset" "froidmont_a" {
zone = data.hcloud_zone.froidmont_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "rl_a" {
zone = data.hcloud_zone.banditlair_zone.name
2026-03-24 13:18:01 +01:00
name = "rl"
records = [{ value = hcloud_server.relay1.ipv4_address }]
2026-03-24 13:18:01 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "website_marie_a" {
zone = data.hcloud_zone.froidmont_zone.name
2021-12-07 14:57:13 +01:00
name = "osteopathie"
records = [{ value = local.hel1_ip }]
2021-12-07 14:57:13 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "forge_a" {
zone = data.hcloud_zone.froidmont_zone.name
2025-03-04 05:20:49 +01:00
name = "forge"
records = [{ value = local.hel1_ip }]
2025-03-04 05:20:49 +01:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "froidmont_cname" {
zone = data.hcloud_zone.froidmont_zone.name
2021-09-02 16:11:58 +02:00
name = "*"
records = [{ value = "${data.hcloud_zone.froidmont_zone.name}." }]
2021-09-02 16:11:58 +02:00
type = "CNAME"
ttl = 600
}
resource "hcloud_zone_rrset" "froidmont_mail_mx" {
zone = data.hcloud_zone.froidmont_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = "12 mail.${data.hcloud_zone.banditlair_zone.name}." }]
2021-09-02 16:11:58 +02:00
type = "MX"
}
resource "hcloud_zone_rrset" "froidmont_spf_txt" {
zone = data.hcloud_zone.froidmont_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = "\"v=spf1 include:${data.hcloud_zone.banditlair_zone.name} -all\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "froidmont_dmarc_txt" {
zone = data.hcloud_zone.froidmont_zone.name
2021-09-02 16:11:58 +02:00
name = "_dmarc"
records = [{ value = local.dmarc_value }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
resource "hcloud_zone_rrset" "froidmont_dkim_txt" {
zone = data.hcloud_zone.froidmont_zone.name
2021-12-26 19:42:23 +01:00
name = "mail._domainkey"
records = [{ value = "\"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoY56+gnsfCFGVchumtl7mnRuFENBKoTojxpMZQ8kHPY68pkTg7Xw0M6GtfLQQa/2VGCddQIYcXH74nu7J/4vakEPLp7JYsToqbLOucfXoFbBAQN3N43YyUsp8DqMh80y0UjItHf04HQUfa+OyjJWZD9JZm2oKIAO4Z0X0RoSyWwIDAQAB\"" }]
2021-09-02 16:11:58 +02:00
type = "TXT"
ttl = 600
}
data "hcloud_zone" "stb_zone" {
name = "societe-de-tir-bertrix.com"
}
resource "hcloud_zone_rrset" "stb_a" {
zone = data.hcloud_zone.stb_zone.name
2021-09-02 16:11:58 +02:00
name = "@"
records = [{ value = local.hel1_ip }]
2021-09-02 16:11:58 +02:00
type = "A"
ttl = 600
}
resource "hcloud_zone_rrset" "stb_cname" {
zone = data.hcloud_zone.stb_zone.name
2021-09-02 16:11:58 +02:00
name = "*"
records = [{ value = "${data.hcloud_zone.stb_zone.name}." }]
2021-09-02 16:11:58 +02:00
type = "CNAME"
ttl = 600
}