- JavaScript 73.1%
- HTML 19.8%
- Go 4%
- Shell 2.1%
- PowerShell 1%
Adds administrative features and emulator OAuth flow: - Backend: enhance /admin routes (user search/pagination, prevent removing last admin, demote/promote, reset avatar, delete user cleans avatar, sessions list + revoke, include admins in stats). Add AVATARS_DIR and filesystem cleanup. - Content: add /api/content/site-status and expose maintenance_mode, maintenance_message and motd in admin settings; allow updating them. - Raptor accounts-api: implement PKCE OAuth flow for the NeXo emulator (/api/oauth/authorize and /api/oauth/token) issuing nex_token JWT. - Web: overhaul admin-panel UI (users, sessions, server settings, logs, modals, avatar handling) and add visual refresh styles in app.js. |
||
|---|---|---|
| docs | ||
| nex-server | ||
| scripts | ||
| src | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| docker-compose.yml | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| schema.sql | ||
NeXo-Server
Infraestructura completa de red para NeXo Network — un reemplazo autoalojado de Nintendo Switch Online.
Qué es esto
NeXo-Server es el backend completo de NeXo Network: la infraestructura que permite jugar online sin los servidores de Nintendo, tanto desde el emulador NeXo-emu como desde una Switch real con Atmosphere. Todo el servidor vive en un único repositorio (monorepo): no hay un repo por juego ni por servicio.
No afiliado con Nintendo. NeXo no incluye ni distribuye firmware, claves ni juegos: cada usuario aporta los suyos, obtenidos legalmente.
Arquitectura en 30 segundos
NeXo tiene dos planos, ambos en este repo:
- Plano HTTP (Node.js + Fastify + MySQL) — dauth, cuentas/BAAS, amigos, presencia, BCAT, configuración y web. Lo que el cliente consulta por HTTPS.
- Plano NEX/PRUDP (Go, sobre UDP) — servidores de juego (auth + secure) y matchmaking.
El flujo online es: DNS redirect → dauth → BAAS (token de cuenta) → NEX auth → NEX secure + matchmaking → P2P. Detalle completo en docs/ARCHITECTURE.md.
Estructura del repositorio
Nexo-Server/
├── src/ # Plano HTTP (Node.js + Fastify)
│ ├── server.js # arranque + registro de plugins
│ ├── modules/
│ │ ├── accounts/ # cuentas
│ │ ├── raptor/ # APIs BAAS: accounts, friends, bcat, config, notif, chat...
│ │ ├── dauth/ # [esqueleto] token de dispositivo
│ │ ├── baas/ # [esqueleto] JWK Set (verificación de id_token)
│ │ ├── games/ # puentes de juego (legacy)
│ │ └── content/
│ └── web/ # sitio y panel
├── nex-server/ # Plano NEX/PRUDP (Go)
│ ├── cmd/
│ │ ├── mk8-auth/ # Mario Kart 8 Deluxe — auth (proto 10)
│ │ ├── mk8-secure/ # Mario Kart 8 Deluxe — secure + matchmaking
│ │ └── nncs/ # [esqueleto] respondedor NAT-check (P2P)
│ └── internal/ # accounts, authserver, matchmaking
├── docs/ # arquitectura, API, despliegue, setup
├── db / schema.sql # esquema MySQL
├── scripts/ # utilidades (certs, hosts, migraciones)
├── .env.example # TODA la configuración en un sitio
└── docker-compose.yml # levantar el stack completo
Puesta en marcha rápida
cp .env.example .env # rellena secretos, DB, dominio
npm install
npm run dev # arranca el plano HTTP (y el NEX Go si hay Go instalado)
Para el plano NEX por separado:
cd nex-server
go build ./...
./mk8-auth # requiere NEXO_MK8_ACCESS_KEY y NEXO_MK8_SECURE_PASSWORD en ../.env
Documentación detallada en docs/: API · Despliegue · NEX en Go · Setup Switch.
Estado
Ver la tabla de componentes en docs/ARCHITECTURE.md. En curso: completar Mario Kart 8 Deluxe de punta a punta (auth → secure → matchmaking) e implementar el flujo limpio dauth → BAAS para unificar emulador y Switch real.
Licencia
GPL-2.0. Todo el código propio de NeXo se publica bajo esta licencia; se conservan las atribuciones de las bibliotecas de terceros usadas.