JupyterHub @ ELI-NP

User documentation for the JupyterHub instance at jupyter.sequanium.de

1. Introduction and Overview

Your Python Platform for Physics Research

This JupyterHub service provides a ready-to-use environment for:

Accessible from any browser, with:

Note: This is currently a pilot program aimed at providing computational resources to researchers and their collaborators. If successful, it can be upscaled in order to support additonal users.

📚 Start with tutorials: work/tutorials/processing_experimental_data.ipynb (experimental) or work/tutorials/sympy_intro (theoretical).

2. Getting Started

2.1 Accessing JupyterHub

To access the JupyterHub instance:

  1. Navigate to jupyter.sequanium.de in your browser
  2. You'll be presented with a login screen where you can authenticate using your GitHub account

Accessibility: The system is accessible from anywhere with an internet connection. No VPN account is required.

Sign in with GitHub
Initial login page with GitHub authentication option

2.2 Authentication with GitHub

All users authenticate through GitHub accounts. If you already have a GitHub account, you can use it directly. If not, you'll need to create one.

For Existing GitHub Users:

  1. Click the "Sign in with GitHub" button
  2. Enter your GitHub username/email and password
  3. Authorize JupyterHub to link to your GitHub account
GitHub login filled
GitHub login form
Authorize JupyterHub server
GitHub authorization screen

For New Users (Creating a GitHub Account):

  1. Click "Create an account" link
  2. Fill in the required information (email, password, username)
  3. Complete the human verification step
  4. Verify your email through the confirmation code sent by GitHub
  5. Authorize JupyterHub to access your newly created GitHub account
GitHub signup page
GitHub signup form
GitHub verify human
GitHub human verification
GitHub email confirmation
Email verification process

Note: You can optionally join ELI-NP's GitHub organization from your GitHub account. It is also recommended to activate GitHub's two-factor authentication (2FA).

3. JupyterLab Interface

After authentication, you'll be directed to the JupyterLab interface, which is a web-based interactive development environment for Jupyter notebooks, code, and data.

JupyterLab initial page
JupyterLab initial interface

3.1 File Browser and Terminal

The left sidebar contains the file browser showing your directories. You can navigate through your files and folders, and create new notebooks, text files, or other documents.

The terminal provides command-line access to your container environment, which is running a scaled-down Ubuntu Linux distribution:

Terminal tab
Terminal access within JupyterLab

3.2 File Management

JupyterLab provides tools for uploading and downloading files from/to your computer:

Upload button
File upload button
Download button
File download option (right-click menu)

4. Storage and Data Management

4.1 Work Directory

Each user has a personal work/ directory with the following characteristics:

A README.txt file in your work directory provides additional information about available tutorials and resource usage.

4.2 Shared Directory

The shared/ directory is designed for collaboration:

Data Safety: All user data is regularly backed up to protect against data loss.

5. Computing Environment

The JupyterHub instance uses containerization to provide each user with their own isolated computing environment:

5.1 Package Management

You can install additional Python packages using mamba or pip, but these installations are not persistent and will be lost when your container restarts.

Important: If you need specific packages added to the base image, please contact the administrators with your request.

5.2 Interactive Visualizations

The environment supports interactive visualizations through:

6. Tutorials and Learning Resources

Several tutorials are available in the work/tutorials/ directory:

6.1 Available Tutorials

6.2 External Documentation

Additional learning resources:

7. Technical Information

7.1 Server Architecture

The JupyterHub setup includes:

JupyterHub Architecture Diagram
System architecture diagram showing the relationships between components

7.2 Local Container Usage

Advanced users can run the same container locally on their own computers:

docker pull jupyter/scipy-notebook
docker run -p 8888:8888 jupyter/scipy-notebook

This allows for development and testing in an identical environment to the JupyterHub server.

8. Limitations and Constraints

Please be aware of the following system limitations:

8.1 Resource Limitations

8.2 System Constraints

Note: The resource limitations and system constraints can be adjusted on a per-user basis for specialized research requirements. If your work demands additional resources (memory, CPU, storage) or specific software configurations, please contact the system administrators with details about your needs and research justification.

9. Frequently Asked Questions

Why Python?

Python has become the lingua franca of data science and scientific computing due to its simplicity, versatility, and a rich ecosystem of libraries. Its readable syntax makes it accessible to scientists who may not have formal programming training, while its powerful libraries like NumPy, SciPy, and Pandas provide high-performance tools for numerical computation. Python's widespread adoption in both academia and industry has created a vast community that develops and maintains specialized tools for physics, astronomy, bioinformatics, and other scientific domains.

I am already using Python on my work laptop/desktop, why do I need this?

The JupyterHub environment offers several advantages over a local Python installation:

  • 100% reproducibility: Every user works in an identical environment, eliminating "works on my machine" issues
  • Pre-installed scientific libraries: All necessary tools are already set up and optimized
  • Collaboration: Easily share notebooks and results with colleagues through the shared folder
  • No maintenance burden: No need to manage package updates or resolve dependency conflicts
  • Future scalability: Potential access to on-premise CPU/GPU clusters that can be managed from JupyterLab for scaling up computationally intensive tasks
  • Customization flexibility: Different Docker containers can be created for specific user needs without worrying about conflicting packages
Why do I need a GitHub account?

GitHub is used solely for authentication purposes, providing a secure and standardized way to manage user access. No code or data from your JupyterHub work is sent to GitHub—only the email address you used during GitHub registration is utilized for identification. This approach eliminates the need to create and remember another set of credentials while leveraging GitHub's robust security infrastructure. Your GitHub account is simply the "key" that unlocks your JupyterHub environment. Users are strongly advised to use GitHub's two-factor authentication (2FA) option.

Why is the domain hosted in Germany?

While the domain (sequanium.de) is registered in Germany primarily for cost-effectiveness, all services and data remain fully hosted on-premise at ELI-NP in Romania. The domain name is simply a "signpost" that directs your browser to the correct server's IP address. No data traverses or is stored in Germany—the domain registration is merely an administrative detail. All computation, storage, and processing happen locally on our servers at ELI-NP, ensuring complete data sovereignty and compliance with institutional requirements.

Who has access to my data?

Your privacy is a priority in our JupyterHub environment. All files stored in your work/ folder are completely private and protected. Neither other users nor JupyerHub administrators have direct access to these files.

I prefer a real IDE, like VSCode instead of Jupyter notebooks, what can I do?

We understand that many users have strong IDE preferences. VSCode can be made available in your JupyterHub environment through code-server, which runs VSCode in the browser. This provides the full VSCode experience, including extensions, integrated terminal, and debugging capabilities, while maintaining all the benefits of the managed JupyterHub environment. Please contact the administrators to request VSCode/code-server installation in your Docker container. This approach gives you the best of both worlds: your preferred development environment with the infrastructure advantages of the JupyterHub setup.

How do I request additional Python packages?

Contact the system administrators with details about the package, its purpose, and any specific version requirements. If approved, it will be added to the base Docker image.

Can I access the JupyterHub from outside ELI-NP?

Yes, the JupyterHub is accessible from anywhere with an internet connection. No VPN is required.

Is my data backed up?

Yes, user data is regularly backed up to protect against data loss.

Will the JupyterHub address change in the future?

After the trial period, the service may move to an eli-np.ro subdomain. Users will be notified well in advance of any changes.