Helper
Some tasks are much easier to perform in a graphical web application than a plain terminal: writing R code in RStudio, developing projects in VS Code, or checking alignments using IGV. However, running these apps on a HPC can be complicated: the app needs to run on a compute node, it needs the correct software environment, and you need a way to securely connect to it from your local browser.
A helper automates the entire process for you. It packages the app as overlays, submits it to a compute node, and provides you with a direct link to open in your browser.
- If you are on an HPC cluster, the helper submits the app as a scheduler job so it runs on a compute node. If you don’t have a scheduler, it runs the app locally.
- Each helper names the needed overlays and allows writable environment overlay for new packages.
Server and SSH Port Forwarding
Section titled “Server and SSH Port Forwarding”CondaTainer server provides a web dashboard for helper jobs and files management on the cluster. Helper links are formatted as http://<id>.localhost:<port>/. Because this port is open on the remote login node, you must set up an SSH port forward from your local computer to access it. You only need to configure this once.
To securely forward the port from your local computer to the cluster, use the -L flag when SSHing:
ssh -L 13182:localhost:13182 <your-cluster-address>Make it persistent (Recommended):
To avoid typing this every time, you can add a LocalForward rule to your local ~/.ssh/config file:
Host hpc HostName hpc.university.edu User your_username LocalForward 13182 localhost:13182Now, simply typing ssh hpc will log you in and forward the port automatically. Because all helpers route through this single port, you can now visit http://localhost:13182/ in your browser.
After tunnel setup, you can start CondaTainer server using the command line:
condatainer server start -p 13182 # Starts the server on a specific portcondatainer server status # Checks if it's running and displays the portcondatainer server stop # Stops the serverKey Server Details:
- The port number is saved automatically after your first start.
- By default, the server stops when you disconnect your SSH session (designed for multi-login-nodes clusters). If you want it to run continuously in the background, use the
--daemonflag. - The server commands (
start,stop,restart) are login node only (blocked on compute nodes and in container).
Web Dashboard
Section titled “Web Dashboard”The easiest way to manage your helper jobs is through the web dashboard.
In the demo below, code-server is already added. Click Manage to add another helper. Nothing is submitted in the demo.
| Name | Status | Node | CWD | Ended | Actions |
|---|
Click Manage at the top right of the Start tab to add or remove helpers.
- Add: open the Available tab and click Add. The helper then shows on the Start tab.
- Remove: open the Installed tab and click the bin icon.
NOTE: A new install has no helpers added, so add one before you start it. In the demo above, code-server is already added.
The Start tab is where you launch new applications:
- Select a helper application from the list.
- Configure the requested resources (CPUs, memory, walltime, and GPUs).
- Select a writable environment overlay, plus any additional overlays you might need.
- Click Start.
The gear Defaults button saves the resources and options you prefer for the selected helper, such as CPUs, memory, time and the R version. The next launch of that helper starts from them.
NOTE: Some helpers require a environment overlay for packages installation. If you don’t have one, just click New to create it on the fly (see Environment Overlay).
The Jobs tab displays active cards for every running or pending helper. From these cards, you can Open the app in a new tab, Copy the link, or Stop the job.
Understanding the Links: Every helper generates two unique addresses:
<id>.localhost: Routes directly to that specific job ID.<helper-name>.localhost: Routes to the oldest running job of that type. (Thelinkbutton next tocopy)
Why use the name link? Browsers tie saved settings, layouts, and cookies to specific URLs. If you use a new <id>.localhost link every time you start code-server, you will get a default-config workspace every time. By using the <helper-name>.localhost link, your address stays consistent across sessions.
The History tab provides a log of your past sessions, detailing the app name, final state, compute node used, working directory, and finish time.
- Rerun: Fill the Start tab with all the old settings pre-filled. You can adjust them as needed before launching.
- You can manually delete individual rows, or use Clear finished to remove all completed jobs.
Command Line Interface
Section titled “Command Line Interface”Everything you can do in the web dashboard can also be done directly from the terminal:
condatainer helper avail # List the helpers the sources offercondatainer helper add code-server # Add a helpercondatainer helper list # List the helpers you can startcondatainer helper upgrade # Bring added helpers up to datecondatainer helper remove code-server # Remove an added helper
condatainer helper run code-server # Submit a new VS Code helper jobcondatainer helper run code-server -h # View specific configuration options for VS Code
condatainer helper # List all currently running helperscondatainer helper stop # Interactively stop a running helperAdding Helpers:
addtakes one or more names, and-lchooses the directory by layer (user,cnt-rootorextra-root). It prints where it put them.upgradeprints what it will replace and asks first.-yskips the question. It keeps a helper you edited, and tells you to useadd --forceto replace it.removelists what it will delete and asks first. It deletes only helpers thataddinstalled.
Execution Behavior:
- When you start a helper from the CLI, the command submits the job and returns immediately. Once the application is fully ready, it prints the browser link to your terminal, along with any necessary authentication details (like an auto-generated password).
- If you prefer to block the terminal until the app is ready, append the
--waitflag. - Pressing
Ctrl+Cwhile waiting only detaches your terminal from the monitor; it does not stop the helper job. Usecondatainer helper stopto actually terminate the application.
Saving Defaults: The dashboard’s gear Defaults button and the command line save the same per-helper defaults. A flag on the command line overrides a saved default for that run.
condatainer helper config rstudio-server list # Saved valuescondatainer helper config rstudio-server set cpu 8 # Save a defaultIf a helper does not open, cannot install packages or fails on one node, see Helper Issues.