ZoneMirror, código abierto
ZoneMirror: sincronizar DNS de cPanel a Cloudflare en tiempo real
Plugin de cPanel y WHM con licencia MIT, multiinquilino, con tokens cifrados por usuario y un demonio supervisado por systemd. Sin cron.
- de análisis estático con PHPStan
Nivel 8
de análisis estático con PHPStan
- métodos de test en verde en PHP 8.2, 8.3 y 8.4
690
métodos de test en verde en PHP 8.2, 8.3 y 8.4
- licencia
MIT
licencia
Lo normal para llevar el DNS de cPanel a Cloudflare es un script a mano ejecutado por cron: exporta la zona, la transforma y la envía. Funciona para una zona, un administrador y un servidor, y se rompe en cuanto varios usuarios de cPanel necesitan su propia cuenta de Cloudflare, propagación en tiempo real o una vuelta atrás segura cuando la API limita el ritmo.
El planteamiento
ZoneMirror lo sustituye por un plugin orientado a eventos: los cambios en el editor de zonas de cPanel disparan los hooks estándar, caen en colas SQLite por usuario, y un demonio de root supervisado por systemd las vacía contra la API de Cloudflare, con una instantánea de zona por ciclo, presupuesto de límite de ritmo por servidor y modo de simulación.
Lo que protege
Cada usuario de cPanel da de alta sus zonas con su propio token de Cloudflare, así que un servidor puede replicar N usuarios por N zonas.
Los tokens van cifrados en reposo con libsodium XChaCha20-Poly1305, con AES-256-GCM de reserva, y los hooks de usuario nunca leen la clave maestra, que es solo de root. Un redactor de logs limpia cabeceras de autorización e identificadores largos de cada línea antes de escribirla.
El motor de diferencias protege lo que la sincronización no debe destruir: registros de autenticación de correo, registros que solo existen en Cloudflare y entradas ACME o DMARC que nunca deben ir por proxy. Además hay bloqueos de registro con cinco alcances para dejar registros concretos fuera de la sincronización.
Cómo se publica
El repositorio se lleva como un proyecto de producción: PHPStan en nivel 8, 690 métodos de test en integración continua sobre tres versiones de PHP, controles de shellcheck y formato, versionado semántico con verificación SHA-256 y un instalador de una línea que registra los hooks, arranca el demonio y deja una CLI con autoactualización.
- php
- cpanel