Skip to content

Frontend de SynVirt

Synced read-only from /home/synnet/mirrors/synvirt-product/docs/frontend.md. Edit at the source, not here.

Documentación del frontend Next.js ubicado en web/.

Ver web/README.md para detalles del stack y desarrollo.

El frontend NUNCA importa código Rust. Toda comunicación es vía HTTP:

  • REST API: GET/POST/PUT/DELETE en /api/v1/*
  • WebSockets: /ws/console/* (consola VNC), /ws/events (push events), /ws/ai/stream (inference streaming), /ws/updates/progress (update progress)
  • Traducciones: /api/v1/i18n/{locale}/{namespace} para cargar strings del backend

Los tipos de la API se generan desde Rust hacia TypeScript usando ts-rs (decisión pendiente para Fase 1). Mientras tanto, los tipos se mantienen manualmente en web/src/types/api/.

Single source of truth: module-i18n del daemon. El frontend usa next-intl configurado para cargar mensajes desde /api/v1/i18n en runtime, NO desde archivos JSON locales del repo del frontend. Esto garantiza que daemon, installer, CLI y frontend siempre tengan las mismas traducciones.

Default locale: en-US. Bundled: en-US, es-MX, es-ES, pt-BR. Locales adicionales se descargan vía module-update como language packs.

  • Desarrollo: npm run dev en localhost:3000 con proxy a daemon en localhost:8443
  • Producción: npm run build genera web/out/ con HTML/CSS/JS estático
  • El daemon sirve estos archivos desde /opt/synvirt/web/ en producción