Acceso a la terminal en el navegador via http/https
WeTTY es una alternativa a ajaxterm y anyterm, pero en mi opinión es una mucho mejor solución ya que WeTTY usa xterm.js, que es una implementación completa de emulación de terminal escrita completamente en JavaScript. WeTTY usa websockets en lugar de Ajax y, por lo tanto, mejora en gran medida los tiempos de respuesta.
Si quieren ver de que trata rápidamente lo más fácil es descargar la imagen de Docker.
docker run --rm -p 3000:3000 wettyoss/wetty --ssh-host=<Tu-IP>
y podremos abrir una sesión ssh al host proporcionado por Tu-IP
en la URL http://localhost:3000/wetty.
Se recomienda llevar WeTTY detrás de un reverse proxy inverso para tener seguridad HTTPS y posiblemente compatibilidad con Let’s Encrypt.
¿Para qué?
Yo he visto que se usa mucho en IDEs, como Visual Studio Code, Atom,etc, en sitios de capacitación como codeacademy o cratecode, en productos como portainer, kubebox, o Nomad de Hashicorp.
Manos a la obra
El código es libre bajo licencia MIT, lo pueden descargar del siguiente repositorio en Github.
https://github.com/butlerx/wetty
El commit inicial de WeTTy se realizó en marzo de 2014, es decir ya tiene casi 10 años y tiene actualizaciones hasta este mes, sigue vivo pues.
Cabe mencionar que al momento de realizar este tutorial me di cuenta que Amazon tiene una herramienta que se llama ECS exec que es una alternativa para conectarse a los contenedores de Fargate o EC2 , la cual es basicamente la razón por la cual quiero implementar Wetty, pero bueno eso lo dejaremos para un siguiente artículo.
Instalación
WeTTY puede ser instalado desde la fuente o desde un paquete npm.
Para instalar desde la fuente ejecutaremos los siguientes comandos:
$ git clone https://github.com/butlerx/wetty.git
$ cd wetty
$ yarn install
$ yarn build