← Todas las utilidades

NSTerm

Versión 26.1 (build 348) Prueba 30 días
NSTerm
Índice

Qué es NSTerm

nsterm (NSTerm) es un terminal web multi-sesión en un único binario Go: el administrador publica aplicaciones (un comando + argumentos + directorio + entorno + tamaño), los usuarios las abren en terminales con pestañas sobre WebSocket (xterm), y cada proceso queda registrado como sesión (app, usuario, PID, inicio, duración, hijos) que se puede supervisar y terminar. Acceso por grupos con cupo de sesiones simultáneas, auditoría y licencia con trial de 30 días.

Los comandos, apps y usuarios de los ejemplos son ficticios.

Casos de uso

1. Publicar la shell corporativa y abrirla en el navegador

Crear la app shell (/bin/bash) y abrirla con pestañas, reconexión y pantalla completa.

nsterm init ./miterm
nsterm start --config ./miterm
nsterm status

Flujo web: login → Administración → Aplicaciones → crear (ID, nombre, comando /bin/bash, args [], directorio, cols/rows, esquema de color, env {"TERM":"xterm-256color"}, expandir al contenedor) → Panel → Abrir → terminal con nueva pestaña (+), reconectar, desconectar y pantalla completa.

2. Dar a un equipo acceso limitado a una app con cupo

El grupo operadores puede usar consola-prod con máximo 2 sesiones simultáneas por usuario.

Flujo web: Usuarios → crear usuario → asignarle el grupo operadores → Grupos → asignar la app al grupo (límite max por usuario) → el usuario solo ve sus apps en el Panel; al superar el cupo ve el aviso de límite de sesiones.

3. Supervisar y terminar sesiones activas

Ver quién ejecuta qué, inspeccionar procesos hijo y terminar una sesión indicando el motivo.

Flujo web: Sesiones (app, usuario, PID, inicio, duración, hijos, actualización en vivo por WebSocket) → Terminar sesión (pide motivo) → queda registrado en auditoría. El Panel muestra el mismo resumen de sesiones activas con abrir/terminar.

4. Revisar quién hizo qué

Buscar en la auditoría los accesos, altas de apps y terminaciones de sesiones.

Flujo web: Auditoría → buscar/filtrar (hora, usuario, acción, detalle, IP) → actualizar. CLI: comprobar nsterm status y nsterm license para estado y trial.

Interfaz

Sesiones de terminal

Referencia

Comandos CLI

ComandoDescripción
nsterm init [dir]Crea el entorno (config.yaml + db/ + logs, admin/admin123)
nsterm start [dir]Arranca el servidor en background
nsterm stopPara el servidor
nsterm statusSi corre, PID y dirección
nsterm licenseEstado de licencia/trial y fingerprint
Flags globales--config <dir> (alias: dir posicional), --port N (override), --debug, --version

No hay subcomandos de gestión: usuarios, grupos, apps y sesiones se administran desde la web (rutas /api/admin/*).

Configuración principal (config.yaml)

ClaveDescripción
server.host / server.portEscucha (por defecto 0.0.0.0:8200)
database.pathSQLite (./db/nsterm.db)
auth.jwtSecret / jwtExpiryMin / cookieNameSesión (nsterm_session, 480 min)
license.trialDaysTrial (30)
logging.dir / maxSizeMB / maxAgeDays / maxBackups / compressRotación de logs (./logs, 10 MB, 30 días, 10 copias, comprimido)

Áreas de la web

Panel (apps disponibles + sesiones activas) · terminales (pestañas, /terminal/:appId, comprobar límite antes de abrir, WebSocket /api/terminal/:appId/ws) · sesiones (listado en vivo, hijos, terminar con motivo) · administración · usuarios (alta/edición, alias, grupos) · grupos (rol, apps asignadas, cupo max por usuario) · aplicaciones (comando, args, directorio, icono/logo, color, columnas/filas, esquema de color, entorno, expandir, activo) · auditoría (búsqueda, hora/usuario/acción/detalle/IP) · login, recuperación de contraseña, temas e idioma (EN/ES).

Ejemplos comentados

# 1. Entorno nuevo en puerto personalizado
nsterm init /opt/nsterm-prod
nsterm start --config /opt/nsterm-prod --port 8200
nsterm status
nsterm license

# 2. Directorio posicional como alias de --config
nsterm start /opt/nsterm-prod
nsterm stop

# 3. Debug temporal
nsterm start --config ./miterm --debug
# Comprobación previa a abrir un terminal (con cookie de sesión)
curl -b cookie.txt http://localhost:8200/api/terminal/shell/check

# Sesiones activas vía API
curl -b cookie.txt http://localhost:8200/api/sessions

Preguntas frecuentes

¿Con qué entro la primera vez? admin / admin123 (cambiar tras el primer login); el alta posterior de usuarios y grupos es vía web.

¿Cómo limito cuántas sesiones abre cada usuario? En Grupos → asignar app → campo max (0 = ilimitado); al superarlo el terminal muestra el aviso de límite.

¿Se registra por qué se terminó una sesión? Sí: al terminar pide el motivo y queda en la auditoría junto a logins, altas de apps y cambios de grupos.

¿Qué terminal emula? xterm con TERM=xterm-256color recomendado en el env de la app; cols/rows fijos o expandir al contenedor (la fuente se adapta).

También disponible en: en