Open mbmilligan opened 6 years ago
I think the desktop session should definitely be configurable and most likely through traitlets. Since this extension won't work without a display and VNC server, and since a lot of people may experience this through a container, I think its fine to at least initially choose an opinionated X11+VNC combo that works best. I'm also totally fine if people want to configure that too. Getting the display server + vnc server + desktop session coordinated will be the job of Circus or whatever process manager we settle on.
I'll explore Circus a little bit more but I'm somewhat hesitant to go forward with it since it doesn't work with tornado >= 5. @yuvipanda made the sensible suggestion that the process management should either be done through a python api, or a single easy distributable binary. He mentioned that the Supervisor aspects of nbserverproxy are somewhat racy. I'll look into supervisord and one or two others.
I think #5 is easily fixable without additional configuration. #1 is annoying.
I've been a bit busy with a different project so I haven't looked at this recently but I have some time next week. I was going to first focus on #2 by way of the service management (unless you're interested in that one). Thanks for pushing forward!
Ok. In the short term I'm going to be focusing on using tightvnc as described here: https://github.com/novnc/noVNC/wiki/advanced-usage -- that lets us be agnostic about things like choice of window manager since the user can just drop in a new xstartup script for tightvnc to use (maybe via traitlet later on). Also, tight encoding is more compact than what x11vnc does on its own, and I'm a little worried about load on the jupyterhub proxy once I have multiple users running simultaneous vnc sessions.
Circus exploration probably also deserves its own issue thread, unless you want to continue that discussion under #2
I've switched to tightvncserver by default and added traitlets.
Also switched from circus to supervisor.
Yeah, its easier to track issues individually but I'm fine if you want to keep this as a meta issue.
Neat! Over in my fork I've also been working on getting TightVNC working, but your work here seems further along. You might find that repo interesting anyway, since I've got the package list and scripts worked out to start up a full xfce desktop (with some quirks still to work out...)
Yes, let's keep this thread open as a meta, unless you'd like to open a Gitter channel or some such for general discussion.
I've removed the desktop session traitlet in favor of ~/.xinitrc. As you mentioned, this makes it easier to configure the user environment and simplifies the supervisor configuration.
Again, thanks for taking the initiative to throw this together! I've gotten a great response in some demos I've run lately, and I've been asked to put some effort into moving this from proof-of-concept to something we're comfortable deploying at some kind of beta level. So I'd like to propose a roadmap for doing that.
Thoughts? I will be working along these lines over the next few weeks, but it would be great to coordinate and try to avoid duplication of effort and/or working in conflicting directions.