JUPYTERHUB(1)

πŸ“¦
version 5.2.1 Β· 4 versions
, in debian trixie, ubuntu resolute

✨ JUPYTERHUB ✨

okay bestie, welcome to jupyterhub β€” the multi-user server for Jupyter notebooks. it's a User Command, it's iconic, and yes, we're gonna read the whole thing together πŸ’–


πŸ’… NAME πŸ’…

jupyterhub β€” multi-user server for Jupyter notebooks. that's the whole vibe. one binary, many users, zero chaos (well, mostly).


🌸 DESCRIPTION 🌸

bestie. listen. this thing starts a multi-user Jupyter Notebook server. that's the assignment and it ate.

  • it spawns a configurable-http-proxy and a multi-user Hub
  • the Hub authenticates users and spawns single-user Notebook servers on behalf of users

like, it's giving admin energy. it's giving "I run the whole classroom". periodt.

🌈 Subcommands 🌈

so here's the thing β€” subcommands are launched as jupyterhub cmd [args]. and if you wanna know how to use subcommand cmd specifically, you just go:

jupyterhub cmd -h

boom. that's it. the -h is your bestie fr fr.

Now the subcommands themselves:

  • token β€” generate an API token for a user πŸ”‘
  • upgrade-db β€” upgrade your JupyterHub state database to the current version. glow-up for your DB πŸ’…

πŸŽ€ OPTIONS πŸŽ€

okay so the options below are convenience aliases to configurable class-options, as listed in the "Equivalent to" description-line of the aliases. like, they're nicknames for the long names. iykyk.

and if you wanna see all the configurable class-options for some <cmd>, you go:

<cmd> --help-all

that's the secret menu, no cap.


  • --debug β€” set log level to logging.DEBUG (maximize logging output, we're nosy now πŸ™ˆ) Equivalent to: [--Application.log_level=10]
  • --show-config β€” show the application's configuration (human-readable format, for the girlies who like words) Equivalent to: [--Application.show_config=True]
  • --show-config-json β€” show the application's configuration (json format, for the girlies who like brackets) Equivalent to: [--Application.show_config_json=True]
  • --generate-config β€” generate default config file Equivalent to: [--JupyterHub.generate_config=True]
  • --generate-certs β€” generate certificates used for internal ssl πŸ” Equivalent to: [--JupyterHub.generate_certs=True]
  • --no-db β€” disable persisting state database to disk. it's giving short-term memory, honestly Equivalent to: [--JupyterHub.db_url=sqlite:///:memory:]
  • --upgrade-db β€” Automatically upgrade the database if needed on startup.
⚠️ Only safe if the database has been backed up. Only SQLite database files will be backed up automatically.

Equivalent to: [--JupyterHub.upgrade_db=True]

  • --no-ssl β€” [DEPRECATED in 0.7: does nothing] πŸ’€ yeah bestie it's a ghost. it literally does nothing. Equivalent to: [--JupyterHub.confirm_no_ssl=True]
  • --base-url=<URLPrefix> β€” The base URL of the entire application. Add this to the beginning of all JupyterHub URLs. Use base_url to run JupyterHub within an existing website. Default: '/' Equivalent to: [--JupyterHub.base_url]
  • -y=<Bool> β€” Answer yes to any questions (e.g. confirm overwrite). yes-queen mode πŸ‘‘ Default: False Equivalent to: [--JupyterHub.answer_yes]
  • --ssl-key=<Unicode> β€” Path to SSL key file for the public facing interface of the proxy When setting this, you should also set ssl_cert (they're a package deal, don't split them up 🫢) Default: '' Equivalent to: [--JupyterHub.ssl_key]
  • --ssl-cert=<Unicode> β€” Path to SSL certificate file for the public facing interface of the proxy When setting this, you should also set ssl_key (again: duo. do not separate.) Default: '' Equivalent to: [--JupyterHub.ssl_cert]
  • --url=<Unicode> β€” The public facing URL of the whole JupyterHub application. This is the address on which the proxy will bind. Sets protocol, ip, base_url Default: 'http://:8000' Equivalent to: [--JupyterHub.bind_url]
  • --ip=<Unicode> β€” The public facing ip of the whole JupyterHub application (specifically referred to as the proxy). This is the address on which the proxy will listen. The default is to listen on all interfaces. This is the only address through which JupyterHub should be accessed by users. Default: '' Equivalent to: [--JupyterHub.ip]
  • --port=<Int> β€” The public facing port of the proxy. This is the port on which the proxy will listen. This is the only port through which JupyterHub should be accessed by users. Default: 8000 Equivalent to: [--JupyterHub.port]
  • --pid-file=<Unicode> β€” File to write PID Useful for daemonizing JupyterHub. Default: '' Equivalent to: [--JupyterHub.pid_file]
  • --log-file=<Unicode> β€” DEPRECATED: use output redirection instead, e.g. jupyterhub &>> /var/log/jupyterhub.log Default: '' Equivalent to: [--JupyterHub.extra_log_file]
  • --log-level=<Enum> β€” Set the log level by value or name. Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL'] Default: 30 Equivalent to: [--Application.log_level]
  • -f=<Unicode> β€” The config file to load Default: 'jupyterhub_config.py' Equivalent to: [--JupyterHub.config_file]
  • --config=<Unicode> β€” The config file to load Default: 'jupyterhub_config.py' Equivalent to: [--JupyterHub.config_file]
  • --db=<Unicode> β€” url for the database. e.g. sqlite:///jupyterhub.sqlite Default: 'sqlite:///jupyterhub.sqlite' Equivalent to: [--JupyterHub.db_url]

πŸ¦‹ Examples πŸ¦‹

generate default config file:

jupyterhub --generate-config -f /etc/jupyterhub/jupyterhub_config.py

spawn the server on 10.0.1.2:443 with https:

jupyterhub --ip 10.0.1.2 --port 443 --ssl-key my_ssl.key --ssl-cert my_ssl.cert

and one last reminder, bestie: to see all available configurables, use --help-all. it's the whole treasure chest, not just the sparkly bits ⭐


πŸ‘‘ SEE ALSO πŸ‘‘

The full documentation for jupyterhub is maintained as a Texinfo manual. If the info and jupyterhub programs are properly installed at your site, the command

info jupyterhub

should give you access to the complete manual. it's the extended cut, the director's commentary, the whole lore drop 🌈


and that's the page, bestie!! this was jupyterhub 5.2.1+ds1, dated May 2025, and it's the JUPYTERHUB(1) manual β€” go forth and spawn those servers, you absolute icon πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from