Skip to main content

Create JupyterHub

To create a JupyterHub, follow these steps:

Step 1: In the menu bar, select Data Platform > Workspace Management > Workspace name

Step 2: In the Workspace Details section, click Create > the Services popup appears, select JupyterHub service > Create Service

tao-jupyter-01

Step 3. In the JupyterHub creation form, enter the information on the Basic Information screen

  • Name (required): Service name

Note: The name can contain lowercase letters a-z, uppercase letters A-Z, or digits 0-9. Spaces are not allowed; use "-" or "_" instead.

  • Description (optional): description
  • Version (required): select the JupyterHub version

tao-jupyter-02

Step 4: Click Next Step to proceed to the Nodes Configuration screen

Enter the following information:

  • Storage policy: select a storage policy
  • Type: select the flavor type
  • Number of nodes: enter the number of nodes to configure for JupyterHub
warning

The number of nodes must be greater than or equal to 2 and less than or equal to 10

tao-jupyter-03

Step 5: Click Next Step to proceed to the Advanced Properties screen

Select the following information:

Custom workspace: Check to save user data to S3

Mount S3 storage (directory for storing the user's Workspace code)

  • Storage name: select the storage name
  • S3 workspace path: enter the storage path

tao-jupyter-04

Database

  • Type: default is PostgreSQL
  • Host name (required): hostname or IP address of Postgres
  • Port (required): connection port, default is 5432
  • Database name (required): database name
  • Username (required): access account username
  • Password (required): access password

tao-jupyter-05

Data encryption

  • Keystore name: Select from the Workspace's Keystore catalog to encrypt sensitive data when JupyterHub connects to the Database

tao-jupyter-06

Single Sign On: Check to use SSO for authentication with JupyterHub

  • Provider: Fpt ID
    • Username: username
    • Email: FPT email address

tao-jupyter-07

  • Provider: Google
    • Client ID: Client ID information
    • Client Secret: Secret information
    • Email: email address

tao-jupyter-08

  • Provider: Keycloak
    • Auth Provider name: Provider name
    • Realm: Realm information
    • Auth server url: auth URL address
    • Client ID: Client ID information
    • Client Secret: Secret information
    • Username: account username
    • Email: email address

tao-jupyter-09

Custom Domain

  • Purpose: Allows configuring a custom domain to access services.

    • For Public Workspace: Used to assign a domain and certificate without needing to enable/disable TLS (HTTPS is always available).
    • For Private Workspace: In addition to domain and certificate, users can optionally enable or disable TLS/SSL to decide whether to use HTTPS or HTTP.
  • Workspace is Public

    • Custom domain: Check to enable a custom domain.
    • Domain: Enter the domain name (e.g., abc.local, jupyter.example.com).
    • Certificate name: Select from the list of certificates already imported in Certificate Manager.
    • Buttons:
    • Manage certificate: Opens the certificate management screen.
    • Validate: Checks that the certificate is valid for the domain.
    note

    For a Public Workspace, the TLS/SSL certificate option is not displayed — the system supports HTTPS by default.

tao-jupyter-10

  • Workspace is Private

    • Custom domain: Check to enable a custom domain.
    • Domain: Enter the domain name.
    • TLS/SSL certificate: Check to enable HTTPS for services.
    • Certificate name: Select from the certificate list.
    • Buttons:
    • Manage certificate: Opens certificate management.
    • Validate: Checks the certificate.
    note

    If TLS/SSL certificate is unchecked, the service will run on HTTP and no certificate is required.

tao-jupyter-11

Step 6. Click Next Step to proceed to the Review & Create screen

tao-jupyter-06

Step 7. Review the information, then click Create to complete creating the JupyterHub

JupyterHub initialization is complete when the Worker Status is Succeeded and the Status of JupyterHub is Healthy (~10 minutes)