2025-12-29 13:08:34 +01:00
2025-12-29 12:55:53 +01:00
2025-12-29 13:08:34 +01:00
2025-12-29 12:55:53 +01:00
2025-12-29 12:55:53 +01:00
2025-12-29 12:55:53 +01:00

Cloudflare DDNS Updater con UI

Sistema automatico per aggiornare i record DNS di Cloudflare con il tuo IP pubblico dinamico, completo di interfaccia web per monitoraggio.

Caratteristiche

  • Aggiornamento automatico DNS tramite container oznu/cloudflare-ddns
  • Interfaccia web Flask per monitoraggio in tempo reale
  • Auto-refresh AJAX senza ricaricare la pagina
  • Visualizzazione stato di sincronizzazione IP
  • Cache intelligente per ridurre chiamate API
  • Health check e logging strutturato
  • Design responsive dark mode

Requisiti

  • Docker e Docker Compose
  • Token API Cloudflare con permessi DNS edit
  • Zona DNS configurata su Cloudflare

Configurazione

  1. Crea il file .env nella root del progetto:
# Cloudflare
CF_API_TOKEN=your_cloudflare_api_token
CF_ZONE=tuodomain.it
CF_SUBDOMAIN=subdomain
CF_PROXIED=false
CF_TTL=120

# Frequenza controllo IP (cron syntax)
CF_CRON=*/5 * * * *

# Configurazione Container
DATA_VOLUME=./data
RESTART_POLICY=unless-stopped

# UI Settings
UI_REFRESH_SECONDS=60
UI_PORT=8088
  1. Avvia i container:
docker-compose up -d
  1. Accedi all'interfaccia web:
http://localhost:8088

Struttura Progetto

.
├── docker-compose.yml      # Configurazione Docker
├── .env                    # Variabili ambiente (gitignored)
├── ui/
│   ├── app.py             # Server Flask
│   ├── cloudflare.py      # API Cloudflare
│   ├── requirements.txt   # Dipendenze Python
│   └── templates/
│       └── index.html     # UI web
└── data/                  # Dati persistenti (gitignored)

API Endpoints

  • GET / - Interfaccia web
  • GET /api/records - JSON con stato record DNS
  • GET /health - Health check

Monitoraggio

L'interfaccia mostra per ogni record:

  • Nome FQDN
  • IP configurato nel DNS
  • IP pubblico attuale
  • Stato Proxy Cloudflare
  • Stato sincronizzazione (OK/MISMATCH/ERROR)
  • Ultimo aggiornamento

Ottimizzazioni

  • Cache Zone ID per evitare chiamate ripetute
  • Timeout su tutte le richieste HTTP
  • Validazione configurazione all'avvio
  • CORS abilitato per integrazioni esterne
  • Auto-refresh AJAX senza refresh completo
  • Gestione errori e logging strutturato

Troubleshooting

Verifica i log dei container:

docker-compose logs cloudflare-ddns
docker-compose logs cloudflare-ddns-ui

Verifica l'health status:

curl http://localhost:8088/health

Licenza

MIT

Description
No description provided
Readme 46 KiB
Languages
Python 56.2%
HTML 43.8%