Notice: Over the next few months, we're reorganizing the App Engine documentation site to make it easier to find content and better align with the rest of Google Cloud products. The same content will be available, but the navigation will now match the rest of the Cloud products.

Go 1.16 is now generally available.

Local Development Server Options

Stay organized with collections Save and categorize content based on your preferences.

The local development server ( is part of the App Engine components of the gcloud CLI. This topic provides advanced information about the usage. See Using the Local Development Server for more information about local testing.

If Python 2 is not the default interpreter on your system, you need to run python2 to ensure the Python 2 interpreter is used, as follows: [options] yaml_path [files...]

The positional argument yaml_path specifies one or more app.yaml files, one per service.

For a complete list of options, type: -h

The most common options are described here.

Host name to which the local development server's administration console should bind (default: localhost).
Port to which the local development server's administration console should bind (default: 8000).
Uses the local computer's Sendmail installation for sending email messages.
Enables the development server to run push tasks. The default is yes. If you specify no, the server will not run push tasks.
Prints a helpful message then quits.
The host address to use for the server. You may need to set this to be able to access the development server from another computer on your network. An address of allows both localhost access and IP or hostname access. Default is localhost.
The lowest logging level at which logging messages will be written to the console; messages of the specified logging level or higher will be output. Possible values are debug, info, warning, error, and critical.
The port number to use for the server. Default is 8080. If multiple servers are launched such as for services, they will be assigned subsequent ports, such as 8081, 8082.
By default, the logs for the local development server are stored in memory only. Specify this option when you run the local development server to store the logs into a file, which makes the logs available across server restarts. You must specify the directory path and name to a SQLite database file. A SQLite database file is created with the specified name if the file does not already exist. For example: --logs_path=/home/logs/boglogs.db
Disables automatic generation of entries in the index.yaml file. Instead, when the application makes a query that requires that its index be defined in the file and the index definition is not found, an exception will be raised, similar to what would happen when running on App Engine. The default value is no.
The hostname of the SMTP server to use for sending email messages.
The port number of the SMTP server to use for sending email messages.
The username to use with the SMTP server for sending email messages.
The password to use with the SMTP server for sending email messages.
Path at which all local files, such as the Datastore, Blobstore, Cloud Storage files and logs, will be stored, unless overridden by --datastore_path, --blobstore_path, or --logs_path.
Use the Cloud Datastore Emulator (beta) for local datastore emulation.
The port number to use for Cloud Datastore Emulator (beta).
User defined environment variable for the local runtime process. Each env_var is in the format of key=value, and you can define multiple environment variables. In addition to env_variables in the app.yaml, this flag allows setting extra environment variables for local processes. For example:--env_var KEY_1=val1 --env_var KEY_2=val2
Set to yes to enable debugging with delve or gdb. This will build the app binary with all of the symbols necessary for debugging. You can attach to the running process normally, eg: sudo dlv attach <pid>.