Follow

Configuring new Interactive Session tools

Overview

Many of our users have asked for custom interactive session tools beyond the current base Domino offering of Jupyter, RStudio, PySpark, Zeppelin and H2O notebooks.  In the same way that Domino allows you to create compute environments to meet your specific language and package needs, this functionality allows you to define web based interactive session tools inside of your compute environment.  This work is typically done by an administrator or advanced Domino user.  We suggest you reach out to your Customer Support Manager for help with defining the interactive session tool you wish to use.

Benefits

  • Upgrade to a newer version of currently supported Domino notebooks like Jupyter or RStudio
  • Add new web based tools like sqlpad and JupyterLab
  • Manage the standard default tool for your team or organization across all projects 

Setting up notebooks in Environments

Configuring a notebook on an environment involves two parts: giving the environment's docker image installation instructions, and defining how Domino will serve up that tool.

Dockerfile instructions

In your environment, enter the instructions to install and configure a tool in the Dockerfile instructions:

Example for SQLPad:

RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
    apt-get install -y nodejs && \
    npm install sqlpad@2.1.2 -g
RUN echo 'mkdir -p $DOMINO_WORKING_DIR/sqlpad && /usr/bin/sqlpad --port 8000 --base-url /$DOMINO_PROJECT_OWNER/$DOMINO_PROJECT_NAME/notebookSession/$DOMINO_RUN_ID --dir $DOMINO_WORKING_DIR/sqlpad' >> /usr/local/bin/launch-sqlpad.sh
RUN chmod -R +rx /usr/local/bin/launch-* && chown ubuntu:ubuntu /usr/local/bin/launch-*


NOTE: For Jupyter, RStudio, H2OFlow, and OpenRefine, paste the below into the Dockerfile instructions to access supported start scripts.

USER root

# Install Python libraries
RUN pip install flask==0.12 jsonify==0.5 uwsgi==2.0.14

