Guía de despliegue

Alojar Gatus en un VPS: página de estado config-as-code

Desplegar en un VPS Cloud →

Tutorial

Alojar Gatus en un VPS: página de estado config-as-code

Autoalojamiento4 min de lectura6 pasos

Uptime Kuma vigila que su servicio «responde». Gatus vigila que responde correctamente: código HTTP exacto, tiempo de respuesta por debajo de un umbral, contenido del body, caducidad del certificado TLS, resolución DNS hacia la IP correcta. Y lo publica todo en una página de estado lista para compartir con sus clientes — todo ello gobernado por un archivo YAML versionable, sin ninguna interfaz que configurar.

Contenido· Por qué Gatus en lugar de una monitorización de ping clásica1/5
  1. 01Por qué Gatus en lugar de una monitorización de ping clásica
  2. 02Lo que Gatus vigila — y Uptime Kuma no puede
  3. 03Arquitectura: un solo contenedor Go, < 256 MB de RAM
  4. 04Autoalojar Gatus en un VPS en 6 pasos
  5. 05Consejo: versione su config.yaml en un repositorio privado

Por qué Gatus en lugar de una monitorización de ping clásica

Un ping HTTP dice que su servidor responde. Gatus dice que responde *como debería*: usted define las condiciones exactas — [STATUS] == 200, [RESPONSE_TIME] < 800, [BODY] contains "ok", [CERTIFICATE_EXPIRATION] > 14d — y Gatus lanza una alerta en cuanto una condición deja de cumplirse.

La diferencia concreta: usted descubre que una API devuelve 500 en silencio, que un certificado caduca en 10 días o que una resolución DNS apunta a la IP equivocada — antes de que lo descubran sus clientes. Todo ello gobernado por un archivo YAML que versiona como el resto de su infraestructura.

Lo que Gatus vigila — y Uptime Kuma no puede

  • Condiciones ricas sobre HTTP: código de estado exacto, tiempo de respuesta en ms, contenido del body por regex, valor de un campo JSON — en una sola definición de endpoint.
  • Caducidad de los certificados TLS: [CERTIFICATE_EXPIRATION] > 14d dispara una alerta cuando quedan menos de 14 días para el vencimiento.
  • TCP, ICMP, DNS, WebSocket: vigile una base de datos (tcp://db:5432), un ping de red (icmp://gateway), una resolución DNS (dns://ns1.example.com) o un eco WebSocket desde la misma configuración.
  • Página de estado pública: una URL que dar a sus clientes para que comprueben el estado de sus servicios sin escribirle.
  • 40+ canales de alerta: Slack, PagerDuty, OpsGenie, Discord, Teams, ntfy, Pushover, Telegram, correo electrónico, webhook — con umbrales de disparo configurables para evitar el ruido de los parpadeos.

Arquitectura: un solo contenedor Go, < 256 MB de RAM

Gatus es un binario Go distribuido en una imagen distroless (< 20 MB). Un único contenedor, sin ninguna dependencia externa en tiempo de ejecución: el historial de los checks se almacena en una base SQLite dentro de un volumen Docker. En ServOrbit, un init container alpine:3.20 genera un archivo config.yaml de arranque en el primer lanzamiento — después lo edita por SSH para añadir sus propios endpoints.

La huella de memoria en reposo es inferior a 80 MB. Un VPS de 512 MB es más que suficiente, incluso si coloca Gatus junto a la aplicación vigilada.

Autoalojar Gatus en un VPS en 6 pasos

  1. Contrate un VPS ServOrbit

    Cualquier plan a partir de 512 MB de RAM sirve — Gatus funciona por debajo de 80 MB en reposo. Para una monitorización fiable, coloque Gatus en un VPS separado del de la aplicación vigilada: si el VPS de la aplicación cae, el VPS de monitorización sigue emitiendo alertas.

  2. Despliegue desde el Marketplace con un clic

    Panel de control ServOrbit → Marketplace → Monitoring → Gatus → Desplegar. Un init container escribe un archivo config.yaml de ejemplo y después Gatus arranca. La página de estado está accesible en http://ip-vps:8080 en unos segundos.

  3. Edite el archivo de configuración

    Conéctese por SSH y edite /opt/stacks/gatus/config/config.yaml. Sustituya el endpoint de ejemplo por sus servicios reales. Un endpoint HTTP mínimo tiene este aspecto:

    endpoints:
      - name: "Mi API"
        url: "https://api.su-dominio.com/health"
        interval: 1m
        conditions:
          - "[STATUS] == 200"
          - "[RESPONSE_TIME] < 1000"

    Reinicie con cd /opt/stacks/gatus && docker compose restart gatus — los nuevos endpoints aparecen en la página de estado en unos segundos.

  4. Configure las alertas

    Añada un bloque alerting: en su configuración. Ejemplo con ntfy (otra app del Marketplace):

    alerting:
      ntfy:
        url: "http://su-vps-ntfy:8080"
        topic: "gatus-alertas"
        priority: 3
        failure-threshold: 2
        success-threshold: 3
    
    endpoints:
      - name: "Mi API"
        url: "https://api.example.com/health"
        interval: 1m
        alerts:
          - type: ntfy
        conditions:
          - "[STATUS] == 200"

    Gatus solo alerta tras 2 fallos consecutivos (evita los falsos positivos) y envía una alerta de restablecimiento tras 3 éxitos consecutivos.

  5. Comparta la página de estado

    La página de estado en el puerto 8080 está lista para compartir de inmediato. Apunte un subdominio (status.su-dominio.com) a la IP de su VPS y configure nginx para hacer de proxy hacia el puerto 8080 — o active requireDomain: true en el Marketplace para obtener un vhost nginx completo generado por ServOrbit.

  6. Conectarse por primera vez

    Gatus no tiene cuentas: la URL muestra directamente la página de estado, pública por defecto. Su verdadera primera etapa es la configuración — edite el config.yaml para sustituir el endpoint de ejemplo por sus propios servicios y después reinicie con docker compose restart gatus.

Consejo: versione su config.yaml en un repositorio privado

El archivo config.yaml de Gatus es su fuente de verdad para la vigilancia. Inicialice un repositorio git en /opt/stacks/gatus/, haga un commit de su configuración con cada modificación, y tendrá un historial completo de sus endpoints vigilados, de los umbrales de alerta y de su evolución en el tiempo — exactamente igual que su código de infraestructura.

Su página de estado, su servidor

Despliegue Gatus en un VPS ServOrbit y obtenga una monitorización de salud config-as-code con 40+ canales de alerta — sin terceros, sin suscripción, sin una base de datos pesada.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva