Skip to main content
VANTS funciona sobre un Worker de Cloudflare que sirve la web y la API, una base de datos Postgres en Neon y Auth0 para la identidad. Alrededor hay Neon Functions, un bot de Discord, un agente que vigila la plataforma y un bus de eventos que conecta los proyectos. Esta página describe cada pieza, el recorrido de una petición, los despliegues y las decisiones que condicionan el código.

Componentes

Las rutas son las de Vantsgames. vants-dev-launcher añade una home en Astro con islas React y Vue (webapp/) y servicios en contenedores Docker (services/api-gateway/ y services/matchmaking-service/), pero el Worker sigue siendo el único servidor de producción. Para encontrar el archivo exacto de cada cambio, consulta Mapa del código.

Recorrido de una petición

  1. El Worker recibe todas las peticiones y aplica la protección contra bots, los límites de uso y las cabeceras de seguridad.
  2. Las páginas y los archivos estáticos salen de vants-server/public/.
  3. Las lecturas públicas pasan por la Neon Function vantsdata, que solo acepta GET sobre una lista cerrada de tablas públicas.
  4. Las escrituras van siempre a la Neon Data API. El Worker reenvía el JWT de Auth0 del usuario y la RLS de cada tabla decide si la operación se permite.
El Worker no guarda credenciales de la base de datos. Las rutas, los parámetros y las respuestas de la API están en API pública, y las tablas en Esquema de la base de datos.

Despliegues

Un push a main lanza workflows de GitHub Actions independientes, según los archivos que cambien: Son workflows separados: el despliegue no espera a que terminen las pruebas. Los despliegues y las migraciones comparten una cola y se ejecutan de uno en uno. Otros workflows se ejecutan con un horario, como la sincronización con FACEIT, el monitor o el agente; la lista completa está en Workflows. Más detalle en Vantsgames, VantsBasededatos y Seguridad.

Decisiones

Las decisiones que costaría deshacer se registran en DECISIONS.md, en la raíz de Vantsgames y de vants-dev-launcher. Estas son las que más condicionan el código: Los términos propios de esta página están definidos en Glosario.