Listing Thumbnail

    JupyterHub Server - Hardened Multi-User Notebooks

     Info
    Sold by: Lynxroute 
    Deployed on AWS
    Free Trial
    This product has charges associated with it for hardening, security configuration, and support. JupyterHub is a multi-user notebook platform that authenticates real Linux (PAM) users and spawns each one a private, cgroup-isolated JupyterLab server via systemdspawner. Unlike bare JupyterHub AMIs that ship the Hub on an open port with no TLS and no configured authenticator or per-user isolation, this Lynxroute build is ready out of the box: PAM login with an admin password generated at first boot, host nginx terminating TLS on port 443 with the Hub bound to loopback only, per-user systemd cgroup isolation, one-command HTTPS via Certbot, UFW firewall pre-configured, and a CIS Level 1 hardened Ubuntu 24.04 LTS base. BSD-3-Clause license - fully auditable, no vendor lock-in.

    Overview

    This is a repackaged software product wherein additional charges apply for hardening, security configuration, and support.

    WHAT IS JUPYTERHUB

    JupyterHub is a multi-user server for Jupyter notebooks: it gives each user their own, independent JupyterLab notebook server behind a single entry point. This build runs the Hub as a Python application (JupyterHub 5.5.0 with the JupyterLab 7 single-user server) and uses systemdspawner to launch every user's server inside its own systemd unit with cgroup isolation. Authentication is PAM, so users log in with their real Linux account password - no external identity provider required. The public-facing proxy (configurable-http-proxy) is bound to loopback and fronted by nginx for TLS. Per-user notebooks, kernels, and files persist on the instance disk. BSD-3-Clause license, no vendor lock-in. Self-hosted on your own EC2 instance, your notebooks and data never leave your AWS account.

    WHAT THIS AMI ADDS

    Security hardening:

    • PAM authentication; an admin user with a strong password generated at first boot (written to /root/jupyterhub-credentials.txt)
    • Login restricted to an explicit allow-list - new users are added deliberately, not open by default
    • Each user's notebook server runs in its own systemd cgroup (systemdspawner) with a private temp directory
    • The Hub and its proxy bind to 127.0.0.1 only; host nginx terminates TLS on port 443
    • One-command HTTPS: certbot --nginx (Certbot and the nginx plugin are pre-installed)
    • UFW firewall pre-configured (ports 22 and 443 only)
    • fail2ban, auditd, AppArmor pre-configured
    • CVE scan - every image is scanned for vulnerabilities before release

    OS hardening (CIS Level 1):

    • CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
    • auditd, SSH hardening, Kernel hardening, IMDSv2 enforced

    Compliance artifacts:

    • SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
    • CIS Conformance Report at /etc/lynxroute/cis-report.html
    • CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md

    Highlights

    • JupyterHub security baked in: PAM authentication with an admin password generated at first boot, each user's notebook server isolated in its own systemd cgroup, the Hub bound to 127.0.0.1 with host nginx terminating TLS on port 443, and login restricted to an explicit allow-list.
    • CIS Level 1 hardened Ubuntu 24.04 LTS: auditd, fail2ban, AppArmor, SSH key-only, IMDSv2 enforced. CVE-scanned before every release. SBOM (CycloneDX) and CIS Conformance Report included.
    • Multi-user data science out of the box: per-user JupyterLab servers with a Python 3 kernel, add accounts with a single adduser, one-command HTTPS via Certbot. BSD-3-Clause license - fully auditable, no vendor lock-in.

    Details

    Delivery method

    Delivery option
    64-bit (x86) Amazon Machine Image (AMI)

    Latest version

    Operating system
    Ubuntu 24.04

    Deployed on AWS
    New

    Introducing multi-product solutions

    You can now purchase comprehensive solutions tailored to use cases and industries.

    Multi-product solutions

    Features and programs

    Financing for AWS Marketplace purchases

    AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
    Financing for AWS Marketplace purchases

    Pricing

    Free trial

    Try this product free for 5 days according to the free trial terms set by the vendor. Usage-based pricing is in effect for usage beyond the free trial terms. Your free trial gets automatically converted to a paid subscription when the trial ends, but may be canceled any time before that.

    JupyterHub Server - Hardened Multi-User Notebooks

     Info
    Pricing is based on actual usage, with charges varying according to how much you consume. Subscriptions have no end date and may be canceled any time.
    Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator  to estimate your infrastructure costs.

    Usage costs (4)

     Info
    Dimension
    Cost/hour
    t3.large
    Recommended
    $0.03
    t3.medium
    $0.02
    m6i.xlarge
    $0.05
    m6i.large
    $0.03

    Vendor refund policy

    We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.

    How can we make this page better?

    Tell us how we can improve this page, or report an issue with this product.
    Tell us how we can improve this page, or report an issue with this product.

    Legal

    Vendor terms and conditions

    Upon subscribing to this product, you must acknowledge and agree to the terms and conditions outlined in the vendor's End User License Agreement (EULA) .

    Content disclaimer

    Vendors are responsible for their product descriptions and other product content. AWS does not warrant that vendors' product descriptions or other product content are accurate, complete, reliable, current, or error-free.

    Usage information

     Info

    Delivery details

    64-bit (x86) Amazon Machine Image (AMI)

    Amazon Machine Image (AMI)

    An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.

    Version release notes

    JupyterHub 5.5.0 - Initial release (June 2026)

    • JupyterHub 5.5.0 on Ubuntu 24.04 LTS
    • CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)
    • CVE-scanned before every release
    • PAM authentication; admin user with a password generated at first boot
    • systemdspawner - per-user notebook servers isolated in systemd cgroups
    • Host nginx terminates TLS on port 443; Hub bound to 127.0.0.1:8000 (loopback)
    • One-command HTTPS via Certbot (certbot --nginx)
    • UFW firewall pre-configured (ports 22, 443 only)
    • fail2ban, auditd, AppArmor pre-configured
    • SBOM (CycloneDX 1.6) at /etc/lynxroute/sbom.json
    • CIS Conformance Report (OpenSCAP) at /etc/lynxroute/cis-report.html
    • IMDSv2 enforced

    Additional details

    Usage instructions

    1. Launch instance (t3.large recommended; t3.medium minimum)
    2. Open Security Group - allow TCP 443 from your IP/CIDR (and TCP 22 for SSH)
    3. SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
    4. Read credentials: sudo cat /root/jupyterhub-credentials.txt
    5. Open https://<PUBLIC_IP>/ in your browser - accept the self-signed certificate warning. JupyterHub shows its login page.
    6. Log in as the admin user 'jupyteradmin' with the generated password from step 4. JupyterHub spawns your personal, cgroup-isolated JupyterLab notebook server.
    7. Add more users: create a Linux user (sudo adduser <name>), add the name to c.Authenticator.allowed_users in /etc/jupyterhub/jupyterhub_config.py, then sudo systemctl restart jupyterhub. Each user logs in with their own system password.

    The admin password is generated at first boot and stored in /root/jupyterhub-credentials.txt. The Hub binds 127.0.0.1:8000 (loopback only); host nginx terminates TLS on port 443. Replace the self-signed TLS certificate with a CA-signed one for production use: sudo certbot --nginx -d yourdomain.com

    Resources

    Vendor resources

    Support

    Vendor support

    Visit us online: https://lynxroute.com 

    For JupyterHub documentation: https://jupyterhub.readthedocs.io/en/stable/#documentation-structure  For JupyterHub upstream issues:

    AWS infrastructure support

    AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.

    Similar products

    Customer reviews

    Ratings and reviews

     Info
    0 ratings
    5 star
    4 star
    3 star
    2 star
    1 star
    0%
    0%
    0%
    0%
    0%
    0 reviews
    No customer reviews yet
    Be the first to review this product . We've partnered with PeerSpot to gather customer feedback. You can share your experience by writing or recording a review, or scheduling a call with a PeerSpot analyst.