Frontend de SynVirt
Synced read-only from
/home/synnet/mirrors/synvirt-product/docs/frontend.md. Edit at the source, not here.
Frontend de SynVirt
Section titled “Frontend de SynVirt”Documentación del frontend Next.js ubicado en web/.
Estado: Pendiente (Fase 1)
Section titled “Estado: Pendiente (Fase 1)”Ver web/README.md para detalles del stack y desarrollo.
Comunicación con el daemon
Section titled “Comunicación con el daemon”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
Sincronización de tipos
Section titled “Sincronización de tipos”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/.
Internacionalización
Section titled “Internacionalización”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.
Build pipeline
Section titled “Build pipeline”- 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