- README principal actualizado con indice completo - Documentacion detallada de 4 servidores fisicos - Topologia de red completa con diagramas ASCII - Asignacion de IPs y conflictos identificados - Documentacion DNS para 3 dominios - Servicios: Caddy, Jellyfin Stack, Multimedia - Proyectos: Afterlife, Nexus, Horux - Seguridad: politica y riesgos identificados - Automatizacion: n8n workflows y scripts - Scripts utilitarios: backup, update-dns, check-ip - Roadmap 2026 Q2-Q4 - Documentacion Hermes AI server (actualizada)
27 lines
1.0 KiB
Bash
Executable File
27 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script para actualizar DNS en Cloudflare cuando cambia la IP pública
|
|
# Requiere: CF_API_TOKEN, CF_ZONE_ID
|
|
|
|
CF_API_TOKEN="tu_token_aqui"
|
|
CF_ZONE_ID="tu_zone_id_aqui"
|
|
DOMAINS=("jellyfin" "immich" "odoo" "n8n" "git" "status")
|
|
|
|
CURRENT_IP=$(curl -s https://api.ipify.org)
|
|
|
|
echo "IP actual: $CURRENT_IP"
|
|
|
|
for DOMAIN in "${DOMAINS[@]}"; do
|
|
# Obtener record ID
|
|
RECORD_ID=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records?name=${DOMAIN}.consultoria-as.com" \
|
|
-H "Authorization: Bearer $CF_API_TOKEN" \
|
|
-H "Content-Type: application/json" | jq -r '.result[0].id')
|
|
|
|
# Actualizar
|
|
curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$RECORD_ID" \
|
|
-H "Authorization: Bearer $CF_API_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
--data "{\"type\":\"A\",\"name\":\"${DOMAIN}\",\"content\":\"$CURRENT_IP\",\"ttl\":120,\"proxied\":true}"
|
|
|
|
echo "Actualizado: ${DOMAIN}.consultoria-as.com -> $CURRENT_IP"
|
|
done
|