162 lines
4.5 KiB
Terraform
162 lines
4.5 KiB
Terraform
locals {
|
|
dynu_dns_records_catalog_base = {
|
|
auth = {
|
|
hostname = "auth"
|
|
service = "authelia"
|
|
source = "core/authelia/docker-compose.yml"
|
|
purpose = "Authentication portal"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
gitea = {
|
|
hostname = "gitea"
|
|
service = "gitea"
|
|
source = "apps/gitea/docker-compose.yml"
|
|
purpose = "Gitea service endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
gotify = {
|
|
hostname = "gotify"
|
|
service = "gotify"
|
|
source = "monitoring/gotify/docker-compose.yml"
|
|
purpose = "Gotify notifications"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
grafana = {
|
|
hostname = "grafana"
|
|
service = "grafana"
|
|
source = "monitoring/grafana/docker-compose.yml"
|
|
purpose = "Grafana monitoring UI"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
familytree = {
|
|
hostname = "familytree"
|
|
service = "gramps"
|
|
source = "apps/gramps/docker-compose.yml"
|
|
purpose = "Family tree application"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
influxdb = {
|
|
hostname = "influxdb"
|
|
service = "influxdb"
|
|
source = "monitoring/influxdb/docker-compose.yml"
|
|
purpose = "InfluxDB metrics endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
monitor_kuma = {
|
|
hostname = "monitor-kuma"
|
|
service = "uptime-kuma"
|
|
source = "monitoring/uptime-kuma/docker-compose.yml"
|
|
purpose = "Uptime Kuma monitoring UI"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
mtls_bridge = {
|
|
hostname = "mtls-bridge"
|
|
service = "mtls-bridge"
|
|
source = "monitoring/mtls-bridge/docker-compose.yml"
|
|
purpose = "mTLS bridge API"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
nextcloud = {
|
|
hostname = "nextcloud"
|
|
service = "nextcloud-webapp"
|
|
source = "apps/nextcloud/docker-compose.yml"
|
|
purpose = "Nextcloud service endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
node_red = {
|
|
hostname = "node-red"
|
|
service = "node-red"
|
|
source = "monitoring/node-red/docker-compose.yml"
|
|
purpose = "Node-RED automation UI/API"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
passbolt = {
|
|
hostname = "passbolt"
|
|
service = "passbolt-webapp"
|
|
source = "apps/passbolt/docker-compose.yml"
|
|
purpose = "Passbolt password management"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
portainer = {
|
|
hostname = "portainer"
|
|
service = "portainer"
|
|
source = "monitoring/portainer/docker-compose.yml"
|
|
purpose = "Portainer admin endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
prometheus = {
|
|
hostname = "prometheus"
|
|
service = "prometheus"
|
|
source = "monitoring/prometheus/docker-compose.yml"
|
|
purpose = "Prometheus metrics endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
searxng = {
|
|
hostname = "searxng"
|
|
service = "searxng"
|
|
source = "apps/searxng/docker-compose.yml"
|
|
purpose = "SearXNG search endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
traefik = {
|
|
hostname = "traefik"
|
|
service = "traefik"
|
|
source = "core/traefik/docker-compose.yml"
|
|
purpose = "Traefik dashboard/API endpoint"
|
|
record_type = null
|
|
ttl = null
|
|
target = null
|
|
proxied = null
|
|
}
|
|
}
|
|
|
|
dynu_dns_records_catalog = {
|
|
for key, record in local.dynu_dns_records_catalog_base :
|
|
key => merge(record, {
|
|
fqdn = format("%s.%s", record.hostname, local.dynu_domain)
|
|
})
|
|
}
|
|
}
|