Ir al contenido

Banner para el sitio web

Muestra un banner en tu propio sitio web cuando algún servicio está caído («2 services are down»), alimentado por una página de estado publicada. Cuando todo va bien el banner permanece oculto, a menos que pidas que se muestre siempre («All systems operational»).

Tres formas de añadirlo, de la más simple a la más controlada. Los archivos listos para copiar están en la carpeta integrations/ del repositorio.

En DumbMonit, abre los ajustes de la página de estado (Páginas de estado, Editar): la sección Banner de estado para tu sitio web, al final del todo, ofrece los fragmentos HTML y PHP ya rellenados con un botón Copiar, un enlace a esta página y un botón para descargar el plugin de WordPress en .zip, listo para subir.

Pega esto antes de </body>, con la dirección de tu servidor y la dirección de la página:

<script async
src="https://monit.example.com/api/public/status/my-page/banner.js"
data-position="top" data-show="issues" data-lang="en"></script>
AtributoValoresPor defecto
data-positiontop, bottomtop
data-showissues (solo cuando algo falla), alwaysissues
data-langen, fr, de, es, it, pt, pt-BR, ru, zh-Hansidioma de la página, si no en

El script no tiene dependencias, se dibuja dentro de un Shadow DOM para que tus estilos no lo afecten, sigue la preferencia de tema claro u oscuro del visitante y puede descartarse (hasta que se cierre la pestaña del navegador). Lee el documento JSON público de la página, que el servidor permite consultar a cualquier sitio web (Access-Control-Allow-Origin: *, sin cookies). Solo se abre así el documento público de la página de estado; el resto de la API mantiene sus reglas.

Copia integrations/wordpress/dumbmonit-status-banner en wp-content/plugins/, actívalo y luego abre Settings > DumbMonit Banner e introduce la URL de la página de estado (https://monit.example.com/api/public/status/my-page), la posición y el modo de visualización. El plugin obtiene el JSON desde el servidor, lo cachea durante un minuto y escapa todo lo que imprime.

El servidor de DumbMonit puede estar en una dirección privada (LAN): el plugin solo solicita la URL exacta que guardaste (comprobada contra el patrón /api/public/status/<address>, con las redirecciones desactivadas). Si la dirección no es válida, la página de ajustes muestra un error y conserva el valor anterior. Si no se puede obtener la página de estado, se muestra un aviso en el administrador de WordPress (y al guardar), en lugar de fallar en silencio.

El texto del banner es traducible (dominio de texto dumbmonit-status-banner, plantilla en languages/); sigue el idioma del sitio WordPress. El JSON público de estado no lleva idioma, así que no puede elegir uno.

Para cualquier sitio PHP, sin framework:

require __DIR__ . '/banner.php';
dumbmonit_banner('https://monit.example.com/api/public/status/my-page',
['position' => 'top', 'show' => 'issues', 'ttl' => 60]);

El helper solo acepta URLs http y https, usa un tiempo de espera de 3 segundos, no sigue redirecciones, mantiene una caché de archivo en el directorio temporal y no imprime nada si no se puede alcanzar el servidor (el fallo se escribe en el log de errores de PHP). Los textos están en inglés por defecto; pasa 'lang' => 'fr' o un array 'strings' para cambiarlos. Una dirección privada (LAN) funciona. Consulta integrations/php/example.php.