RUNNING(1)

πŸ“¦
version 0.38.0 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

🌸 RUNNING(1) β€” the Running page, bestie edition 🌸

okay so. this is the manual for Running β€” an ASGI server implementation, using uvloop and httptools. it lives in section 1 of the manual (User Commands, iykyk) and honestly? she's iconic. let's get into it. πŸ’…


✨ NAME ✨

Running β€” ASGI server implementation, using uvloop and httptools. that's the whole vibe. that's her. πŸ¦‹


✨ SYNOPSIS ✨

uvicorn [OPTIONS] APP

like. that's it. that's the whole spell. options go in, APP goes last, server goes brrr. ✨


✨ OPTIONS ✨

okay bestie, here's the full menu. every single one. no skips, no skimming, we're doing this properly. πŸŽ€

🌐 where do we even listen

  • --host TEXT β€” bind the socket to this host. [default: 127.0.0.1]
  • --port INTEGER β€” bind the socket to this port. if it's 0, an available port gets picked for you, cute. [default: 8000]
  • --uds TEXT β€” bind to a UNIX domain socket instead.
  • --fd INTEGER β€” bind to the socket from this file descriptor. fancy.

πŸ”„ auto-reload era (the "omg I saved the file" section)

  • --reload β€” enable auto-reload. the file-watcher fantasy. πŸ”₯
  • --reload-dir PATH β€” set the reload directories explicitly instead of just 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 --reload-exclude. heads up: 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. also: this option has no effect unless watchfiles is installed.
  • --reload-delay FLOAT β€” delay between the previous and next check if the application needs to be reloaded. defaults to 0.25s. [default: 0.25]

πŸ‘― workers & concurrency

  • --workers INTEGER β€” number of worker processes. defaults to the $WEB_CONCURRENCY environment variable if it's available, or 1. not valid with --reload, so pick a lane bestie.
  • --limit-concurrency INTEGER β€” maximum number of concurrent connections or tasks to allow before issuing HTTP 503 responses. (yes, the sad little 503. πŸ₯²)
  • --backlog INTEGER β€” maximum number of connections to hold in the backlog.
  • --limit-max-requests INTEGER β€” maximum number of requests to service before terminating the process.

🧚 the implementations (aka choose your fighter)

  • --loop [auto|asyncio|uvloop] β€” event loop factory implementation. [default: auto]
  • --http [auto|h11|httptools] β€” HTTP protocol implementation. [default: auto]
  • --ws [auto|websockets|websockets-sansio|wsproto] β€” WebSocket protocol implementation. [default: auto]
  • --lifespan [auto|on|off] β€” lifespan implementation. [default: auto]
  • --interface [auto|asgi3|asgi2|wsgi] β€” select ASGI3, ASGI2, or WSGI as the application interface. [default: auto]

πŸ•ΈοΈ websocket girlies, this one's for you

  • --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]

⏱️ timeouts & graceful exits

  • --timeout-keep-alive INTEGER β€” close Keep-Alive connections if no new data is received within this timeout (in seconds). [default: 5]
  • --timeout-graceful-shutdown INTEGER β€” maximum number of seconds to wait for graceful shutdown.
  • --timeout-worker-healthcheck INTEGER β€” maximum number of seconds to wait for a worker to respond to a healthcheck. [default: 5]

πŸ“ files, config & logs

  • --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]
  • --app-dir TEXT β€” look for APP in the specified directory, by adding this to the PYTHONPATH. defaults to the current working directory. [default: ""]

πŸ”€ on/off toggles (both directions, always)

  • --access-log / --no-access-log β€” enable/disable the access log.
  • --use-colors / --no-use-colors β€” enable/disable colorized logging. (say yes. color is the moment. 🌈)
  • --proxy-headers / --no-proxy-headers β€” enable/disable X-Forwarded-Proto, X-Forwarded-For to populate url scheme and remote address info.
  • --server-header / --no-server-header β€” enable/disable the default Server header.
  • --date-header / --no-date-header β€” enable/disable the default Date header.

🫢 trusting proxies & mounting paths

  • --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. everything. be careful with that one bestie.
  • --root-path TEXT β€” set the ASGI 'root_path' for applications submounted below a given URL path.

πŸ” SSL / TLS section (the locked-down, mysterious era)

  • --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]

✨ custom stuff & housekeeping

  • --header TEXT β€” specify custom default HTTP response headers as a Name:Value pair
  • --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.
  • --version β€” display the uvicorn version and exit. (screenshot it. post it. 🫢)
  • --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, this command

info Running

should give you access to the complete manual. go read her, she's thorough. πŸ’œ


and that's the whole page bestie!! slay, you read all of it, I'm so proud πŸŽ€

okay so for the little sign-off β€” this whole thing is Running uvicorn 0.38.0 with C..., dated December 2025, and it's the RUNNING(1) page. no cap. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from