# Configuration Basics
The section contains basic information about configuring settings for a JupyterHub deployment. The [Technical Reference](../reference/index.html) documentation provides additional details.
This section will help you learn how to:
generate a default configuration file,
jupyterhub_config.pystart with a specific configuration file
configure JupyterHub using command line options
find information and examples for some common deployments
## Generate a default config file
On startup, JupyterHub will look by default for a configuration file,
jupyterhub_config.py, in the current working directory.
To generate a default config file, jupyterhub_config.py:
`bash
jupyterhub --generate-config
`
This default jupyterhub_config.py file contains comments and guidance for all
configuration variables and their default values. We recommend storing
configuration files in the standard UNIX filesystem location, i.e.
/etc/jupyterhub.
## Start with a specific config file
You can load a specific config file and start JupyterHub using:
`bash
jupyterhub -f /path/to/jupyterhub_config.py
`
If you have stored your configuration file in the recommended UNIX filesystem
location, /etc/jupyterhub, the following command will start JupyterHub using
the configuration file:
`bash
jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
`
The IPython documentation provides additional information on the [config system](http://ipython.readthedocs.io/en/stable/development/config.html) that Jupyter uses.
## Configure using command line options
To display all command line options that are available for configuration:
Configuration using the command line options is done when launching JupyterHub.
For example, to start JupyterHub on 10.0.1.2:443 with https, you
would enter:
All configurable options may technically be set on the command-line,
though some are inconvenient to type. To set a particular configuration
parameter, c.Class.trait, you would use the command line option,
--Class.trait, when starting JupyterHub. For example, to configure the
c.Spawner.notebook_dir trait from the command-line, use the
--Spawner.notebook_dir option:
`bash
jupyterhub --Spawner.notebook_dir='~/assignments'
`
## Configure for various deployment environments
The default authentication and process spawning mechanisms can be replaced, and specific [authenticators](./authenticators-users-basics.html) and [spawners](./spawners-basics.html) can be set in the configuration file. This enables JupyterHub to be used with a variety of authentication methods or process control and deployment environments. [Some examples](../reference/config-examples.html), meant as illustration, are:
Using GitHub OAuth instead of PAM with [OAuthenticator](https://github.com/jupyterhub/oauthenticator)
Spawning single-user servers with Docker, using the [DockerSpawner](https://github.com/jupyterhub/dockerspawner)