RStudio as a web application

What is the preferred method of serving up RStudio as an application? I think this is now possible without Singularity. We would continue to use Singularity but we have been unable to figure out how to change the RStudio version.

If there is an example somewhere that would be much appreciated.

The app as OSC uses it can be seen here:

As for updating the version, if that version is available on the compute cluster, you would need to just add the version to the form.yml for selection.

Then you can handle that version in the script like we do here:

To then use that variable to ensure you load all modules (we use lmod at OSC).

The states 2 ways to set this up with Singularity being one way to set things up.

We have a link in the docs to many of the interactive apps under the OSC org on GitHub here:

Thank you.
RStudio only needs to exist on the compute node and not the Singularity container, correct ?

Correct, lmod should load the module on the compute node, the will do the work to then get the context in the container and launch it.

1 Like

FWIW, I actually build rstudio as an lmod module. I just take the rstudio rpm and rpm2cpio [rstudio rpm] | cpio -idmv. Rstudio is just a prebuilt binary in there so you just have to make a basic module that points to the bin in that unpacked rpm, i.e. prepend-path PATH /home/software/rstudio/2022.12.0-353//bin. This then allows you to build various versions of R as modules as well. Then you can make form widgets with drop downs so users can choose the R version to use and rstudio version should you want that.

Our app uses either R installed on the system with RStudio that was hand extracted from an RPM to our apps location, or Rocker based Singularity container, where both R and RStudio are in the container. It is chosen through the R module pull down in the form.yml. It’s at OOD-apps-v3/rstudio_server_app at master · CHPC-UofU/OOD-apps-v3 · GitHub though the form.yml is somewhat convoluted since we share many of the form items with other apps.The template/ shows the logic of choice between the local and containerized setup, though.