Repolode
butlerx

butlerx/wetty

Un emulador de terminal que se abre en el navegador, se sirve por HTTP/HTTPS y está basado en xterm.js y WebSockets.

Estrellas
5,479
Forks
770
Issues abiertos
15
Último commit
hace 8 días

¿Qué es?

WeTTY ofrece una shell en el navegador. Ejecuta un servidor Node.js que sirve una página de terminal xterm.js y retransmite la entrada y la salida a una shell local o a un servidor SSH mediante WebSockets. A diferencia de terminales web más antiguos, como Ajaxterm y Anyterm, usa WebSockets en lugar de consultas periódicas con Ajax, lo que mantiene bajos los tiempos de respuesta al pulsar teclas.

Cuando se ejecuta como root, WeTTY inicia /bin/login para que los usuarios puedan ingresar un nombre de usuario. De lo contrario, inicia ssh y se conecta a localhost de forma predeterminada; también puedes indicarle un host remoto con las opciones de host, puerto y usuario de SSH. La autenticación puede realizarse con contraseña o clave pública, y el servidor requiere una lista explícita de orígenes del navegador permitidos. Puede ejecutarse desde npm, desde una imagen de Docker o detrás de un proxy inverso, como nginx o traefik, para usar HTTPS.

Funciones clave

  • 01Ejecuta un emulador de terminal completo en el navegador mediante xterm.js.
  • 02Usa WebSockets (Socket.IO) para transmitir la entrada y la salida con baja latencia.
  • 03Se conecta a una shell de inicio de sesión local o a un servidor SSH remoto.
  • 04Admite autenticación SSH con contraseña y clave pública.
  • 05Requiere una lista de orígenes permitidos y ofrece una ruta base configurable.
  • 06Se distribuye como paquete npm e imagen de Docker.

Casos de uso

  • Dar a los miembros del equipo acceso a la shell de un servidor desde el navegador, sin un cliente SSH nativo.
  • Ofrecer una terminal web en una máquina interna detrás de un proxy inverso.
  • Acceder a un servidor doméstico o a una máquina de laboratorio desde un dispositivo sin una aplicación de terminal.

Inicio rápido

  1. 1

    Instala WeTTY globalmente con npm

    npm -g i wetty
  2. 2

    Inicia WeTTY con un origen de navegador permitido

    wetty --allowed-origin http://yourserver:3000
  3. 3

    Abre la dirección del servidor en el navegador e inicia sesión

Antes de usarlo

  • Requiere node 20 o posterior y herramientas de compilación como make, python y build-essential.
  • Requiere configurar explícitamente --allowed-origin antes de aceptar conexiones.
  • Proporciona acceso completo al terminal, por lo que debe protegerse con HTTPS y un proxy inverso.

En colecciones

Temas

Preguntas frecuentes

¿Qué es wetty?
Un emulador de terminal que se abre en el navegador, se sirve por HTTP/HTTPS y está basado en xterm.js y WebSockets. WeTTY ofrece una shell en el navegador. Ejecuta un servidor Node.js que sirve una página de terminal xterm.js y retransmite la entrada y la salida a una shell local o a un servidor SSH mediante WebSockets. A diferencia de terminales web más antiguos, como Ajaxterm y Anyterm, usa WebSockets en lugar de consultas periódicas con Ajax, lo que mantiene bajos los tiempos de respuesta al pulsar teclas.
¿wetty es gratuito? ¿Qué licencia tiene?
wetty es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿wetty sigue mantenido?
Mantenimiento activo. El último commit de wetty fue el 30 oct 2026.
¿Para qué puedo usar wetty?
Dar a los miembros del equipo acceso a la shell de un servidor desde el navegador, sin un cliente SSH nativo. Ofrecer una terminal web en una máquina interna detrás de un proxy inverso. Acceder a un servidor doméstico o a una máquina de laboratorio desde un dispositivo sin una aplicación de terminal.
¿Cómo se instala wetty?
Instala WeTTY globalmente con npm: npm -g i wetty Inicia WeTTY con un origen de navegador permitido: wetty --allowed-origin http://yourserver:3000 Abre la dirección del servidor en el navegador e inicia sesión
¿Dónde consigo wetty?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/butlerx/wetty

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados