wnexio.

Panel interno · Ecosistema de proyectos

wnexio. panel
—
Proyectos totales
—
En producción
—
En desarrollo
—
Gasto mensual estimado
—
Total gastado (registrado)

Memoria del servidor

Cargando…

Disco del servidor

Cargando…

Procesos en vivo (PM2)

ProcesoEstadoMemoriaCPUReiniciosActivo desde

Herramientas y plataformas del ecosistema

Principio de diseño

Todos los proyectos comparten los mismos cimientos (sistema, conexiones, seguridad, despliegue) pero cada uno es distinto en su negocio. Un cambio en la forma de autenticar o guardar datos se aplica igual en todos; la lógica propia de cada rubro vive solo en su proyecto.

La regla de oro

Los archivos base (conexión a base de datos, autenticación, cliente de API) no se editan por proyecto. Si algo hay que mejorar ahí, se mejora en la plantilla wnexio-base y se propaga a todos.

Stack estándar

RuntimeNode.js + Express
Base de datosPostgreSQL (una base por proyecto) — o SQLite en herramientas personales de bajo tráfico
ConexiónPool de conexiones en src/db.js
AutenticaciónJWT (sesión) + bcrypt (contraseñas)
Seguridadhelmet + rate limiting + CORS
FrontendHTML/JS plano + cliente común js/api.js, sin framework ni build step
ConfiguraciónArchivo .env por proyecto
DespliegueFileBrowser/SFTP + PM2 + Nginx (Hetzner) — sin CI/CD
ProcesoUn usuario del sistema operativo por proyecto (no root) — PM2 corre bajo ese usuario
Acceso al servidorSSH solo por llave — login por contraseña desactivado
RedFirewall del servidor: solo 22 (SSH), 80 y 443 (web) abiertos al público
DNS/CDNCloudflare — un registro explícito por subdominio (sin comodín)

Seguridad reforzada (actualizado 31-ago-2026)

Tras un incidente de seguridad en el servidor original (un rootkit instalado explotando login SSH por contraseña abierto a internet), el servidor nuevo se construyó desde cero con estas protecciones de fábrica:

Un usuario por proyectoCada app corre aislada — si una se compromete, no puede tocar el código ni los datos de las demás
Sin login por contraseñaSolo se entra con llave SSH — elimina los ataques de fuerza bruta (el servidor viejo recibió 17,000+ intentos en 3 semanas)
Firewall de redNingún puerto de aplicación (3000-3070) queda expuesto directo a internet, solo Nginx
Actualizaciones automáticasParches de seguridad del sistema operativo se instalan solos
DNS explícitoSin comodín — un subdominio que no se creó a propósito, no responde nada

Estructura de carpetas (plantilla base)

proyecto/
├── server.js          arranque: seguridad + monta rutas
├── package.json
├── .env                configuración (no se sube al repo)
├── database/
│   └── schema.sql      definición de tablas
├── src/
│   ├── db.js           conexión a base de datos (idéntico siempre)
│   ├── middleware/
│   │   └── auth.js      JWT + roles (idéntico siempre)
│   └── routes/          un archivo por módulo de negocio
├── public/              frontend (landing + panel)
│   ├── js/api.js         cliente de API (idéntico siempre)
│   └── panel/            pantallas del sistema
└── scripts/
    └── seed.js          crea el primer administrador

Servidor

wnexio-server-2 · Hetzner VPS Helsinki · acceso SSH solo por llave, sin contraseña. Cada proyecto corre bajo su propio usuario del sistema, con PM2 independiente, detrás de Nginx en su propio subdominio de wnexio.com (Cloudflare, registro DNS explícito).

Migración en curso desde el servidor original (comprometido por un ataque de fuerza bruta en agosto 2026) — proyectos migrados hasta ahora: wnexio-panel. El resto sigue temporalmente en el servidor anterior hasta completar la migración uno por uno.

Total mensual estimado: —
Total gastado (registrado): —
FechaProyectoCategoríaConceptoMontoPeriodicidad

Nuevo proyecto

Nuevo gasto

Mi cuenta

Contraseña actualizada correctamente.