Issue
I want to run an application/IDE which is not supported
Can I run pycharm in Domino? Can I use pycharm?
Root cause
IDE or CE's which run as a web-service are the easiest to support. Download or create Environments in Domino, most commonly listening on TCP Port 8888, create a menu entry and you're able to run several IDE's.
Other IDE's are non-web-based, but programs/applications that run on the host only. Linux applications are either text based, or X-Window based.
Solutions
There are three different options available to Domino end users, depending on their access to the backend.
Domino CLI and locally running the application
Use the Domino CLI, download the project to your local machine, where you can run applications, load the project files and develop as needed. Once you're satisifed, upload (sync) the files back to Domino where you can run the text-only versions of your app against the code.
SSH based and X-Forwarding
Use ssh and X-Forwarding to launch applications (ssh -X, ssh -Y) which does require a Windowing Manager on your desktop (Linux, MacOS's XQuartz, or X-Window apps for MS-Windows) as well as access to the backend via SSH.
Use noVNC inside a Compute Environment, and use JupyterLab Proxy to access a Window Manager, installed in the Environment.
This solution is presented here, using noVNC and fvwm.
Dockerfile content
The Dockerfile attached installs pycharm and the fvwm Window Manager. CE.txt includes all the Compute Environments. If you've not build environments, find the instructions here.
Once installed, we've generated a simple startup script, /etc/rc.startup, to run noVNC.
This will run a fvwm environment, autostarting terminator and pycharm.sh
This is not a Domino-supported solution, but a best-effort, and 'current' - i.e. it may improve or be removed at any time.
To successfully connect to the noVNC session, the configuration for Websockify must be adjusted to contain the sub-path of your workspace (this includes the runId of your current session which you can pull from the URL or the terminal in your Workspace.
The JupyterLab Proxy/Application method is described here: 5.2 Docs
Start the noVNC: sh /etc/rc.startup
The connection URL to the noVNC tab, once it's running is:
YourDominoURL/userID/project/notebookSession/runId/proxy/6080/vnc.html
You need to find your runID from the Workspace URL or environment variable.
Once you see noVNC, click on the configuration icon, expand the Websocket and add the sub-path to the Path entry (see the attachment):
userID/project/notebookSession/runId/proxy/6080/websockify
You should now be able to click on 'Connect', and login with 'password' as the password (or define your own in the Dockerfile instructions).
You now have practically created a Virtual Desktop inside Domino, allowing you to run pycharm and other 'application based' programs. This is potentially also a can of worms, and may not be permitted based on your company policies!
Things to do
Possible improvements would be to automatically pick up the websockify path or modify the noVNC code to present a more useful Path.
Since JupyterLab Proxy can be used with the menu items, a non-working 'Proxy2' item is presented as an exercise or later addition to make it a button-press to run /etc/rc.startup for the noVNC/fvwm app.
Comments
0 comments
Please sign in to leave a comment.