# Set up deploy key for workspaces repository
RUN mkdir -p $HOME/.ssh
RUN ssh-keyscan github.com >> $HOME/.ssh/known_hosts
RUN echo "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBcGx3VUU5bjhSWmVVV3k5TlNPL0dkeGxHL2JRbGd1L09NUmh5YktGcHJxQ0FGTWQvCmN6Z3BLSExRZHN2dzZaTVQyV2g3b2U2REwvMXN2ZXdXWnhOUEF4SkwvK0t2eEpVSWlYRVJqdE9iWkRwM1k0LzcKbXJkbkY4T254ZDdweUlFR0xCZlpqa2tnVThQblN3RTczbXdrdlFCRTQyTWZJRVNUMS92cTE5RzZBZHFpZ0UzNApVcmhJVHp0OGVWVlJWOXgyTjdQcDNhQmltNlhmdWpBeUpVOWNUZGtWd0dxL0tUY0ZOUzJXcTVNeEdIWlVOSzJJCi9wMjAwM002RUNZaXp1WnVJLytIanQ2a05RRDN6aUkzZ04wNGsrUmo0TzZ0VHovUEtma0c0dmV0eisyWTAranUKc05RUTFFMVFoOXpGek9KRUZ5Kyt2VUZnTTZCaFhpLzVqdXdDY0xvaW1vSjJTWDVURzduUFdpemplZHJkT05SMgpwcFZ3SGd0cU9yZllqUHFLR2FXVElBWGNOckNiSE9jKzZSdkRwL01rMDdBQXdTN0dlbWk0NkZ4enFjOWtpMVRYClp6Ym9TODg5bkVrOHlUTE9sbkNrdWdLTERsUHJIa0I1YVh4TXNrWlJDM3R0Szc2eGpXa2oxMWtUZ09oNlFUR3IKTGZoa016YTBqemlhNjE3NURlOUJXUU9CWGdZZjl0aW11dk92eHI0UFpHMjlmWTJ3ZHlQMHlzMGtrcjBEc0dJMwo1QlRwS3E2MXNMU0N2eHhJbnlERzdKc2FhS05QcVdhTksySXA5Q3IxaUgxTkhaTHp2SWREQlBMdHdEMjFnUkpCClJzeWdjN01rRlZOZmZQRG9xZ242eVhiQ0dnbklLWmo1ZDdBa2Y2czAwdTB6WEd3b08yUVkzS1pzUlU4Q0F3RUEKQVFLQ0FnQU5wM01TYWdyVm4ycFN6YUFYUTI3VHFhUjFBRXN2NHdUV2JMNC9na1FOVENrWEM0Uy9iVFdibDBqYQo1MFEvdDQyaWczdmFQNXhPM1FzR3o1RExKditPTGZ0RTVsTXMzRnFXQlV5K24wbWF3VjI1TTBFZ1lyczRiUnVoCkZ2bXpOanZPZEtxcmpmNzBRUmtEdy9jbysxRk1uZkFKaGNJeFFNK3RvNFNUOENmSExTMjNRQzhJZ3cyVVN6cWQKTHM1OVdwL3RWSHYyYjhxSUllWXAvdml1clVQVE0rVWdKT0xKdkRWV053YXQwR2Z3TFE0ZVFMd0V3ZWJza0FHTQovOFJOblFZZk9FTGxEQXNJT3FzY0pSelBHOWtmOGxmc1IwcThQVzJBY1dzS1IrL2hLQXdxSUcwdTRFajlVOWN2ClA0U1FtMldoVFk3bk02MTByMDR1ajl0NHlwQXNsSWZDR2ZPdnpNQ1VPS2dBb0RtR0lLaXI5S2xQK0xwREIvWmkKSktMSkYzU1VDZDczUTN2QWRJcXJEb3ZvSWd2UjBTeFduR1JVZ2JFdkZ3UENRZkVxVy9Lc2xoOWtrVDNNWnFTQgppZzFmZ01LYkJZZ0RMcnUvUk81Qk94UmZjS3YrV2F3bWZyQlpLMjFzaVpOZ3JvMkR6ZHhMd3IxeE9tSzBQOWRPClFqc1ptelRFM1VqT2ZCZGhMR2lHWjVTR1BUQ2Y2akJFaFdiSGkzU29hU0dwN1NtNlczYUpHSno3bkYxNklzWGEKczA3ajNQRnJMRy9NaDdrL2lmQW1Xcmw4NE5rbllJbEFCaVphS01SaStXRnAyZjNSUXlqckxQMnVwWFJmeU41cQpHUXI1Y0NnNUNNNk8xZmNMVnhHTXZ0bjEweHF4WUQzQlp3eUpHYXJWcktsRnVaMGxBUUtDQVFFQTB6d2tDQ3FiCnNrejgwTjNwcnlERGMySXNYTUlSbnhKQXZ0SW1mVTQvY1RlK0wraCtSRTF5eUxlMXhOYVk1dkZNUWlrbGx4VHoKenlUVEFKekozaHhjUFA1UStaVEM2dGw4V3pVR1kzTHZlNjl2cytkWkFPZWhkeXNtRHRqU1FKcnh4RmVwaWw3TApDcnJFQ0grZnduc3ZUbHM3M21FNHpCNksrQ1FZRnJyRE5nVzhoV3ZOTXlBT0NZYkphWmdJUlNpSnJuZWFsNTlCCjdCK1FnZ0pTYTQ2Q0dSaEZGbkJHdkZwMXJZRVJYUW85aXJmZnNPcFR1R3U5WW1rSm5ZWEx0ZTRxWG4rWVJvUE0KcjNML0VCWUJmZjlJR3pWcHRoaDhSK1NtejE0c01rL0JYalBMUzVhbXVkcWRkWkZVRXlIM3B6Q1E3OVQ1K0Q4WgplekUxWktzaFgydFlnUUtDQVFFQXlaMWcxa0VnQzY5RUJWaGVXUU1Xb0tZWE5TaUkzem5BMUFYR1VhQkJpQm1hCmY1RElZVHJRcFluYVdIbHFEU0cvdXlrWDlMUytHR1oxa1dFMTRDdktCVlZuQWdaLzZBQkRtd1FtbVl5cTdQR1IKYnVCMzNPWjdvWjExRDRXNVRxbkJZVmwydjBncGFVTmRWN0s0ZU5jZnRRM0RRK2dvR3VkeEF0dGZCbVhONlBmaQpMKzRGQ1hNeDByczNDdURzTCtRaVVxUmQzV0tzYWdRVXduOHl6eWtaM1RuZlhmVFJIQ2lNdXNUbWZCYStOWnB6CmZIbWJQWC9UVVVtYVJVQ3hxSjF2OVhTZ2JoSXFWVVZEQldsTldUK2FOa3BMdDA1RGZmbDRCVkQ2UFowUFBBSlgKYjlYWjVZR2Z5c0tyYnBWRVRhYmJnZmk3UkxqYjVOVDZnUjdtWnMwMXp3S0NBUUVBbUQzbU1rU1RScVNhS2VkbQp2eU83K25NdFNnVk5NZnF6MDFRZkRYelIyTVcyTzAwemhBTFYwYmdtTjZIN1BhZDNzTTk3R2pLdHJnUDZWNXlwCkdYNFROSnFPdmZMcnNOdmk5dEYyczBKcFBCbXJSbHhkRjN2YU1jdFZlS25vajB1ZEtFZU9GLzVPRklPYk9nelIKbGhlMmRxRG11MVlTMjNxLzZpd0plSWhPbmFid3dyQjVpbmwxNUlQU3Nsb3l5N1YxMWRxNS9zRjNmN2tZSzd1RQpyNlJjTzczMFBVSGFtWElSRW1YTm4rTDdpL2tPTGJJVmVQdWQyVW1lOW5zeDRRT3dZYjlRZnJJTFdnQmx1TEJECmp3M29hRVBNMXNNNi80M2FjK2FKc0JFdmFyZWxzK3IyYTBrVzUxOUEyekZHRHFmQUxqcXZscTNUcmFnL3RUaHAKcXgzeEFRS0NBUUE0QTZHRDVWUWg2dS9iREZJcUtOR0FrS1NpQUVFR3crVHZBeXUyUWUvekFDb01odzBrOWxKQgpxNnNlS1oxdFNKTWNUSzU3TGp3aVMxVWVyd05vNU1HYitiNUVzY21YaTNzODlrcERIdkhlSXI5bExyZ2VoMnFSCjNFMUpvcjE1UFhDY3UxNWlob242MU54NklRMWZoV1VweUVrWDlNZ3ZzVjJValo0NUNNL01paEl0ZnRPbmJIbkwKTW5oNGJVVXhpUkNBSldwdXQ1dHZXUExybHF0bkl1UXNzb2Q4Y3lnbHlwNU94YVhEbEE0RWxvUy9jSW5RN0ZLcApvdWxabEQvSHVQWUNIQVQyajlWekcyc2pkYjRucmFRS3NWbVg5QWFNV1dNZkZ3QnZYZE45dUtqU1NYZmdhOE1aCmNqeHUzTW05U1Q1elBjZkpzQkpuNFVRMzIzM24wZHZCQW9JQkFBZ1BSUjkrSTArVlYrZWYyM3R6L1ErR2orVkoKSk1ka0p5YU1uZUw3bkMzdHZsL2N4Z01lMGkwQUtSOXRoZ0FJNmgxVlVnaUV1RDA5SGN4TWtQcmthUW53aXA3MworWDNDd1VjTXR5cTJkSFdjRU5ZSmxJTlZkdFJ6TjZWbjRJam1hQ0JIYXhSVXNCK2JpWWc4TUMzejk4YitkMVNzClExQVBsWjBjdE9QZXd4V1p2c1VuOVo2MlBVVnQ4MTVkZWt0TVg1OWExSTNSSnFnTUVJZThEbm85dStYaW1ZQk0KaVRBZE83U0lGZWxkSkc0QUFxN3dDYlp4ejhMQXlrS3FvRVo4c3RvNEF6MHp5SkYrSGFzclU0enpoOWJ3K0pUNApqN2tlZ3lMYkFUUjcrbmQ1ZzRhb0VscXdXQWJXUlE0RG5lWVMxaWRkQzR4bUNLQzNxS3k0WG45MFhZOD0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K" | base64 -d > $HOME/.ssh/workspaces-deploy-key
RUN chmod 0400 $HOME/.ssh $HOME/.ssh/*

# Clone workspaces repository
RUN \
  echo 'ssh -o UserKnownHostsFile=$HOME/.ssh/known_hosts -i $HOME/.ssh/workspaces-deploy-key $@' > /tmp/github_ssh_wrapper && \
  chmod +x /tmp/github_ssh_wrapper && \
  GIT_SSH="/tmp/github_ssh_wrapper" git clone --branch 2017-07-27 git@github.com:cerebrotech/workspaces.git /var/opt/workspaces

# Install RStudio
RUN /var/opt/workspaces/rstudio/install

# Install SqlPad
RUN /var/opt/workspaces/sqlpad/install

# Clean up temporary files
RUN \
  rm -Rf /var/lib/apt/lists/* && \
  rm -Rf /tmp/*  

  

Properties

Notebook properties are stored as YAML data mapping notebook names to their definitions. Enter this in the "Properties for Notebooks" field in the Environment definition.

Examples:

Jupyter

jupyter:
  title: "Jupyter (Python, R, Julia)"
  start: [ "/var/opt/workspaces/jupyter/start" ]
  httpProxy:
    port: 8888
    rewrite: false
    internalPath: "/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}"
  supportedFileExtensions: [ ".ipynb" ]


RStudio

rstudio:
  title: "RStudio"
  start: [ "/var/opt/workspaces/rstudio/start" ]
  httpProxy:
    port: 8888

 

H2OFlow

h20flow:
  title: "H2O Flow"
  start: [ "/var/opt/workspaces/h2o/start" ]


OpenRefine

openrefine:
  title: "OpenRefine"
  start: [ "/var/opt/workspaces/openrefine/start" ]


SQLPad

sqlpad:
  title: "SqlPad"
  start: [ "/var/opt/workspaces/sqlpad/start" ]
  httpProxy:
    port: 8000
    rewrite: false

 

If your deployment has special networking needs, the definitions and/or dockerfile instructions above may need some modification. For more information about configuring properties for notebooks, see the full properties documentation.

 

Was this article helpful?
0 out of 0 found this helpful

Comments