---
name: "uvicorn"
section: "1"
platform: "linux"
package: "uvicorn"
version: "0.32.0-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/uvicorn"
---

# uvicorn(1)

ASGI server implementation, using uvloop and httptools

## NAME

Running - ASGI server implementation, using uvloop and httptools

## SYNOPSIS

**uvicorn** \[*OPTIONS*\] *APP*

## OPTIONS

- **--host** TEXT

  Bind socket to this host.  \[default: 127.0.0.1\]

- **--port** INTEGER

  Bind socket to this port. If 0, an available port will be picked.  \[default: 8000\]

- **--uds** TEXT

  Bind to a UNIX domain socket.

- **--fd** INTEGER

  Bind to socket from this file descriptor.

- **--reload**

  Enable auto-reload.

- **--reload-dir** PATH

  Set reload directories explicitly, instead of using the current working directory.

- **--reload-include** TEXT

  Set glob patterns to include while watching for files. Includes '\*.py' by default; these defaults can be overridden with \`--reloadexclude\`. This option has no effect unless watchfiles is installed.

- **--reload-exclude** TEXT

  Set glob patterns to exclude while watching for files. Includes '.\*, .py\[cod\], .sw.\*, ~\*' by default; these defaults can be overridden with \`--reload-include\`. This option has no effect unless watchfiles is installed.

- **--reload-delay** FLOAT

  Delay between previous and next check if application needs to be. Defaults to 0.25s. \[default: 0.25\]

- **--workers** INTEGER

  Number of worker processes. Defaults to the $WEB\_CONCURRENCY environment variable if available, or 1. Not valid with **--reload**.

- **--loop** \[auto\|asyncio\|uvloop\]

  Event loop implementation.  \[default: auto\]

- **--http** \[auto\|h11\|httptools\]

  HTTP protocol implementation.  \[default: auto\]

- **--ws** \[auto\|none\|websockets\|wsproto\]

  WebSocket protocol implementation. \[default: auto\]

- **--ws-max-size** INTEGER

  WebSocket max size message in bytes \[default: 16777216\]

- **--ws-max-queue** INTEGER

  The maximum length of the WebSocket message queue.  \[default: 32\]

- **--ws-ping-interval** FLOAT

  WebSocket ping interval in seconds. \[default: 20.0\]

- **--ws-ping-timeout** FLOAT

  WebSocket ping timeout in seconds. \[default: 20.0\]

- **--ws-per-message-deflate** BOOLEAN

  WebSocket per-message-deflate compression \[default: True\]

- **--lifespan** \[auto\|on\|off\]

  Lifespan implementation.  \[default: auto\]

- **--interface** \[auto\|asgi3\|asgi2\|wsgi\]

  Select ASGI3, ASGI2, or WSGI as the application interface.  \[default: auto\]

- **--env-file** PATH

  Environment configuration file.

- **--log-config** PATH

  Logging configuration file. Supported formats: .ini, .json, .yaml.

- **--log-level** \[critical\|error\|warning\|info\|debug\|trace\]

  Log level. \[default: info\]

- **--access-log** / **--no-access-log**

  Enable/Disable access log.

- **--use-colors** / **--no-use-colors**

  Enable/Disable colorized logging.

- **--proxy-headers** / **--no-proxy-headers**

  Enable/Disable X-Forwarded-Proto, X-Forwarded-For, X-Forwarded-Port to populate remote address info.

- **--server-header** / **--no-server-header**

  Enable/Disable default Server header.

- **--date-header** / **--no-date-header**

  Enable/Disable default Date header.

- **--forwarded-allow-ips** TEXT

  Comma separated list of IP Addresses, IP Networks, or literals (e.g. UNIX Socket path) to trust with proxy headers. Defaults to the $FORWARDED\_ALLOW\_IPS environment variable if available, or '127.0.0.1'. The literal '\*' means trust everything.

- **--root-path** TEXT

  Set the ASGI 'root\_path' for applications submounted below a given URL path.

- **--limit-concurrency** INTEGER

  Maximum number of concurrent connections or tasks to allow, before issuing HTTP 503 responses.

- **--backlog** INTEGER

  Maximum number of connections to hold in backlog

- **--limit-max-requests** INTEGER

  Maximum number of requests to service before terminating the process.

- **--timeout-keep-alive** INTEGER

  Close Keep-Alive connections if no new data is received within this timeout.  \[default: 5\]

- **--timeout-graceful-shutdown** INTEGER

  Maximum number of seconds to wait for graceful shutdown.

- **--ssl-keyfile** TEXT

  SSL key file

- **--ssl-certfile** TEXT

  SSL certificate file

- **--ssl-keyfile-password** TEXT

  SSL keyfile password

- **--ssl-version** INTEGER

  SSL version to use (see stdlib ssl module's) \[default: 17\]

- **--ssl-cert-reqs** INTEGER

  Whether client certificate is required (see stdlib ssl module's)  \[default: 0\]

- **--ssl-ca-certs** TEXT

  CA certificates file

- **--ssl-ciphers** TEXT

  Ciphers to use (see stdlib ssl module's) \[default: TLSv1\]

- **--header** TEXT

  Specify custom default HTTP response headers as a Name:Value pair

- **--version**

  Display the uvicorn version and exit.

- **--app-dir** TEXT

  Look for APP in the specified directory, by adding this to the PYTHONPATH. Defaults to the current working directory.  \[default: ""\]

- **--h11-max-incomplete-event-size** INTEGER

  For h11, the maximum number of bytes to buffer of an incomplete event.

- **--factory**

  Treat APP as an application factory, i.e. a () -\> \<ASGI app\> callable.

- **--help**

  Show this message and exit.

## SEE ALSO

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

-

  **info Running**

should give you access to the complete manual.
