System requirements

The installer is a self-extracting binary that contains all of the necessary components to run JupyterHub services. Before you install JupyterHub onto your Linux server, make sure that it meets all the following requirements:

System setup requirements

The following prerequisites must be in place before installation:
  • Linux variant with systemd version 245 or higher
  • Kernel with memory cgroups and CFS scheduling enabled
  • Root access for JupyterHub (for systemd-run)
  • FQDN, DNS record, and TLS/SSL certificate
Amazon Linux does not include libxcrypt-compat, which causes nginx services to error when starting.
If you receive a libcrypt.so.1 error post installation, install the libxcrypt-compat package:
sudo yum install libxcrypt-compat

Hardware requirements

Because all users share the same pool of resources on the server, hardware requirements for running JupyterHub vary depending on the number of users accessing the server at any one time. Use the following formulas to determine your hardware requirements:
  • Recommended RAM = (maximum active users x maximum memory per user) + 1GB
  • Recommended CPUs = (maximum active users x maximum CPU usage per user) + 20%
  • Recommended disk storage = (total users x maximum disk usage per user) + 2 GB
Check available resources with:
cat /proc/cpuinfo
cat /proc/meminfo
df -h

Networking requirements

TLS/SSL

The JupyterHub integration requires TLS/SSL certificates to secure traffic. The installer includes a DIY-SSL-CA package to generate self-signed certificates, if needed.
If you are using third-party CA certificates, verify your SSL chain via openssl. The command must return 0 for user authentication to succeed.
# Replace <jupyterHostName> with your JupyterHub server domain
# Replace <CA_CERT> with the path to your CA certificate
openssl s_client -connect <jupyterHostName>:443 -CAfile <CA_CERT> -verify_return_error

DNS

DNS must be configured prior to installation to support HTTPS.
Add your JupyterHub server domain to /etc/hosts so the server is accessible via HTTPS:
# Replace <HOSTNAME> with your JupyterHub server domain
echo "127.0.0.1 ${HOSTNAME}" >> /etc/hosts

Firewall

Restrict inbound access to only required ports:
  • :443 nginx for HTTPS
  • :22 ssh (optional) for remote access

System validation check

To validate that your system is ready for installation, run the validation check and compare the results against the above requirements:
echo "=== System Information ==="
echo "Kernel Release and Processor Type:"
uname -a

echo "OS Release:"
cat /etc/os-release

echo "systemd Version:"
systemctl --version

echo "Memory Cgroups and CFS Scheduling:"
grep cgroup /proc/filesystems

echo "User ID:"
id -u

echo "Hostname (FQDN):"
hostname -f

echo "=== Hardware Requirements ==="
echo "CPU Info:"
cat /proc/cpuinfo

echo "Memory Info:"
cat /proc/meminfo

echo "Disk Space:"
df -h
After verifying all requirements have been met, proceed with Installing JupyterHub.