The local development server (dev_appserver.py
) is part of the App Engine
components of the gcloud CLI. This topic provides advanced
information about the dev_appserver.py
usage.
See Using the Local Development Server
for more information about local testing.
Set up the local development server tool
A sample dev_appserver.py
command might look as follows:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py OPTION yaml_path FILES
Replace the following:
- DEVAPPSERVER_ROOT with the path to the root directory
where you extract the archived version of
devapp_server.py
. For more information about downloading and using the archived version ofdev_appserver.py
, see Using the local development server. - OPTION with a flag supported by the local development server.
- FILES specifies one or more
app.yaml
files, one per service, for the positional argumentyaml_path
.
For a complete list of options, run the following:
DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py -h
Common options
The most common options are as follows:
--admin_host=ADMIN_HOST
- Host name to which the local development server's administration console should bind (default: localhost).
--admin_port=ADMIN_PORT
- Port to which the local development server's administration console should bind (default: 8000).
--enable_sendmail=yes|no
- Uses the local computer's Sendmail installation for sending email messages.
--enable_task_running=yes|no
- Enables the development server to run push tasks. The default is
yes
. If you specifyno
, the server will not run push tasks. --help
- Prints a helpful message then quits.
--host=...
- 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
0.0.0.0
allows both localhost access and IP or hostname access. Default islocalhost
. --log_level=...
- 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
, andcritical
. --port=...
- 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 as8081
,8082
. --logs_path=...
- 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
--require_indexes=yes|no
- 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 isno
. --smtp_host=...
- The hostname of the SMTP server to use for sending email messages.
--smtp_port=...
- The port number of the SMTP server to use for sending email messages.
--smtp_user=...
- The username to use with the SMTP server for sending email messages.
--smtp_password=...
- The password to use with the SMTP server for sending email messages.
--storage_path=...
- 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
. --support_datastore_emulator=yes|no
- Use the Cloud Datastore Emulator (beta) for local datastore emulation.
--datastore_emulator_port=...
- The port number to use for Cloud Datastore Emulator (beta).
--env_var=...
- 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 toenv_variables
in theapp.yaml
, this flag allows setting extra environment variables for local processes. For example:--env_var KEY_1=val1 --env_var KEY_2=val2
--go_debugging=yes|no
- 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>
.