# 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: ```env # 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 ``` 2. Avvia i container: ```bash docker-compose up -d ``` 3. 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: ```bash docker-compose logs cloudflare-ddns docker-compose logs cloudflare-ddns-ui ``` Verifica l'health status: ```bash curl http://localhost:8088/health ``` ## Licenza MIT