Volver a la wiki

Página /servers — Vista mobile de servidores Hetzner

Página /servers — Vista mobile de servidores Hetzner

Qué es

Nueva ruta GET /servers del Workspace que muestra en formato mobile-first la lista de servidores Hetzner gestionados por la organización. Reemplaza el enlace roto del Quick Card “Servidores” en el home mobile, que antes apuntaba a / (recarga del home) y ahora navega a esta página dedicada.

La página usa Astro + React (client:load) con el componente ServersList.tsx y encaja dentro del layout SecondaryLayout.

Archivos clave

ArchivoRol
src/pages/servers.astroPágina Astro — enruta /servers, monta ServersList con client:load
src/components/servers/ServersList.tsxComponente React — fetch, estados y renderizado de cards
src/components/variants/mobile/V1HomeVivo.tsxQuick Card “Servidores” corregido: href: '/servers'

Comportamiento

Flujo de datos

ServersList hace fetch('/api/servers', { credentials: 'same-origin' }) en useEffect al montar. El resultado esperado es un objeto ServersResponse:

interface ServersResponse {
  servers: ServerInfo[];
  mock?: boolean;   // true si el token no está configurado
  error?: string;   // mensaje de error del endpoint
}

Estados gestionados

EstadoTriggerUI
LoadingInicialSpinner textual “Cargando servidores…”
fetchErrorError de red / HTTP no-okMensaje rojo con el error
mock / errordata.mock === true o data.error presenteBanner amarillo “Sin datos en tiempo real” con mensaje del endpoint
0 servidoresservers.length === 0Mensaje neutro “Sin servidores en Hetzner”
NormalArray con ≥1 servidorLista de ServerCard

ServerCard — campos mostrados

Bloque principal (siempre visible):

Bloque de métricas (visible solo si cpu_percent != null || net_in_mbps != null):

Colores de status

Status HetznerColor CSS variableLabel
running--successUP
starting--warningSTARTING
migrating--warningMIGRATING
stopping--warningSTOPPING
off--fg-dimOFF
cualquier otro--danger(status en mayúsculas)

Prerequisitos de configuración

Para mostrar métricas en tiempo real el endpoint /api/servers (CF Worker / Pages Function) necesita HETZNER_API_TOKEN como variable de entorno en Cloudflare Pages. Sin él el endpoint devuelve { mock: true, error: "..." } y el componente muestra el banner de aviso sin bloquear la UI.

Corrección incluida: Quick Card “Servidores”

En V1HomeVivo.tsx el array de Quick Cards tenía href: '/' para la entrada “Servidores”, lo que provocaba una recarga inútil del home en lugar de navegar. El commit corrige este valor a href: '/servers'.

-  { icon: '🛰', title: 'Servidores', ..., href: '/' },
+  { icon: '🛰', title: 'Servidores', ..., href: '/servers' },

Decisiones de diseño

Véase también

Subir