jazkarta / edx-platform-for-isc

fork of the edx platform for development w/ isc
GNU Affero General Public License v3.0
1 stars 2 forks source link

Web-based SSH client #22

Open natea opened 8 years ago

natea commented 8 years ago

Investigate https://github.com/liftoff/GateOne and see about turning it into an XBlock

there is also this: https://github.com/METIT-BU/xblock-carouselworkspace

bryanlandia commented 8 years ago

My understanding of Stuart's use case is this: ISC provides training in HealthShare, Cache, Ensemble via Open EdX LMS. As part of training, they want to provide browser-based shell access to a machine running HealthShare, Cache, Ensemble, depending on the course. My guess is that they might like this to be available in a tab on the Course, rather than just within a specific unit, so that the student can always jump to the shell. They want to make sure there is a Docker container ready to go that the students will log in to. That's a little different than what xblock-launchcontainer provides, which adds a launch container component to a specific unit (this is the standard XBlock way of doing things). So, if that is correct...

GateOne opens up a new port to listen for requests and provide the SSH tunneling. We'll have to look at how the authentication is going to work to the new server and how that interacts with the LMS, though my impression is that the isc.appsembler.com/deploy code has some of what we need for auth against an EdX student id. Running GateOne on the LMS/CMS server will probably require some additional ansible config, probably a new program managed by Supervisor, … so it's not going to be done in just a new XBlock. I haven't fully investigated how it works yet, though.

natea commented 8 years ago

@bryanlandia does anything need to run on the server for GateOne? My understanding was that it was just a javascript-based client that connects over TCP to a remote SSH server (in our case, a Docker container)?

bryanlandia commented 8 years ago

@natea - Yes, GateOne involves server code. GateOne uses Python (with the Tornado framework) to run a daemonized process that handles the terminal processes.