Estoy trabajando en una aplicación Django con las siguientes características.
terminal en línea a todos los usuarios en mi red local
El marco del terminal debe abrirse en la vista inferior , tan pronto como inicien sesión.
Hay un editor de código en el marco superior .
Existe una cuenta de Linux en el servidor con las mismas credenciales que utilizan para iniciar sesión.
Lo que quiero:
Tenga en cuenta que todo esto es local, por lo que las cuentas son todas locales, accesibles.
He creado la vista del editor superior, por ahora y se ve así
La imagen del terminal que se muestra a continuación es de CodingGround
¿Cómo agrego este tipo de terminal aquí? ¿Cómo lo hacen sitios como StudyTerminal ? ¿Cómo puedo implementar esto?
He visto implementaciones de shellInaBox y GateOne , pero ocupan espacio de pantalla completa y son su propio servidor. No quiero otro servidor solo para proporcionar una terminal. ¿Alguien puede ayudarme a resolver esto?
Probablemente como una interfaz de terminal Jquery/AJAX que toma los siguientes parámetros:
new terminal{ ssh_location : 10.10.56.24, port: 12001, username: username, password: ######, window_height: 100px; window_width: 200px; resizable:none }
Lo que es muy importante es que la sesión de terminal no debe ocupar la pantalla completa. Las funcionalidades pesadas, como las sesiones de múltiples usuarios, la seguridad pueden o no ser necesarias.
Esto es nigromancia real, pero estoy buscando y respondiendo todas las preguntas sobre terminales web.
Tienes dos opciones principales:
El primero permitirá crear una terminal Linux real, puede conectarla a un TTY real de Unix. Con xterm.js puede crear SSH real donde incluso puede ejecutar un editor como vi.
Aquí hay un artículo que muestra cómo crear una terminal con xterm.js: Cómo crear terminales basadas en la web
La segunda opción te permitirá crear una Terminal web donde puedes tus cosas en JavaScript. Pero si quieres usar Django y AJAX, también puedes hacerlo.
Y aquí hay un artículo sobre cómo usar jQuery Terminal: ¿Cómo crear un terminal interactivo como un sitio web con JavaScript?