diff --git a/notebook/notebookapp.py b/notebook/notebookapp.py index 68c9e1a402..0c3c3ea347 100755 --- a/notebook/notebookapp.py +++ b/notebook/notebookapp.py @@ -789,10 +789,28 @@ def _validate_ip(self, proposal): or containerized setups for example).""") ) - port = Integer(DEFAULT_NOTEBOOK_PORT, config=True, - help=_("The port the notebook server will listen on.") + port_env = 'JUPYTER_PORT' + port_default_value = DEFAULT_NOTEBOOK_PORT + port = Integer(port_default_value, config=True, + help=_("The port the notebook server will listen on (env: JUPYTER_PORT).") + ) + + @default('port') + def port_default(self): + return int(os.getenv(self.port_env, self.port_default_value)) + + port_retries_env = 'JUPYTER_PORT_RETRIES' + port_retries_default_value = 50 + port_retries = Integer(port_retries_default_value, config=True, + help=_("The number of additional ports to try if the specified port is not " + "available (env: JUPYTER_PORT_RETRIES).") ) + @default('port_retries') + def port_retries_default(self): + return int(os.getenv(self.port_retries_env, self.port_retries_default_value)) + + sock = Unicode(u'', config=True, help=_("The UNIX socket the notebook server will listen on.") ) @@ -823,9 +841,6 @@ def _validate_sock_mode(self, proposal): ) return value - port_retries = Integer(50, config=True, - help=_("The number of additional ports to try if the specified port is not available.") - ) certfile = Unicode(u'', config=True, help=_("""The full path to an SSL/TLS certificate file.""")