Skip to main content
Repositorio principal de la plataforma de torneos VANTS. Antes se llamaba Playvants-web, y el código conserva ese nombre en algunos identificadores, como el proyecto playvants-web del bus de eventos. Contiene el Worker de Cloudflare que sirve la web y la API, las Neon Functions, el bot de Discord, el agente VANTS, el bus de eventos y los workflows que lo prueban y despliegan. La API pública y el bot de Discord se documentan a partir del código de este repositorio.

Estructura

Rutas públicas

El Worker expone rutas limpias como /es/tournaments/:juego/:estado/ (también /en/...) y una API JSON pública (/api/tournaments, /api/teams, /api/articles, /api/search, entre otras). Las rutas, los parámetros y las respuestas están en API pública.

Despliegue

El Worker sirve el frontend desde vants-server/public/. Verificación posterior al despliegue: las páginas principales deben responder 200 con un User-Agent de navegador. Sin User-Agent la protección contra bots responde 403. Para revertir: git revert <sha> y push a main; el CI vuelve a desplegar. Los workflows que despliegan y las precauciones antes de fusionar a main están en Seguridad.

Workflows

Los workflows están en .github/workflows/. Todos se pueden lanzar también a mano desde la pestaña Actions de GitHub. cloudflare-deploy, neon-migrate y neon-deploy-functions comparten la cola deploy-prod, así que nunca se ejecutan a la vez.

Secretos necesarios

Las credenciales de Cloudflare, Neon, FACEIT, Steam, HenrikDev, Discord y del servicio de agente se configuran como secrets del repositorio (GitHub) o del Worker (Cloudflare). No viven en el código. Cómo guardarlos y rotarlos: Seguridad.
Nunca subas secretos ni archivos .env al repositorio.

Bot de Discord

Las variables de entorno están en bot/.env.example. Además del token del bot y la cadena de conexión de Neon (sslmode=require), el bot usa:
Los comandos viven en bot/commands/: análisis, comunidad, informes, moderación, perfil, verificar, vincular y agente. Cada comando, con sus permisos, está en Bot de Discord.