Archived
Consolidates nixos, docker, raspi, and debian-configuration into a single infrastructure-as-code repo. Includes: - ansible/: full inventory + proxmox-hardening, freeipa, and raspberrypi roles (converted from debian-configuration bash scripts) - terraform/: Proxmox VMs, Dynu DNS, Pi-hole (decommissioned stub), Docker container catalog — migrated from docker/infrastructure/terraform/ - stacks/docker/, stacks/raspi/, nixos/: placeholder READMEs pending git subtree population (see implementation plan) - docs/: internal MkDocs site with architecture, network topology, runbooks, and drift-detection guide; external sanitized site - scripts/: drift-detect.sh, docs-build.sh, install-hooks.sh, check-secrets.sh - CI: secret-scan (push/PR), drift-detect (daily), docs-build (on change) - Pi-hole removed throughout — DNS is FreeIPA, DHCP is router See docs/internal/implementation-plan.md for the phased rollout after pushing to Gitea. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvNjoxTWEDkhXsd1Dq2ETP
519 lines
11 KiB
Terraform
519 lines
11 KiB
Terraform
# ---------------------------------------------------------------------------
|
|
# GENERATED FILE - REVIEW BEFORE USE
|
|
#
|
|
# Generated from Dynu brownfield DNS inventory.
|
|
# Do not blindly apply this file to production DNS.
|
|
# Import records into Terraform state before allowing Terraform to manage them.
|
|
# ---------------------------------------------------------------------------
|
|
|
|
resource "dynu_dns_record" "auth_lan_ddnsgeek_com_a_18483099" {
|
|
hostname = "auth.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "auth"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "auth_lan_ddnsgeek_com_a_19646048" {
|
|
hostname = "auth.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "auth"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "edge_lan_ddnsgeek_com_a_10453241" {
|
|
hostname = "edge.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "edge"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "edge_lan_ddnsgeek_com_a_19646062" {
|
|
hostname = "edge.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "edge"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "familytree_lan_ddnsgeek_com_a_17017685" {
|
|
hostname = "familytree.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "familytree"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "familytree_lan_ddnsgeek_com_a_19646056" {
|
|
hostname = "familytree.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "familytree"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "gitea_lan_ddnsgeek_com_a_14682463" {
|
|
hostname = "gitea.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "gitea"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "gitea_lan_ddnsgeek_com_a_19646063" {
|
|
hostname = "gitea.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "gitea"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "gotify_lan_ddnsgeek_com_a_17439061" {
|
|
hostname = "gotify.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "gotify"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "gotify_lan_ddnsgeek_com_a_19646047" {
|
|
hostname = "gotify.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "gotify"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "grafana_lan_ddnsgeek_com_a_18113762" {
|
|
hostname = "grafana.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "grafana"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "grafana_lan_ddnsgeek_com_a_19646050" {
|
|
hostname = "grafana.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "grafana"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "influxdb_lan_ddnsgeek_com_a_18562198" {
|
|
hostname = "influxdb.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "influxdb"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "influxdb_lan_ddnsgeek_com_a_19646059" {
|
|
hostname = "influxdb.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "influxdb"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "kuma_lan_ddnsgeek_com_a_17454978" {
|
|
hostname = "kuma.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 90
|
|
enabled = true
|
|
content = "120.155.99.146"
|
|
node_name = "kuma"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "lan_ddnsgeek_com_soa_8299670" {
|
|
hostname = "lan.ddnsgeek.com"
|
|
record_type = "SOA"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "ns1.dynu.com. administrator.dynu.com. 0 3600 900 604800 300"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "monitor_kuma_lan_ddnsgeek_com_a_17462342" {
|
|
hostname = "monitor-kuma.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "monitor-kuma"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "monitor_kuma_lan_ddnsgeek_com_a_19646051" {
|
|
hostname = "monitor-kuma.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "monitor-kuma"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "mtls_bridge_lan_ddnsgeek_com_a_19232643" {
|
|
hostname = "mtls-bridge.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "mtls-bridge"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "mtls_bridge_lan_ddnsgeek_com_a_19646058" {
|
|
hostname = "mtls-bridge.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "mtls-bridge"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "nextcloud_lan_ddnsgeek_com_a_10453260" {
|
|
hostname = "nextcloud.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "nextcloud"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "nextcloud_lan_ddnsgeek_com_a_19646057" {
|
|
hostname = "nextcloud.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "nextcloud"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "node_red_lan_ddnsgeek_com_a_19041230" {
|
|
hostname = "node-red.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "node-red"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "node_red_lan_ddnsgeek_com_a_19646053" {
|
|
hostname = "node-red.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "node-red"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "passbolt_lan_ddnsgeek_com_a_10453262" {
|
|
hostname = "passbolt.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "passbolt"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "passbolt_lan_ddnsgeek_com_a_19646049" {
|
|
hostname = "passbolt.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "passbolt"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "portainer_lan_ddnsgeek_com_a_17458810" {
|
|
hostname = "portainer.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "portainer"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "portainer_lan_ddnsgeek_com_a_19646046" {
|
|
hostname = "portainer.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "portainer"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "prometheus_lan_ddnsgeek_com_a_18483311" {
|
|
hostname = "prometheus.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "prometheus"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "prometheus_lan_ddnsgeek_com_a_19646061" {
|
|
hostname = "prometheus.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "prometheus"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "searxng_lan_ddnsgeek_com_a_10453263" {
|
|
hostname = "searxng.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "searxng"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "searxng_lan_ddnsgeek_com_a_19646055" {
|
|
hostname = "searxng.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "searxng"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "shifts_lan_ddnsgeek_com_a_15901565" {
|
|
hostname = "shifts.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "shifts"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "shifts_lan_ddnsgeek_com_a_19646052" {
|
|
hostname = "shifts.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "shifts"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "stockfill_lan_ddnsgeek_com_a_17081867" {
|
|
hostname = "stockfill.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "stockfill"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "stockfill_lan_ddnsgeek_com_a_19646060" {
|
|
hostname = "stockfill.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "stockfill"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "traefik_lan_ddnsgeek_com_a_10453240" {
|
|
hostname = "traefik.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
dynamic = true
|
|
node_name = "traefik"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|
|
|
|
resource "dynu_dns_record" "traefik_lan_ddnsgeek_com_a_19646054" {
|
|
hostname = "traefik.lan.ddnsgeek.com"
|
|
record_type = "A"
|
|
ttl = 120
|
|
enabled = true
|
|
content = "167.179.167.166"
|
|
group = "home"
|
|
node_name = "traefik"
|
|
|
|
lifecycle {
|
|
prevent_destroy = true
|
|
}
|
|
}
|