UWSGI_PYTHON310(1)

๐Ÿ“ฆ version 2.0.20, in ubuntu jammy

โœจ NAME โœจ

uwsgi_python310(1) โ€” bestie, meet your new obsession: a fast (pure C), self-healing, developer-friendly WSGI server. Like, it's giving main character energy for your Python web apps. ๐Ÿ’–


โœจ SYNOPSIS โœจ

uwsgi-core-local [options...]

โœจ DESCRIPTION โœจ

Okay so this is the part where we spill all the options. There are literally so many. Grab a boba, get comfy, and let's go through them one by one. No cap, every single flag matters. This is part 1 of 7, so buckle up. ๐Ÿงš

  • -s|--socket โ€” binds to the UNIX/TCP socket you specify, using the default protocol. Classic. โœจ
  • -s|--uwsgi-socket โ€” binds to the UNIX/TCP socket you specify, using the uwsgi protocol. Same socket vibe, different protocol. ๐Ÿ’…
  • --suwsgi-socket โ€” binds to the UNIX/TCP socket you specify, using the uwsgi protocol over SSL. Secure slay. ๐Ÿ”’
  • --ssl-socket โ€” binds to the UNIX/TCP socket you specify, using the uwsgi protocol over SSL. Yes, it's the same as above โ€” duplicate energy, still valid. ๐ŸŒธ
  • --http-socket โ€” binds to the UNIX/TCP socket you specify, using HTTP protocol. The people's champ. ๐ŸŒ
  • --http-socket-modifier1 โ€” forces the modifier1 you specify when using HTTP protocol. Niche but iconic. ๐ŸŽ€
  • --http-socket-modifier2 โ€” forces the modifier2 you specify when using HTTP protocol. Twin energy. ๐Ÿฆ‹
  • --http11-socket โ€” binds to the UNIX/TCP socket you specify, using HTTP 1.1 (Keep-Alive) protocol. Your connections stay alive, bestie. ๐Ÿ’–
  • --https-socket โ€” binds to the UNIX/TCP socket you specify, using HTTPS protocol. The secure glow-up. ๐Ÿ”ฅ
  • --https-socket-modifier1 โ€” forces the modifier1 you specify when using HTTPS protocol. You know the drill. โœจ
  • --https-socket-modifier2 โ€” forces the modifier2 you specify when using HTTPS protocol. Periodt. ๐Ÿ’…
  • --fastcgi-socket โ€” binds to the UNIX/TCP socket you specify, using FastCGI protocol. Old school but still cute. ๐Ÿ“
  • --fastcgi-nph-socket โ€” binds to the UNIX/TCP socket you specify, using FastCGI protocol (nph mode). Niche flex. ๐Ÿงš
  • --fastcgi-modifier1 โ€” forces the modifier1 you specify when using FastCGI protocol. ๐ŸŽ€
  • --fastcgi-modifier2 โ€” forces the modifier2 you specify when using FastCGI protocol. ๐Ÿฆ‹
  • --scgi-socket โ€” binds to the UNIX/TCP socket you specify, using SCGI protocol. Underrated fr fr. ๐ŸŒธ
  • --scgi-nph-socket โ€” binds to the UNIX/TCP socket you specify, using SCGI protocol (nph mode). We love a variant. ๐Ÿ’œ
  • --scgi-modifier1 โ€” forces the modifier1 you specify when using SCGI protocol. ๐Ÿ’…
  • --scgi-modifier2 โ€” forces the modifier2 you specify when using SCGI protocol. โœจ
  • --raw-socket โ€” binds to the UNIX/TCP socket you specify, using RAW protocol. No filter, just vibes. ๐Ÿ”ฅ
  • --raw-modifier1 โ€” forces the modifier1 you specify when using RAW protocol. ๐ŸŽ€
  • --raw-modifier2 โ€” forces the modifier2 you specify when using RAW protocol. ๐Ÿฆ‹
  • --puwsgi-socket โ€” binds to the UNIX/TCP socket you specify, using persistent uwsgi protocol (puwsgi). Commitment issues? Not here. ๐Ÿ’–
  • --protocol โ€” forces the protocol you specify for default sockets. You're in charge. ๐Ÿ‘‘
  • --socket-protocol โ€” forces the protocol you specify for default sockets. Same as above. Twin flame. โœจ
  • --shared-socket โ€” creates a shared socket for advanced jailing or ipc. Big brain move. ๐Ÿง 
  • --undeferred-shared-socket โ€” creates a shared socket for advanced jailing or ipc (undeferred mode). The sequel. ๐Ÿ’…
  • -p|--processes โ€” spawns the number of workers/processes you specify. Pop off. ๐ŸŒˆ
  • -p|--workers โ€” spawns the number of workers/processes you specify. Same as above, just a different name. Slay. ๐Ÿ’–
  • --thunder-lock โ€” serializes accept() usage (if possible). Thunder lock, iconic. โšก
  • -t|--harakiri โ€” sets the harakiri timeout. Dramatic name, serious business. ๐Ÿ—ก๏ธ
  • --harakiri-verbose โ€” enables verbose mode for harakiri. It'll tell you everything. ๐Ÿ˜ญ
  • --harakiri-no-arh โ€” does not enable harakiri during after-request-hook. Boundaries. ๐Ÿšซ
  • --no-harakiri-arh โ€” does not enable harakiri during after-request-hook. Same boundary, different flag. ๐Ÿ’…
  • --no-harakiri-after-req-hook โ€” does not enable harakiri during after-request-hook. Third time's the charm. Still no harakiri there. โœจ
  • --backtrace-depth โ€” sets backtrace depth. For when you need the tea. ๐Ÿต
  • --mule-harakiri โ€” sets harakiri timeout for mule tasks. Mule-specific drama. ๐Ÿด
  • -x|--xmlconfig โ€” loads config from an XML file. Old school cool. ๐Ÿ“œ
  • -x|--xml โ€” loads config from an XML file. Same XML config, shorter name. โœจ
  • --config โ€” loads configuration using the pluggable system. Flexible queen. ๐Ÿ’…
  • --fallback-config โ€” re-execs uwsgi with the config you specify when exit code is 1. Backup plan energy. ๐Ÿ›Ÿ
  • --strict โ€” enables strict mode (placeholder cannot be used). Placeholders? Not allowed. No cap. ๐Ÿšซ
  • --skip-zero โ€” skips check of file descriptor 0. Bye. ๐Ÿ‘‹
  • --skip-atexit โ€” skips atexit hooks (ignored by the master). Note: the master ignores this. ๐Ÿ™ˆ
  • --skip-atexit-teardown โ€” skips atexit teardown (ignored by the master). Master still ignores it. ๐Ÿ’€
  • -S|--set โ€” sets a placeholder or an option. Multitasking icon. ๐ŸŽ€
  • --set-placeholder โ€” sets a placeholder. Just that. โœจ
  • --set-ph โ€” sets a placeholder. Placeholder setter, short version. ๐Ÿ’…
  • --get โ€” prints the option value you specify and exits. Hit and run. ๐Ÿƒโ€โ™€๏ธ
  • --declare-option โ€” declares a new uWSGI custom option. DIY queen. ๐Ÿ‘‘
  • --declare-option2 โ€” declares a new uWSGI custom option (non-immediate). The sequel. ๐Ÿฆ‹
  • --resolve โ€” places the result of a dns query in the placeholder you specify, sytax: placeholder=name (immediate option). Yes, 'sytax' is a typo, we're keeping it. ๐ŸŒ
  • --for โ€” (opt logic) for cycle. Loops, but make it fashion. ๐Ÿ”
  • --for-glob โ€” (opt logic) for cycle (expand glob). Fancy loop. โœจ
  • --for-times โ€” (opt logic) for cycle (expand the specified num to a list starting from 1). Math slay. ๐Ÿ”ข
  • --for-readline โ€” (opt logic) for cycle (expand the specified file to a list of lines). File-to-list pipeline. ๐Ÿ“„
  • --endfor โ€” (opt logic) end for cycle. Bye loop. ๐Ÿ‘‹
  • --end-for โ€” (opt logic) end for cycle. Same end, different spelling. ๐Ÿ’…
  • --if-opt โ€” (opt logic) check for option. Checks if an option exists. ๐Ÿ‘€
  • --if-not-opt โ€” (opt logic) check for option. Checks if an option does NOT exist. Negative queen. ๐Ÿšซ
  • --if-env โ€” (opt logic) check for environment variable. ๐ŸŒฑ
  • --if-not-env โ€” (opt logic) check for environment variable. Checks that an env var is not there. ๐Ÿ™…
  • --ifenv โ€” (opt logic) check for environment variable. Same as --if-env, but shorter. โœจ
  • --if-reload โ€” (opt logic) check for reload. ๐Ÿ”„
  • --if-not-reload โ€” (opt logic) check for reload. Checks for NOT reload. ๐Ÿค”
  • --if-hostname โ€” (opt logic) check for hostname. ๐Ÿ 
  • --if-not-hostname โ€” (opt logic) check for hostname. Checks that hostname doesn't match. ๐Ÿšซ
  • --if-hostname-match โ€” (opt logic) try to match hostname against a regular expression. Regex bestie. ๐Ÿ”
  • --if-not-hostname-match โ€” (opt logic) try to match hostname against a regular expression. Regex match, but NOT. Inverse. ๐Ÿ”„
  • --if-exists โ€” (opt logic) check for file/directory existence. ๐Ÿ‘€
  • --if-not-exists โ€” (opt logic) check for file/directory existence. Checks if it does NOT exist. ๐Ÿšซ
  • --ifexists โ€” (opt logic) check for file/directory existence. Same as --if-exists, shorter. โœจ
  • --if-plugin โ€” (opt logic) check for plugin. ๐Ÿ”Œ
  • --if-not-plugin โ€” (opt logic) check for plugin. Checks for no plugin. ๐Ÿšซ
  • --ifplugin โ€” (opt logic) check for plugin. Shorter plugin check. ๐Ÿ’…
  • --if-file โ€” (opt logic) check for file existance. Yes, 'existance' typo, keeping it. ๐Ÿ“
  • --if-not-file โ€” (opt logic) check for file existance. Checks for file NOT existance. ๐Ÿšซ
  • --if-dir โ€” (opt logic) check for directory existance. ๐Ÿ“‚
  • --if-not-dir โ€” (opt logic) check for directory existance. Checks for directory NOT existance. ๐Ÿšซ
  • --ifdir โ€” (opt logic) check for directory existance. Shorter directory check. โœจ
  • --if-directory โ€” (opt logic) check for directory existance. Even longer directory check. ๐Ÿ’…
  • --endif โ€” (opt logic) end if. Bye condition. ๐Ÿ‘‹
  • --end-if โ€” (opt logic) end if. Same end, hyphenated. โœจ
  • --blacklist โ€” sets options blacklist context. Denied. ๐Ÿšซ
  • --end-blacklist โ€” clears options blacklist context. Freedom. ๐Ÿ•Š๏ธ
  • --whitelist โ€” sets options whitelist context. Allowed. โœ…
  • --end-whitelist โ€” clears options whitelist context. Bye. ๐Ÿ‘‹
  • --ignore-sigpipe โ€” does not report (annoying) SIGPIPE. We don't need that drama. ๐Ÿ™ˆ
  • --ignore-write-errors โ€” does not report (annoying) write()/writev() errors. Peace. โœŒ๏ธ
  • --write-errors-tolerance โ€” sets the maximum number of allowed write errors (default: no tolerance). Zero chill. ๐Ÿ’€
  • --write-errors-exception-only โ€” only raises an exception on write errors, giving control to the app itself. Delegation. ๐ŸŽค
  • --disable-write-exception โ€” disables exception generation on write()/writev(). No exceptions. ๐Ÿšซ
  • --inherit โ€” uses the file you specify as a config template. Inheritance but make it config. ๐Ÿ‘‘
  • --include โ€” includes the file you specify as immediate configuration. Right now. โšก
  • --inject-before โ€” injects a text file before the config file (advanced templating). ๐Ÿงฌ
  • --inject-after โ€” injects a text file after the config file (advanced templating). Advanced templating, part two. ๐Ÿงฌ
  • -d|--daemonize โ€” daemonizes uWSGI. Background vibes. ๐ŸŒ™
  • --daemonize2 โ€” daemonizes uWSGI after app loading. Fashionably late. โฐ
  • --stop โ€” stops an instance. Bye bestie. ๐Ÿ‘‹
  • --reload โ€” reloads an instance. Refresh. ๐Ÿ”„
  • --pause โ€” pauses an instance. Timeout. โธ๏ธ
  • --suspend โ€” suspends an instance. Sleep mode. ๐Ÿ˜ด
  • --resume โ€” resumes an instance. Wake up. โ˜€๏ธ
  • --connect-and-read โ€” connects to a socket and waits for data from it. Patient queen. โณ
  • --extract โ€” fetches/dumps any supported address to stdout. Data dump. ๐Ÿ“ค
  • -l|--listen โ€” sets the socket listen queue size. Queue up. ๐ŸŽŸ๏ธ
  • -v|--max-vars โ€” sets the amount of internal iovec/vars structures. Internals. ๐Ÿง 
  • --max-apps โ€” sets the maximum number of per-worker applications. Limit. ๐Ÿšง
  • -b|--buffer-size โ€” sets internal buffer size. Buffer bestie. ๐Ÿงบ
  • -m|--memory-report โ€” enables memory report. Receipts. ๐Ÿงพ
  • --profiler โ€” enables the profiler you specify. Profile era. ๐Ÿ“Š
  • -c|--cgi-mode โ€” forces CGI-mode for plugins supporting it. Retro. ๐Ÿ“ผ
  • -a|--abstract-socket โ€” forces UNIX socket in abstract mode (Linux only). Linux only, bestie. ๐Ÿง
  • -C|--chmod-socket โ€” chmod-socket. Permissions slay. ๐Ÿ”
  • -C|--chmod โ€” chmod-socket. Same chmod, different name. โœจ
  • --chown-socket โ€” chowns unix sockets. Ownership. ๐Ÿ‘‘
  • --umask โ€” sets umask. Mask on. ๐ŸŽญ
  • --freebind โ€” puts socket in freebind mode. Free to bind. ๐Ÿ•Š๏ธ
  • --map-socket โ€” maps sockets to specific workers. Matchmaker. ๐Ÿ’˜
  • -T|--enable-threads โ€” enables threads. Thread party. ๐Ÿงต
  • --no-threads-wait โ€” does not wait for threads cancellation on quit/reload. No waiting. ๐Ÿšซ
  • --auto-procname โ€” automatically sets processes name to something meaningful. Auto-naming. ๐Ÿท๏ธ
  • --procname-prefix โ€” adds a prefix to the process names. Prefix era. ๐Ÿ”ค
  • --procname-prefix-spaced โ€” adds a spaced prefix to the process names. Space out. ๐Ÿš€
  • --procname-append โ€” appends a string to process names. Suffix. โž•
  • --procname โ€” sets process names. Name it. ๐Ÿ“›
  • --procname-master โ€” sets master process name. Master's name. ๐Ÿ‘‘
  • -i|--single-interpreter โ€” does not use multiple interpreters (where available). Single and ready to mingle. ๐Ÿ’ƒ
  • --need-app โ€” exits if no app can be loaded. No app, no service. ๐Ÿšช
  • -M|--master โ€” enables master process. Master mode. ๐Ÿง™
  • --honour-stdin โ€” does not remap stdin to /dev/null. Respect stdin. ๐Ÿ™Œ
  • --emperor โ€” runs the Emperor. All hail. ๐Ÿ‘‘
  • --emperor-proxy-socket โ€” forces the vassal to became an Emperor proxy. Yes, 'became' typo, keeping it. ๐Ÿฐ
  • --emperor-wrapper โ€” sets a binary wrapper for vassals. Wrap it up. ๐ŸŽ
  • --emperor-wrapper-override โ€” sets a binary wrapper for vassals to try before the default one. Override. ๐Ÿฅ‡
  • --emperor-wrapper-fallback โ€” sets a binary wrapper for vassals to try as a last resort. Backup plan. ๐Ÿ›Ÿ
  • --emperor-nofollow โ€” does not follow symlinks when checking for mtime. No follow. ๐Ÿšซ
  • --emperor-procname โ€” sets the Emperor process name. Royal naming. ๐Ÿ‘‘
  • --emperor-freq โ€” sets the Emperor scan frequency (default 3 seconds). Tick tock. โฐ
  • --emperor-required-heartbeat โ€” sets the Emperor tolerance about heartbeats. Heartbeat check. ๐Ÿ’“
  • --emperor-curse-tolerance โ€” sets the Emperor tolerance about cursed vassals. Cursed energy. ๐Ÿง™โ€โ™‚๏ธ
  • --emperor-pidfile โ€” writes the Emperor pid in the file you specify. PID file. ๐Ÿ“
  • --emperor-tyrant โ€” puts the Emperor in Tyrant mode. Tyrant era. ๐Ÿ‘‘
  • --emperor-tyrant-nofollow โ€” does not follow symlinks when checking for uid/gid in Tyrant mode. No follow. ๐Ÿšซ
  • --emperor-stats โ€” runs the Emperor stats server. Stats slay. ๐Ÿ“Š
  • --emperor-stats-server โ€” runs the Emperor stats server. Same stats server, different flag. โœจ
  • --early-emperor โ€” spawn the emperor as soon as possibile ๐Ÿ˜ญโœจ
  • --emperor-broodlord โ€” run the emperor in BroodLord mode ๐Ÿ‘‘
  • --emperor-throttle โ€” set throttling level (in milliseconds) for bad behaving vassals (default 1000) ๐Ÿ˜ค
  • --emperor-max-throttle โ€” set max throttling level (in milliseconds) for bad behaving vassals (default 3 minutes) ๐Ÿšฆ
  • --emperor-magic-exec โ€” prefix vassals config files with exec:// if they have the executable bit ๐Ÿช„
  • --emperor-on-demand-extension โ€” search for text file (vassal name + extension) containing the on demand socket name ๐Ÿ”
  • --emperor-on-demand-ext โ€” search for text file (vassal name + extension) containing the on demand socket name ๐Ÿ”
  • --emperor-on-demand-directory โ€” enable on demand mode binding to the unix socket in the specified directory named like the vassal + .socket ๐Ÿ“‚
  • --emperor-on-demand-dir โ€” enable on demand mode binding to the unix socket in the specified directory named like the vassal + .socket ๐Ÿ“‚
  • --emperor-on-demand-exec โ€” use the output of the specified command as on demand socket name (the vassal name is passed as the only argument) ๐Ÿ–ฅ๏ธ
  • --emperor-extra-extension โ€” allows the specified extension in the Emperor (vassal will be called with --config) ๐Ÿ“Ž
  • --emperor-extra-ext โ€” allows the specified extension in the Emperor (vassal will be called with --config) ๐Ÿ“Ž
  • --emperor-no-blacklist โ€” disable Emperor blacklisting subsystem ๐Ÿšซ
  • --emperor-use-clone โ€” use clone() instead of fork() passing the specified unshare() flags ๐Ÿงฌ
  • --emperor-graceful-shutdown โ€” use vassals graceful shutdown during ragnarok ๐ŸŒ‹
  • --emperor-cap โ€” set vassals capability ๐ŸŽฉ
  • --vassals-cap โ€” set vassals capability ๐ŸŽฉ
  • --vassal-cap โ€” set vassals capability ๐ŸŽฉ
  • --imperial-monitor-list โ€” list enabled imperial monitors ๐Ÿ‘€
  • --imperial-monitors-list โ€” list enabled imperial monitors ๐Ÿ‘€
  • --vassals-inherit โ€” add config templates to vassals config (uses --inherit) ๐Ÿ“œ
  • --vassals-include โ€” include config templates to vassals config (uses --include instead of --inherit) ๐Ÿ“œ
  • --vassals-inherit-before โ€” add config templates to vassals config (uses --inherit, parses before the vassal file) ๐Ÿ“œ
  • --vassals-include-before โ€” include config templates to vassals config (uses --include instead of --inherit, parses before the vassal file) ๐Ÿ“œ
  • --vassals-start-hook โ€” run the specified command before each vassal starts ๐Ÿš€
  • --vassals-stop-hook โ€” run the specified command after vassal's death โšฐ๏ธ
  • --vassal-sos โ€” ask emperor for reinforcement when overloaded ๐Ÿ†˜
  • --vassal-sos-backlog โ€” ask emperor for sos if backlog queue has more items than the value specified ๐Ÿ“ˆ
  • --vassals-set โ€” automatically set the specified option (via --set) for every vassal โš™๏ธ
  • --vassal-set โ€” automatically set the specified option (via --set) for every vassal โš™๏ธ
  • --heartbeat โ€” announce healthiness to the emperor ๐Ÿ’“
  • --reload-mercy โ€” set the maximum time (in seconds) we wait for workers and other processes to die during reload/shutdown โณ
  • --worker-reload-mercy โ€” set the maximum time (in seconds) a worker can take to reload/shutdown (default is 60) โณ
  • --mule-reload-mercy โ€” set the maximum time (in seconds) a mule can take to reload/shutdown (default is 60) โณ
  • --exit-on-reload โ€” force exit even if a reload is requested ๐Ÿšช
  • --die-on-term โ€” exit instead of brutal reload on SIGTERM ๐Ÿ’€
  • --force-gateway โ€” force the spawn of the first registered gateway without a master ๐ŸŒ€
  • -h, --help โ€” show this help ๐Ÿ†˜
  • -h, --usage โ€” show this help ๐Ÿ†˜
  • --print-sym โ€” print content of the specified binary symbol ๐Ÿ–จ๏ธ
  • --print-symbol โ€” print content of the specified binary symbol ๐Ÿ–จ๏ธ
  • -r, --reaper โ€” call waitpid(-1,...) after each request to get rid of zombies ๐ŸงŸ
  • -R, --max-requests โ€” reload workers after the specified amount of managed requests ๐Ÿ”„
  • --min-worker-lifetime โ€” number of seconds worker must run before being reloaded (default is 60) โฑ๏ธ
  • --max-worker-lifetime โ€” reload workers after the specified amount of seconds (default is disabled) โฑ๏ธ
  • --max-worker-lifetime-delta โ€” add (worker_id * delta) seconds to the max_worker_lifetime value of each worker โž•
  • -z, --socket-timeout โ€” set internal sockets timeout โฐ
  • --no-fd-passing โ€” disable file descriptor passing ๐Ÿšซ
  • --locks โ€” create the specified number of shared locks ๐Ÿ”’
  • --lock-engine โ€” set the lock engine ๐Ÿ”ง
  • --ftok โ€” set the ipcsem key via ftok() for avoiding duplicates ๐Ÿ”‘
  • --persistent-ipcsem โ€” do not remove ipcsem's on shutdown ๐Ÿ—‘๏ธ
  • -A, --sharedarea โ€” create a raw shared memory area of specified pages (note: it supports keyval too) ๐Ÿง 
  • --safe-fd โ€” do not close the specified file descriptor ๐Ÿ›ก๏ธ
  • --fd-safe โ€” do not close the specified file descriptor ๐Ÿ›ก๏ธ
  • --cache โ€” create a shared cache containing given elements ๐Ÿ—ƒ๏ธ
  • --cache-blocksize โ€” set cache blocksize ๐Ÿ“ฆ
  • --cache-store โ€” enable persistent cache to disk ๐Ÿ’พ
  • --cache-store-sync โ€” set frequency of sync for persistent cache ๐Ÿ”„
  • --cache-no-expire โ€” disable auto sweep of expired items ๐Ÿงน
  • --cache-expire-freq โ€” set the frequency of cache sweeper scans (default 3 seconds) โฒ๏ธ
  • --cache-report-freed-items โ€” constantly report the cache item freed by the sweeper (use only for debug) ๐Ÿ›
  • --cache-udp-server โ€” bind the cache udp server (used only for set/update/delete) to the specified socket ๐Ÿ“ก
  • --cache-udp-node โ€” send cache update/deletion to the specified cache udp server ๐Ÿ“ค
  • --cache-sync โ€” copy the whole content of another uWSGI cache server on server startup ๐Ÿ“‹
  • --cache-use-last-modified โ€” update last_modified_at timestamp on every cache item modification (default is disabled) ๐Ÿ•’
  • --add-cache-item โ€” add an item in the cache โž•
  • --load-file-in-cache โ€” load a static file in the cache ๐Ÿ“„
  • --load-file-in-cache-gzip โ€” load a static file in the cache with gzip compression ๐Ÿ—œ๏ธ
  • --cache2 โ€” create a new generation shared cache (keyval syntax) ๐Ÿ†•
  • --queue โ€” enable shared queue ๐Ÿ“ฅ
  • --queue-blocksize โ€” set queue blocksize ๐Ÿ“ฆ
  • --queue-store โ€” enable persistent queue to disk ๐Ÿ’พ
  • --queue-store-sync โ€” set frequency of sync for persistent queue ๐Ÿ”„
  • -Q, --spooler โ€” run a spooler on the specified directory ๐Ÿงต
  • --spooler-external โ€” map spoolers requests to a spooler directory managed by an external instance ๐Ÿ”—
  • --spooler-ordered โ€” try to order the execution of spooler tasks ๐Ÿ“‹
  • --spooler-chdir โ€” chdir() to specified directory before each spooler task ๐Ÿ“‚
  • --spooler-processes โ€” set the number of processes for spoolers ๐Ÿ‘ฅ
  • --spooler-quiet โ€” do not be verbose with spooler tasks ๐Ÿคซ
  • --spooler-max-tasks โ€” set the maximum number of tasks to run before recycling a spooler ๐Ÿ”„
  • --spooler-harakiri โ€” set harakiri timeout for spooler tasks ๐Ÿ—ก๏ธ
  • --spooler-frequency โ€” set spooler frequency โฑ๏ธ
  • --spooler-freq โ€” set spooler frequency โฑ๏ธ
  • --mule โ€” add a mule ๐Ÿด
  • --mules โ€” add the specified number of mules ๐Ÿด
  • --farm โ€” add a mule farm ๐Ÿšœ
  • --mule-msg-size โ€” set mule message buffer size ๐Ÿ“จ
  • --signal โ€” send a uwsgi signal to a server ๐Ÿ“ถ
  • --signal-bufsize โ€” set buffer size for signal queue ๐Ÿ“ถ
  • --signals-bufsize โ€” set buffer size for signal queue ๐Ÿ“ถ
  • --signal-timer โ€” add a timer (syntax: <signal> <seconds>) โฒ๏ธ
  • --timer โ€” add a timer (syntax: <signal> <seconds>) โฒ๏ธ
  • --signal-rbtimer โ€” add a redblack timer (syntax: <signal> <seconds>) ๐ŸŒณ
  • --rbtimer โ€” add a redblack timer (syntax: <signal> <seconds>) ๐ŸŒณ
  • --rpc-max โ€” maximum number of rpc slots (default: 64) ๐Ÿ“ž
  • -L, --disable-logging โ€” disable request logging ๐Ÿšซ
  • --flock โ€” lock the specified file before starting, exit if locked ๐Ÿ”’
  • --flock-wait โ€” lock the specified file before starting, wait if locked โณ
  • --flock2 โ€” lock the specified file after logging/daemon setup, exit if locked ๐Ÿ”’
  • --flock-wait2 โ€” lock the specified file after logging/daemon setup, wait if locked โณ
  • --pidfile โ€” create pidfile (before privileges drop) ๐Ÿ“„
  • --pidfile2 โ€” create pidfile (after privileges drop) ๐Ÿ“„
  • --safe-pidfile โ€” create safe pidfile (before privileges drop) ๐Ÿ›ก๏ธ
  • --safe-pidfile2 โ€” create safe pidfile (after privileges drop) ๐Ÿ›ก๏ธ
  • --chroot โ€” chroot() to the specified directory ๐Ÿฐ
  • --pivot-root โ€” pivot_root() to the specified directories (new_root and put_old must be separated with a space) ๐Ÿ”„
  • --pivot_root โ€” pivot_root() to the specified directories (new_root and put_old must be separated with a space) ๐Ÿ”„
  • --uid โ€” setuid to the specified user/uid ๐Ÿ‘ค
  • --gid โ€” setgid to the specified group/gid ๐Ÿ‘ฅ
  • --add-gid โ€” add the specified group id to the process credentials โž•
  • --immediate-uid โ€” setuid to the specified user/uid IMMEDIATELY โšก
  • --immediate-gid โ€” setgid to the specified group/gid IMMEDIATELY โšก
  • --no-initgroups โ€” disable additional groups set via initgroups() ๐Ÿšซ
  • --cap โ€” set process capability ๐ŸŽฉ
  • --unshare โ€” unshare() part of the processes and put it in a new namespace ๐ŸŒŒ
  • --unshare2 โ€” unshare() part of the processes and put it in a new namespace after rootfs change ๐ŸŒŒ
  • --setns-socket โ€” expose a unix socket returning namespace fds from /proc/self/ns ๐Ÿ”Œ
  • --setns-socket-skip โ€” skip the specified entry when sending setns file descriptors โญ๏ธ
  • --setns-skip โ€” skip the specified entry when sending setns file descriptors โญ๏ธ
  • --setns โ€” join a namespace created by an external uWSGI instance ๐Ÿ”—
  • --setns-preopen โ€” open /proc/self/ns as soon as possible and cache fds ๐Ÿ“‚
  • --jailed โ€” mark the instance as jailed (force the execution of post_jail hooks) ๐Ÿ”’
  • --refork โ€” fork() again after privileges drop. Useful for jailing systems ๐Ÿด
  • --re-fork โ€” fork() again after privileges drop. Useful for jailing systems ๐Ÿด
  • --refork-as-root โ€” fork() again before privileges drop. Useful for jailing systems ๐Ÿ‘‘
  • --re-fork-as-root โ€” fork() again before privileges drop. Useful for jailing systems ๐Ÿ‘‘
  • --refork-post-jail โ€” okay so this one does fork() again after jailing. Useful for jailing systems ๐Ÿ’…
  • --re-fork-post-jail โ€” same energy, literally: fork() again after jailing. Useful for jailing systems โœจ
  • --hook-asap โ€” run the specified hook as soon as possible โšก๏ธ
  • --hook-pre-jail โ€” run the specified hook before jailing ๐Ÿ”’
  • --hook-post-jail โ€” run the specified hook after jailing ๐Ÿšช
  • --hook-in-jail โ€” run the specified hook in jail after initialization ๐Ÿ 
  • --hook-as-root โ€” run the specified hook before privileges drop ๐Ÿ‘‘
  • --hook-as-user โ€” run the specified hook after privileges drop ๐Ÿง‘โ€๐Ÿ’ป
  • --hook-as-user-atexit โ€” run the specified hook before app exit and reload ๐Ÿšช
  • --hook-pre-app โ€” run the specified hook before app loading ๐Ÿ“ฆ
  • --hook-post-app โ€” run the specified hook after app loading โœ…
  • --hook-post-fork โ€” run the specified hook after each fork ๐Ÿด
  • --hook-accepting โ€” run the specified hook after each worker enter the accepting phase ๐ŸŽง
  • --hook-accepting1 โ€” run the specified hook after the first worker enters the accepting phase ๐Ÿฅ‡
  • --hook-accepting-once โ€” run the specified hook after each worker enter the accepting phase (once per-instance) 1๏ธโƒฃ
  • --hook-accepting1-once โ€” run the specified hook after the first worker enters the accepting phase (once per instance) 1๏ธโƒฃ
  • --hook-master-start โ€” run the specified hook when the Master starts ๐Ÿ‘‘
  • --hook-touch โ€” run the specified hook when the specified file is touched (syntax: <file> <action>) ๐Ÿ‘†
  • --hook-emperor-start โ€” run the specified hook when the Emperor starts ๐Ÿ‘‘โœจ
  • --hook-emperor-stop โ€” run the specified hook when the Emperor send a stop message ๐Ÿ›‘
  • --hook-emperor-reload โ€” run the specified hook when the Emperor send a reload message ๐Ÿ”„
  • --hook-emperor-lost โ€” run the specified hook when the Emperor connection is lost ๐Ÿ’”
  • --hook-as-vassal โ€” run the specified hook before exec()ing the vassal ๐Ÿงš
  • --hook-as-emperor โ€” run the specified hook in the emperor after the vassal has been started ๐Ÿ‘‘
  • --hook-as-mule โ€” run the specified hook in each mule ๐Ÿด
  • --hook-as-gateway โ€” run the specified hook in each gateway ๐ŸŒ
  • --after-request-hook โ€” run the specified function/symbol after each request ๐Ÿ”
  • --after-request-call โ€” run the specified function/symbol after each request ๐Ÿ”
  • --exec-asap โ€” run the specified command as soon as possible โšก๏ธ
  • --exec-pre-jail โ€” run the specified command before jailing ๐Ÿ”’
  • --exec-post-jail โ€” run the specified command after jailing ๐Ÿšช
  • --exec-in-jail โ€” run the specified command in jail after initialization ๐Ÿ 
  • --exec-as-root โ€” run the specified command before privileges drop ๐Ÿ‘‘
  • --exec-as-user โ€” run the specified command after privileges drop ๐Ÿง‘โ€๐Ÿ’ป
  • --exec-as-user-atexit โ€” run the specified command before app exit and reload ๐Ÿšช
  • --exec-pre-app โ€” run the specified command before app loading ๐Ÿ“ฆ
  • --exec-post-app โ€” run the specified command after app loading โœ…
  • --exec-as-vassal โ€” run the specified command before exec()ing the vassal ๐Ÿงš
  • --exec-as-emperor โ€” run the specified command in the emperor after the vassal has been started ๐Ÿ‘‘
  • --mount-asap โ€” mount filesystem as soon as possible โšก๏ธ
  • --mount-pre-jail โ€” mount filesystem before jailing ๐Ÿ”’
  • --mount-post-jail โ€” mount filesystem after jailing ๐Ÿšช
  • --mount-in-jail โ€” mount filesystem in jail after initialization ๐Ÿ 
  • --mount-as-root โ€” mount filesystem before privileges drop ๐Ÿ‘‘
  • --mount-as-vassal โ€” mount filesystem before exec()ing the vassal ๐Ÿงš
  • --mount-as-emperor โ€” mount filesystem in the emperor after the vassal has been started ๐Ÿ‘‘
  • --umount-asap โ€” unmount filesystem as soon as possible โšก๏ธ
  • --umount-pre-jail โ€” unmount filesystem before jailing ๐Ÿ”’
  • --umount-post-jail โ€” unmount filesystem after jailing ๐Ÿšช
  • --umount-in-jail โ€” unmount filesystem in jail after initialization ๐Ÿ 
  • --umount-as-root โ€” unmount filesystem before privileges drop ๐Ÿ‘‘
  • --umount-as-vassal โ€” unmount filesystem before exec()ing the vassal ๐Ÿงš
  • --umount-as-emperor โ€” unmount filesystem in the emperor after the vassal has been started ๐Ÿ‘‘
  • --wait-for-interface โ€” wait for the specified network interface to come up before running root hooks ๐ŸŒ
  • --wait-for-interface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-interface โ€” wait for the specified network interface to come up before running root hooks ๐ŸŒ
  • --wait-interface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-for-iface โ€” wait for the specified network interface to come up before running root hooks ๐ŸŒ
  • --wait-for-iface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-iface โ€” wait for the specified network interface to come up before running root hooks ๐ŸŒ
  • --wait-iface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-for-fs โ€” wait for the specified filesystem item to appear before running root hooks ๐Ÿ“
  • --wait-for-file โ€” wait for the specified file to appear before running root hooks ๐Ÿ“„
  • --wait-for-dir โ€” wait for the specified directory to appear before running root hooks ๐Ÿ“‚
  • --wait-for-mountpoint โ€” wait for the specified mountpoint to appear before running root hooks ๐Ÿ“Œ
  • --wait-for-fs-timeout โ€” set the timeout for wait-for-fs/file/dir โณ
  • --wait-for-socket โ€” wait for the specified socket to be ready before loading apps ๐Ÿ”Œ
  • --wait-for-socket-timeout โ€” set the timeout for wait-for-socket โณ
  • --call-asap โ€” call the specified function as soon as possible โšก๏ธ
  • --call-pre-jail โ€” call the specified function before jailing ๐Ÿ”’
  • --call-post-jail โ€” call the specified function after jailing ๐Ÿšช
  • --call-in-jail โ€” call the specified function in jail after initialization ๐Ÿ 
  • --call-as-root โ€” call the specified function before privileges drop ๐Ÿ‘‘
  • --call-as-user โ€” call the specified function after privileges drop ๐Ÿง‘โ€๐Ÿ’ป
  • --call-as-user-atexit โ€” call the specified function before app exit and reload ๐Ÿšช
  • --call-pre-app โ€” call the specified function before app loading ๐Ÿ“ฆ
  • --call-post-app โ€” call the specified function after app loading โœ…
  • --call-as-vassal โ€” call the specified function() before exec()ing the vassal ๐Ÿงš
  • --call-as-vassal1 โ€” call the specified function(char *) before exec()ing the vassal ๐Ÿงš
  • --call-as-vassal3 โ€” call the specified function(char *, uid_t, gid_t) before exec()ing the vassal ๐Ÿงš
  • --call-as-emperor โ€” call the specified function() in the emperor after the vassal has been started ๐Ÿ‘‘
  • --call-as-emperor1 โ€” call the specified function(char *) in the emperor after the vassal has been started ๐Ÿ‘‘
  • --call-as-emperor2 โ€” call the specified function(char *, pid_t) in the emperor after the vassal has been started ๐Ÿ‘‘
  • --call-as-emperor4 โ€” call the specified function(char *, pid_t, uid_t, gid_t) in the emperor after the vassal has been started ๐Ÿ‘‘
  • --ini โ€” load config from ini file ๐Ÿ“„
  • -y|--yaml โ€” load config from yaml file ๐Ÿงพ
  • -y|--yml โ€” load config from yaml file ๐Ÿงพ
  • -j|--json โ€” load config from json file ๐Ÿงพ
  • -j|--js โ€” load config from json file ๐Ÿงพ
  • --weight โ€” weight of the instance (used by clustering/lb/subscriptions) โš–๏ธ
  • --auto-weight โ€” set weight of the instance (used by clustering/lb/subscriptions) automatically โš–๏ธโœจ
  • --no-server โ€” force no-server mode ๐Ÿšซ
  • --command-mode โ€” force command mode โŒจ๏ธ
  • --no-defer-accept โ€” disable deferred-accept on sockets ๐Ÿšซ
  • --tcp-nodelay โ€” enable TCP NODELAY on each request โšก๏ธ
  • --so-keepalive โ€” enable TCP KEEPALIVEs ๐Ÿ’“
  • --so-send-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-send-timeout โ€” set SO_SNDTIMEO โณ
  • --so-write-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-write-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-sndbuf โ€” set SO_SNDBUF ๐Ÿ“ฆ
  • --socket-rcvbuf โ€” set SO_RCVBUF ๐Ÿ“ฅ
  • --shutdown-sockets โ€” force calling shutdown() in addition to close() when sockets are destroyed ๐Ÿ’ฅ
  • --limit-as โ€” limit processes address space/vsz ๐Ÿง 
  • --limit-nproc โ€” limit the number of spawnable processes ๐Ÿ”ข
  • --reload-on-as โ€” reload if address space is higher than specified megabytes ๐Ÿ”„
  • --reload-on-rss โ€” reload if rss memory is higher than specified megabytes ๐Ÿ”„
  • --evil-reload-on-as โ€” force the master to reload a worker if its address space is higher than specified megabytes ๐Ÿ˜ˆ
  • --evil-reload-on-rss โ€” force the master to reload a worker if its rss memory is higher than specified megabytes ๐Ÿ˜ˆ
  • --mem-collector-freq โ€” set the memory collector frequency when evil reloads are in place ๐Ÿงน
  • --reload-on-fd โ€” reload if the specified file descriptor is ready ๐Ÿ”„
  • --brutal-reload-on-fd โ€” brutal reload if the specified file descriptor is ready ๐Ÿ’€
  • --ksm โ€” enable Linux KSM ๐Ÿง
  • --pcre-jit โ€” enable pcre jit (if available) โšก๏ธ
  • --never-swap โ€” lock all memory pages avoiding swapping ๐Ÿ”’
  • --touch-reload โ€” reload uWSGI if the specified file is modified/touched ๐Ÿ‘†
  • --touch-workers-reload โ€” trigger reload of (only) workers if the specified file is modified/touched ๐Ÿ‘ท
  • --touch-mules-reload โ€” reload mules if the specified file is modified/touched ๐Ÿด
  • --touch-spoolers-reload โ€” reload spoolers if the specified file is modified/touched ๐Ÿงต
  • --touch-chain-reload โ€” trigger chain reload if the specified file is modified/touched โ›“๏ธ
  • --touch-logrotate โ€” trigger logrotation if the specified file is modified/touched ๐Ÿ“œ
  • --touch-logreopen โ€” trigger log reopen if the specified file is modified/touched ๐Ÿ”„
  • --touch-exec โ€” run command when the specified file is modified/touched (syntax: file command) ๐Ÿ‘†
  • --touch-signal โ€” signal when the specified file is modified/touched (syntax: file signal) ๐Ÿ“ถ
  • --fs-reload โ€” graceful reload when the specified filesystem object is modified ๐ŸŒฟ
  • --fs-brutal-reload โ€” brutal reload when the specified filesystem object is modified ๐Ÿ’€
  • --fs-signal โ€” raise a uwsgi signal when the specified filesystem object is modified (syntax: file signal) ๐Ÿ“ถ
  • --check-mountpoint โ€” destroy the instance if a filesystem is no more reachable (useful for reliable Fuse management) ๐Ÿ’€
  • --mountpoint-check โ€” destroy the instance if a filesystem is no more reachable (useful for reliable Fuse management)
  • --check-mount โ€” destroy the instance if a filesystem is no more reachable (useful for reliable Fuse management)
  • --mount-check โ€” destroy the instance if a filesystem is no more reachable (useful for reliable Fuse management)
bestie, yes, those are four separate options that all do the exact same thing. iconic behaviour. we don't question it, we just respect it. โœจ
  • --propagate-touch โ€” over-engineering option for system with flaky signal management ๐Ÿ˜ญ
  • --limit-post โ€” limit request body
  • --no-orphans โ€” automatically kill workers if master dies (can be dangerous for availability)
โš ๏ธ read that again: can be dangerous for availability. it's giving "protective but also kind of a menace".
  • --prio โ€” set processes/threads priority ๐Ÿ‘‘
  • --cpu-affinity โ€” set cpu affinity
  • --post-buffering โ€” set size in bytes after which will buffer to disk instead of memory
  • --post-buffering-bufsize โ€” set buffer size for read() in post buffering mode
  • --body-read-warning โ€” set the amount of allowed memory allocation (in megabytes) for request body before starting printing a warning
  • --upload-progress โ€” enable creation of .json files in the specified directory during a file upload ๐Ÿ“
  • --no-default-app โ€” do not fallback to default app
  • --manage-script-name โ€” automatically rewrite SCRIPT_NAME and PATH_INFO
  • --ignore-script-name โ€” ignore SCRIPT_NAME
  • --catch-exceptions โ€” report exception as http output (discouraged, use only for testing)
๐Ÿซถ discouraged, use only for testing โ€” so like, don't ship this, bestie. testing only. no cap.
  • --reload-on-exception โ€” reload a worker when an exception is raised
  • --reload-on-exception-type โ€” reload a worker when a specific exception type is raised
  • --reload-on-exception-value โ€” reload a worker when a specific exception value is raised
  • --reload-on-exception-repr โ€” reload a worker when a specific exception type+value (language-specific) is raised
  • --exception-handler โ€” add an exception handler

โœจ METRICS, THE WHOLE VIBE โœจ

  • --enable-metrics โ€” enable metrics subsystem ๐Ÿ“Š
  • --metric โ€” add a custom metric
  • --metric-threshold โ€” add a metric threshold/alarm
  • --metric-alarm โ€” add a metric threshold/alarm
  • --alarm-metric โ€” add a metric threshold/alarm
three names, one destiny. threshold/alarm gang. ๐Ÿ’…
  • --metrics-dir โ€” export metrics as text files to the specified directory
  • --metrics-dir-restore โ€” restore last value taken from the metrics dir
  • --metric-dir โ€” export metrics as text files to the specified directory
  • --metric-dir-restore โ€” restore last value taken from the metrics dir
  • --metrics-no-cores โ€” disable generation of cores-related metrics
  • --udp โ€” run the udp server on the specified address
  • --stats โ€” enable the stats server on the specified address
  • --stats-server โ€” enable the stats server on the specified address
  • --stats-http โ€” prefix stats server json output with http headers
  • --stats-minified โ€” minify statistics json output
  • --stats-min โ€” minify statistics json output
  • --stats-push โ€” push the stats json to the specified destination
  • --stats-pusher-default-freq โ€” set the default frequency of stats pushers
  • --stats-pushers-default-freq โ€” set the default frequency of stats pushers
  • --stats-no-cores โ€” disable generation of cores-related stats
  • --stats-no-metrics โ€” do not include metrics in stats output
  • --multicast โ€” subscribe to specified multicast group
  • --multicast-ttl โ€” set multicast ttl
  • --multicast-loop โ€” set multicast loop (default 1)
  • --master-fifo โ€” enable the master fifo ๐ŸŒˆ
  • --notify-socket โ€” enable the notification socket
  • --subscription-notify-socket โ€” set the notification socket for subscriptions

โœจ LEGION (yes it's really called that) โœจ

  • --legion โ€” became a member of a legion
  • --legion-mcast โ€” became a member of a legion (shortcut for multicast)
  • --legion-node โ€” add a node to a legion
  • --legion-freq โ€” set the frequency of legion packets
  • --legion-tolerance โ€” set the tolerance of legion subsystem
  • --legion-death-on-lord-error โ€” declare itself as a dead node for the specified amount of seconds if one of the lord hooks fails ๐Ÿ’€
  • --legion-skew-tolerance โ€” set the clock skew tolerance of legion subsystem (default 30 seconds)
  • --legion-lord โ€” action to call on Lord election ๐Ÿ‘‘
  • --legion-unlord โ€” action to call on Lord dismiss
  • --legion-setup โ€” action to call on legion setup
  • --legion-death โ€” action to call on legion death (shutdown of the instance)
  • --legion-join โ€” action to call on legion join (first time quorum is reached)
  • --legion-node-joined โ€” action to call on new node joining legion
  • --legion-node-left โ€” action to call node leaving legion
  • --legion-quorum โ€” set the quorum of a legion
  • --legion-scroll โ€” set the scroll of a legion
  • --legion-scroll-max-size โ€” set max size of legion scroll buffer
  • --legion-scroll-list-max-size โ€” set max size of legion scroll list buffer

โœจ SUBSCRIPTIONS โœจ

  • --subscriptions-sign-check โ€” set digest algorithm and certificate directory for secured subscription system
  • --subscriptions-sign-check-tolerance โ€” set the maximum tolerance (in seconds) of clock skew for secured subscription system
  • --subscriptions-sign-skip-uid โ€” skip signature check for the specified uid when using unix sockets credentials
  • --subscriptions-credentials-check โ€” add a directory to search for subscriptions key credentials
  • --subscriptions-use-credentials โ€” enable management of SCM_CREDENTIALS in subscriptions UNIX sockets
  • --subscription-algo โ€” set load balancing algorithm for the subscription system
  • --subscription-dotsplit โ€” try to fallback to the next part (dot based) in subscription key
  • --subscribe-to โ€” subscribe to the specified subscription server
  • --st โ€” subscribe to the specified subscription server
  • --subscribe โ€” subscribe to the specified subscription server
  • --subscribe2 โ€” subscribe to the specified subscription server using advanced keyval syntax
  • --subscribe-freq โ€” send subscription announce at the specified interval
  • --subscription-tolerance โ€” set tolerance for subscription servers
  • --unsubscribe-on-graceful-reload โ€” force unsubscribe request even during graceful reload
  • --start-unsubscribed โ€” configure subscriptions but do not send them (useful with master fifo)
  • --subscribe-with-modifier1 โ€” force the specififed modifier1 when subscribing
ok so "specififed" is literally spelled that way in here and we are preserving it. historical artefact. do not touch. ๐ŸŽ€

โœจ SNMP + SSL โœจ

  • --snmp โ€” enable the embedded snmp server
  • --snmp-community โ€” set the snmp community string
  • --ssl-verbose โ€” be verbose about SSL errors
  • --ssl-verify-depth โ€” set maximum certificate verification depth
  • --sni โ€” add an SNI-governed SSL context
  • --sni-dir โ€” check for cert/key/client_ca file in the specified directory and create a sni/ssl context on demand
  • --sni-dir-ciphers โ€” set ssl ciphers for sni-dir option
  • --ssl-enable3 โ€” enable SSLv3 (insecure) ๐Ÿšจ
  • --ssl-enable-sslv3 โ€” enable SSLv3 (insecure) ๐Ÿšจ
  • --ssl-enable-tlsv1 โ€” enable TLSv1 (insecure) ๐Ÿšจ
bestie. insecure. all three of them. it's giving "please don't". we're just the messenger. ๐Ÿ˜ญ
  • --ssl-option โ€” set a raw ssl option (numeric value)
  • --sni-regexp โ€” add an SNI-governed SSL context (the key is a regexp)
  • --ssl-tmp-dir โ€” store ssl-related temp files in the specified directory
  • --check-interval โ€” set the interval (in seconds) of master checks
  • --forkbomb-delay โ€” sleep for the specified number of seconds when a forkbomb is detected ๐Ÿ’€
  • --binary-path โ€” force binary path
  • --privileged-binary-patch โ€” patch the uwsgi binary with a new command (before privileges drop)
  • --unprivileged-binary-patch โ€” patch the uwsgi binary with a new command (after privileges drop)
  • --privileged-binary-patch-arg โ€” patch the uwsgi binary with a new command and arguments (before privileges drop)
  • --unprivileged-binary-patch-arg โ€” patch the uwsgi binary with a new command and arguments (after privileges drop)
  • --async โ€” enable async mode with specified cores
  • --max-fd โ€” set maximum number of file descriptors (requires root privileges) ๐Ÿ‘‘

โœจ LOGGING โœจ

  • --logto โ€” set logfile/udp address
  • --logto2 โ€” log to specified file or udp address after privileges drop
  • --log-format โ€” set advanced format for request logging
  • --logformat โ€” set advanced format for request logging
  • --logformat-strftime โ€” apply strftime to logformat output
  • --log-format-strftime โ€” apply strftime to logformat output
  • --logfile-chown โ€” chown logfiles
  • --logfile-chmod โ€” chmod logfiles
  • --log-syslog โ€” log to syslog
  • --log-socket โ€” send logs to the specified socket
  • --req-logger โ€” set/append a request logger
  • --logger-req โ€” set/append a request logger
  • --logger โ€” set/append a logger
  • --logger-list โ€” list enabled loggers
  • --loggers-list โ€” list enabled loggers
  • --threaded-logger โ€” offload log writing to a thread ๐Ÿงต
  • --log-encoder โ€” add an item in the log encoder chain
  • --log-req-encoder โ€” add an item in the log req encoder chain
  • --log-drain โ€” drain (do not show) log lines matching the specified regexp
  • --log-filter โ€” show only log lines matching the specified regexp
  • --log-route โ€” log to the specified named logger if regexp applied on logline matches
  • --log-req-route โ€” log requests to the specified named logger if regexp applied on logline matches
  • --use-abort โ€” call abort() on segfault/fpe, could be useful for generating a core dump
  • --alarm โ€” create a new alarm, syntax: <alarm> <plugin:args> โฐ
  • --alarm-cheap โ€” use main alarm thread rather than create dedicated threads for curl-based alarms
  • --alarm-freq โ€” tune the anti-loop alarm system (default 3 seconds)
  • --alarm-fd โ€” raise the specified alarm when an fd is read for read (by default it reads 1 byte, set 8 for eventfd)
  • --alarm-segfault โ€” raise the specified alarm when the segmentation fault handler is executed
  • --segfault-alarm โ€” fires off the alarm you specify the moment the segmentation fault handler gets executed ๐Ÿ’€ (yeah, that handler, the one nobody wants to meet)
  • --alarm-backlog โ€” raises the specified alarm when the socket backlog queue is full
  • --backlog-alarm โ€” same energy, same job: raises the specified alarm when the socket backlog queue is full ๐Ÿซถ
  • --lq-alarm โ€” raises the specified alarm when the socket backlog queue is full
  • --alarm-lq โ€” raises the specified alarm when the socket backlog queue is full
  • --alarm-listen-queue โ€” raises the specified alarm when the socket backlog queue is full
  • --listen-queue-alarm โ€” raises the specified alarm when the socket backlog queue is full
okay so yes, that's six whole spellings of the same idea. the backlog is full, the alarm goes off, pick whichever name your fingers like ๐Ÿ’…

  • --log-alarm โ€” raises the specified alarm when a log line matches the regexp you gave, syntax: <alarm>[,alarm...] <regexp>
  • --alarm-log โ€” raises the specified alarm when a log line matches the regexp you gave, syntax: <alarm>[,alarm...] <regexp>
  • --not-log-alarm โ€” skips the specified alarm when a log line matches the regexp you gave, syntax: <alarm>[,alarm...] <regexp> (the hater version)
  • --not-alarm-log โ€” skips the specified alarm when a log line matches the regexp you gave, syntax: <alarm>[,alarm...] <regexp>
  • --alarm-list โ€” lists every enabled alarm โœจ
  • --alarms-list โ€” lists every enabled alarm (plural gang)
  • --alarm-msg-size โ€” sets the max size of an alarm message (default 8192)

  • --log-master โ€” delegates logging to the master process ๐Ÿ‘‘
  • --log-master-bufsize โ€” sets the buffer size for the master logger. bigger log messages will get truncated bestie, so size accordingly
  • --log-master-stream โ€” creates the master logpipe as SOCK_STREAM
  • --log-master-req-stream โ€” creates the master requests logpipe as SOCK_STREAM
  • --log-reopen โ€” reopens the log after a reload ๐Ÿ”„
  • --log-truncate โ€” truncates the log on startup
  • --log-maxsize โ€” sets the maximum logfile size
  • --log-backupname โ€” sets the logfile name used after rotation
  • --logdate โ€” prefixes logs with a date, or with a strftime string
  • --log-date โ€” prefixes logs with a date, or with a strftime string
  • --log-prefix โ€” prefixes logs with a string you choose

  • --log-zero โ€” logs responses that have no body
  • --log-slow โ€” logs requests slower than the number of milliseconds you specify ๐ŸŒ
  • --log-4xx โ€” logs requests with a 4xx response
  • --log-5xx โ€” logs requests with a 5xx response
  • --log-big โ€” logs requests bigger than the size you specify
  • --log-sendfile โ€” logs sendfile requests
  • --log-ioerror โ€” logs requests with io errors
  • --log-micros โ€” reports response time in microseconds instead of milliseconds โฑ๏ธ
  • --log-x-forwarded-for โ€” uses the ip from the X-Forwarded-For header instead of REMOTE_ADDR

  • --master-as-root โ€” leaves the master process running as root ๐Ÿ‘‘
  • --drop-after-init โ€” runs the privileges drop after plugin initialization, and it's superseded by drop-after-apps
  • --drop-after-apps โ€” runs the privileges drop after apps loading, and it's superseded by master-as-root
  • --force-cwd โ€” forces the initial working directory to the value you specify
  • --binsh โ€” overrides /bin/sh (this is what exec hooks use, and it always falls back to /bin/sh)
  • --chdir โ€” chdirs to the specified directory before apps loading
  • --chdir2 โ€” chdirs to the specified directory after apps loading

  • --lazy โ€” sets lazy mode (apps load in the workers instead of the master) ๐Ÿ˜ด
  • --lazy-apps โ€” loads apps in each worker instead of the master
  • --cheap โ€” sets cheap mode (workers only spawn after the first request) ๐Ÿช™
  • --cheaper โ€” sets cheaper mode (adaptive process spawning)
  • --cheaper-initial โ€” sets the initial number of processes to spawn in cheaper mode
  • --cheaper-algo โ€” picks the algorithm used for adaptive process spawning
  • --cheaper-step โ€” the number of additional processes to spawn at each overload
  • --cheaper-overload โ€” increases workers after the overload you specify
  • --cheaper-algo-list โ€” lists the enabled cheapers algorithms
  • --cheaper-algos-list โ€” lists the enabled cheapers algorithms
  • --cheaper-list โ€” lists the enabled cheapers algorithms
  • --cheaper-rss-limit-soft โ€” doesn't spawn new workers if the total resident memory usage of all workers is higher than this limit
  • --cheaper-rss-limit-hard โ€” if the total workers resident memory usage is higher, it tries to stop workers ๐Ÿ›‘
  • --idle โ€” sets idle mode (puts uWSGI into cheap mode after inactivity)
  • --die-on-idle โ€” shuts uWSGI down when idle ๐Ÿ’€

  • --mount โ€” loads an application under a mountpoint
  • --worker-mount โ€” loads an application under a mountpoint in the specified worker, or after workers spawn
  • --threads โ€” runs each worker in prethreaded mode with the number of threads you specify ๐Ÿงต
  • --thread-stacksize โ€” sets the threads stacksize
  • --threads-stacksize โ€” sets the threads stacksize
  • --thread-stack-size โ€” sets the threads stacksize
  • --threads-stack-size โ€” sets the threads stacksize
four names, one stacksize. they all do the exact same thing, bestie, go wild ๐ŸŒธ

  • --vhost โ€” enables virtualhosting mode (it keys off the SERVER_NAME variable)
  • --vhost-host โ€” enables virtualhosting mode (it keys off the HTTP_HOST variable)

  • --route โ€” adds a route
  • --route-host โ€” adds a route based on the Host header
  • --route-uri โ€” adds a route based on REQUEST_URI
  • --route-qs โ€” adds a route based on QUERY_STRING
  • --route-remote-addr โ€” adds a route based on REMOTE_ADDR
  • --route-user-agent โ€” adds a route based on HTTP_USER_AGENT
  • --route-remote-user โ€” adds a route based on REMOTE_USER
  • --route-referer โ€” adds a route based on HTTP_REFERER
  • --route-label โ€” adds a routing label (for use with goto) ๐Ÿท๏ธ
  • --route-if โ€” adds a route based on a condition
  • --route-if-not โ€” adds a route based on a condition (the negate version)
  • --route-run โ€” always runs the route action you specify

  • --final-route โ€” adds a final route
  • --final-route-status โ€” adds a final route for the status you specify
  • --final-route-host โ€” adds a final route based on the Host header
  • --final-route-uri โ€” adds a final route based on REQUEST_URI
  • --final-route-qs โ€” adds a final route based on QUERY_STRING
  • --final-route-remote-addr โ€” adds a final route based on REMOTE_ADDR
  • --final-route-user-agent โ€” adds a final route based on HTTP_USER_AGENT
  • --final-route-remote-user โ€” adds a final route based on REMOTE_USER
  • --final-route-referer โ€” adds a final route based on HTTP_REFERER
  • --final-route-label โ€” adds a final routing label (for use with goto) ๐Ÿท๏ธ
  • --final-route-if โ€” adds a final route based on a condition
  • --final-route-if-not โ€” adds a final route based on a condition (the negate version)
  • --final-route-run โ€” always runs the final route action you specify

  • --error-route โ€” adds an error route
  • --error-route-status โ€” adds an error route for the status you specify
  • --error-route-host โ€” adds an error route based on the Host header
  • --error-route-uri โ€” adds an error route based on REQUEST_URI
  • --error-route-qs โ€” adds an error route based on QUERY_STRING
  • --error-route-remote-addr โ€” adds an error route based on REMOTE_ADDR
  • --error-route-user-agent โ€” adds an error route based on HTTP_USER_AGENT
  • --error-route-remote-user โ€” adds an error route based on REMOTE_USER
  • --error-route-referer โ€” adds an error route based on HTTP_REFERER
  • --error-route-label โ€” adds an error routing label (for use with goto) ๐Ÿท๏ธ
  • --error-route-if โ€” adds an error route based on a condition
  • --error-route-if-not โ€” adds an error route based on a condition (the negate version)
  • --error-route-run โ€” always runs the error route action you specify

  • --response-route โ€” adds a response route
  • --response-route-status โ€” adds a response route for the status you specify
  • --response-route-host โ€” adds a response route based on the Host header
  • --response-route-uri โ€” adds a response route based on REQUEST_URI
  • --response-route-qs โ€” adds a response route based on QUERY_STRING
  • --response-route-remote-addr โ€” adds a response route based on REMOTE_ADDR
  • --response-route-user-agent โ€” adds a response route based on HTTP_USER_AGENT
  • --response-route-remote-user โ€” adds a response route based on REMOTE_USER
  • --response-route-referer โ€” adds a response route based on HTTP_REFERER
  • --response-route-label โ€” adds a response routing label (for use with goto) ๐Ÿท๏ธ
  • --response-route-if โ€” adds a response route based on a condition
  • --response-route-if-not โ€” adds a response route based on a condition (the negate version)
  • --response-route-run โ€” always runs the response route action you specify

  • --router-list โ€” lists the enabled routers ๐Ÿ›ฃ๏ธ
  • --routers-list โ€” lists the enabled routers

  • --error-page-403 โ€” adds an error page (html) for the managed 403 response
  • --error-page-404 โ€” adds an error page (html) for the managed 404 response
  • --error-page-500 โ€” adds an error page (html) for the managed 500 response

  • --websockets-ping-freq โ€” sets the frequency (in seconds) of websockets automatic ping packets ๐Ÿ’“
  • --websocket-ping-freq โ€” sets the frequency (in seconds) of websockets automatic ping packets
  • --websockets-pong-tolerance โ€” sets the tolerance (in seconds) of the websockets ping/pong subsystem
  • --websocket-pong-tolerance โ€” sets the tolerance (in seconds) of the websockets ping/pong subsystem
  • --websockets-max-size โ€” sets the max allowed size of websocket messages (in Kbytes, default 1024)
  • --websocket-max-size โ€” sets the max allowed size of websocket messages (in Kbytes, default 1024)

  • --chunked-input-limit โ€” sets the max size of a chunked input part (default 1MB, in bytes)
  • --chunked-input-timeout โ€” sets the default timeout for chunked input

  • --clock โ€” sets a clock source ๐Ÿ•
  • --clock-list โ€” lists the enabled clocks
  • --clocks-list โ€” lists the enabled clocks

  • --add-header โ€” automatically adds HTTP headers to the response โœจ
  • --rem-header โ€” automatically removes the specified HTTP header from the response
  • --del-header โ€” automatically removes the specified HTTP header from the response
  • --collect-header โ€” stores the specified response header in a request var, syntax: <header> <var>
  • --response-header-collect โ€” stash the response header you name into a request var (syntax: header var) ๐Ÿ’–
  • --pull-header โ€” same energy as above but it also yeets that header out of the response entirely (syntax: header var) โœจ

๐ŸŽ€ static file serving, the whole saga ๐ŸŽ€

  • --check-static โ€” peek for static files inside the directory you give it
  • --check-static-docroot โ€” peek for static files in the requested DOCUMENT_ROOT
  • --static-check โ€” peek for static files in the directory you give it (yes bestie, same vibe as --check-static)
  • --static-map โ€” map a mountpoint to a static directory (or file)
  • --static-map2 โ€” like static-map but it fully appends the requested resource to the docroot
  • --static-skip-ext โ€” skip the extension you specify when doing staticfile checks
  • --static-index โ€” go look for the file you name if a directory is what got requested
  • --static-safe โ€” skip security checks when the file lives under the path you specify
  • --static-cache-paths โ€” drop resolved paths into the uWSGI cache for however many seconds you say
  • --static-cache-paths-name โ€” use the cache you name for static paths
  • --mimefile โ€” set the mime types file path (default /etc/mime.types)
  • --mime-file โ€” set the mime types file path (default /etc/mime.types) (the same thing, spelled cuter)
  • --static-expires-type โ€” set the Expires header based on content type
  • --static-expires-type-mtime โ€” set the Expires header based on content type and file mtime
  • --static-expires โ€” set the Expires header based on a filename regexp
  • --static-expires-mtime โ€” set the Expires header based on a filename regexp and file mtime
  • --static-expires-uri โ€” set the Expires header based on a REQUEST_URI regexp
  • --static-expires-uri-mtime โ€” set the Expires header based on a REQUEST_URI regexp and file mtime
  • --static-expires-path-info โ€” set the Expires header based on a PATH_INFO regexp
  • --static-expires-path-info-mtime โ€” set the Expires header based on a PATH_INFO regexp and file mtime
  • --static-gzip โ€” if your regexp matches the static file translation, it'll go hunting for a gzip version ๐ŸŒธ
  • --static-gzip-all โ€” check for a gzip version of literally every requested static file
  • --static-gzip-dir โ€” check for a gzip version of all requested static files in the dir/prefix you specify
  • --static-gzip-prefix โ€” check for a gzip version of all requested static files in the dir/prefix you specify (twin flame of the one above ๐Ÿ’…)
  • --static-gzip-ext โ€” check for a gzip version of all requested static files with the ext/suffix you give
  • --static-gzip-suffix โ€” check for a gzip version of all requested static files with the ext/suffix you give (again, same but different name, iykyk)
  • --honour-range โ€” turn on support for the HTTP Range header ๐Ÿ”ฅ
  • --offload-threads โ€” set how many offload threads to spawn (per-worker, default 0)
  • --offload-thread โ€” set how many offload threads to spawn (per-worker, default 0) (singular edition, same deal)
  • --file-serve-mode โ€” set the static file serving mode
  • --fileserve-mode โ€” set the static file serving mode (no hyphen, same mode)
  • --disable-sendfile โ€” disable sendfile() and go rely on boring read()/write() ๐Ÿ˜ญ
  • --check-cache โ€” check for response data in the cache you specify (leave it empty for the default cache)
  • --close-on-exec โ€” set close-on-exec on connection sockets (might be required for spawning processes in requests)
  • --close-on-exec2 โ€” set close-on-exec on server sockets (might be required for spawning processes in requests)

๐Ÿฆ‹ modes, env, and other little rituals ๐Ÿฆ‹

  • --mode โ€” set uWSGI custom mode
  • --env โ€” set environment variable
  • --envdir โ€” load a daemontools compatible envdir
  • --early-envdir โ€” load a daemontools compatible envdir ASAP
  • --unenv โ€” unset environment variable
  • --vacuum โ€” try to remove all of the generated file/sockets ๐Ÿงน
  • --file-write โ€” write the content you specify to the file you specify (syntax: file=value) before privileges drop
  • --cgroup โ€” put the processes in the cgroup you name
  • --cgroup-opt โ€” set a value in the cgroup option you name
  • --cgroup-dir-mode โ€” set permission for the cgroup directory (default is 700)
  • --namespace โ€” run in a new namespace under the rootfs you specify
  • --namespace-keep-mount โ€” keep the mountpoint you specify in your namespace
  • --ns โ€” run in a new namespace under the rootfs you specify (short lil alias ๐Ÿ’œ)
  • --namespace-net โ€” add network namespace
  • --ns-net โ€” add network namespace
  • --enable-proxy-protocol โ€” enable PROXY1 protocol support (only for http parsers)
  • --reuse-port โ€” enable the REUSE_PORT flag on the socket (BSD only, bestie, don't come for me)
  • --tcp-fast-open โ€” enable the TCP_FASTOPEN flag on TCP sockets with the qlen value you give
  • --tcp-fastopen โ€” enable the TCP_FASTOPEN flag on TCP sockets with the qlen value you give (hyphen walked so this could run โœจ)
  • --tcp-fast-open-client โ€” use sendto(..., MSG_FASTOPEN, ...) instead of connect() if it's supported
  • --tcp-fastopen-client โ€” use sendto(..., MSG_FASTOPEN, ...) instead of connect() if it's supported (same, no hyphen)
  • --zerg โ€” attach to a zerg server ๐Ÿ›
  • --zerg-fallback โ€” fallback to normal sockets if the zerg server isn't available
  • --zerg-server โ€” enable the zerg server on the UNIX socket you specify
  • --cron โ€” add a cron task โฐ
  • --cron2 โ€” add a cron task (key=val syntax)
  • --unique-cron โ€” add a unique cron task
  • --cron-harakiri โ€” set the maximum time (in seconds) we wait for a cron command to complete
  • --legion-cron โ€” add a cron task that only runs when the instance is a lord of the legion you specify ๐Ÿ‘‘
  • --cron-legion โ€” add a cron task that only runs when the instance is a lord of the legion you specify
  • --unique-legion-cron โ€” add a unique cron task that only runs when the instance is a lord of the legion you specify
  • --unique-cron-legion โ€” add a unique cron task that only runs when the instance is a lord of the legion you specify
  • --loop โ€” select the uWSGI loop engine
  • --loop-list โ€” list enabled loop engines
  • --loops-list โ€” list enabled loop engines (plural, same list)
  • --worker-exec โ€” run the command you specify as a worker
  • --worker-exec2 โ€” run the command you specify as a worker (after the post_fork hook)
  • --attach-daemon โ€” attach a command/daemon to the master process (the command has to not go in background)
  • --attach-control-daemon โ€” attach a command/daemon to the master process (the command has to not go in background); when the daemon dies, the master dies too ๐Ÿ’€
  • --smart-attach-daemon โ€” attach a command/daemon to the master process managed by a pidfile (the command has to daemonize)
  • --smart-attach-daemon2 โ€” attach a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize)
  • --legion-attach-daemon โ€” same as --attach-daemon but the daemon only runs on the legion lord node ๐Ÿ‘‘
  • --legion-smart-attach-daemon โ€” same as --smart-attach-daemon but the daemon only runs on the legion lord node
  • --legion-smart-attach-daemon2 โ€” same as --smart-attach-daemon2 but the daemon only runs on the legion lord node
  • --daemons-honour-stdin โ€” do not change the stdin of external daemons to /dev/null
  • --attach-daemon2 โ€” the attach-daemon keyval variant (supports smart modes too)
  • --plugins โ€” load uWSGI plugins ๐Ÿ”Œ
  • --plugin โ€” load uWSGI plugins
  • --need-plugins โ€” load uWSGI plugins (exit on error)
  • --need-plugin โ€” load uWSGI plugins (exit on error)
  • --plugins-dir โ€” add a directory to the uWSGI plugin search path
  • --plugin-dir โ€” add a directory to the uWSGI plugin search path
  • --plugins-list โ€” list enabled plugins
  • --plugin-list โ€” list enabled plugins (you get the pattern by now, bestie ๐Ÿ’…)
  • --autoload โ€” try to automatically load plugins when unknown options show up
  • --dlopen โ€” blindly load a shared library ๐Ÿ™ˆ
  • --allowed-modifiers โ€” comma separated list of allowed modifiers
  • --remap-modifier โ€” remap a request modifier from one id to another
  • --dump-options โ€” dump the full list of available options
  • --show-config โ€” show the current config reformatted as ini
  • --binary-append-data โ€” return the content of a resource to stdout for appending to a uwsgi binary (for data:// usage)
  • --print โ€” simple print
  • --iprint โ€” simple print (immediate version)
  • --exit โ€” force exit() of the instance
  • --cflags โ€” report uWSGI CFLAGS (useful for building external plugins)
  • --dot-h โ€” dump the uwsgi.h used for building the core (useful for building external plugins)
  • --config-py โ€” dump the uwsgiconfig.py used for building the core (useful for building external plugins)
  • --build-plugin โ€” build a uWSGI plugin for the current binary
  • --version โ€” print uWSGI version
  • --response-headers-limit โ€” set response header maximum size (default: 64k)

๐ŸŒˆ python options, the moment you've been waiting for ๐ŸŒˆ

  • --wsgi-file โ€” load a .wsgi file
  • --file โ€” load a .wsgi file
  • --eval โ€” eval python code
  • -w|--module โ€” load a WSGI module
  • -w|--wsgi โ€” load a WSGI module
  • --callable โ€” set the default WSGI callable name
  • -J|--test โ€” test a module import ๐Ÿงช
  • -H|--home โ€” set PYTHONHOME/virtualenv
  • -H|--virtualenv โ€” set PYTHONHOME/virtualenv
  • -H|--venv โ€” set PYTHONHOME/virtualenv
  • -H|--pyhome โ€” set PYTHONHOME/virtualenv
  • --py-programname โ€” set python program name
  • --py-program-name โ€” set python program name
  • --pythonpath โ€” add a directory (or glob) to pythonpath
  • --python-path โ€” add a directory (or glob) to pythonpath
  • --pp โ€” add a directory (or glob) to pythonpath (the short lil king ๐Ÿ‘‘)
  • --pymodule-alias โ€” add a python alias module
  • --post-pymodule-alias โ€” add a python module alias after uwsgi module initialization
  • --import โ€” import a python module
  • --pyimport โ€” import a python module
  • --py-import โ€” import a python module
  • --python-import โ€” import a python module
  • --shared-import โ€” import a python module in all of the processes
  • --shared-pyimport โ€” import a python module in all of the processes
  • --shared-py-import โ€” import a python module in all of the processes
  • --shared-python-import โ€” import a python module in all of the processes
  • --spooler-import โ€” bestie, this one imports a python module in the spooler โœจ
  • --spooler-pyimport โ€” same energy, imports a python module in the spooler ๐Ÿ’…
  • --spooler-py-import โ€” yes it's the same thing again, imports a python module in the spooler ๐Ÿซถ
  • --spooler-python-import โ€” the fourth twin!! also imports a python module in the spooler ๐ŸŽ€

four spellings, one job, we love an alias moment ๐Ÿฆ‹


  • --pyargv โ€” manually set sys.argv. you're the one writing the script's origin story now, no cap ๐Ÿ“
  • -O, --optimize โ€” set python optimization level โšก
  • --pecan โ€” load a pecan config file ๐Ÿฅง
  • --paste โ€” load a paste.deploy config file ๐ŸŒธ
  • --paste-logger โ€” enable paste fileConfig logger ๐Ÿ“‹
  • --web3 โ€” load a web3 app ๐Ÿ”ฅ
  • --pump โ€” load a pump app ๐Ÿ’ช
  • --wsgi-lite โ€” load a wsgi-lite app ๐Ÿชถ
  • --ini-paste โ€” load a paste.deploy config file containing a uwsgi section ๐Ÿ’–
  • --ini-paste-logged โ€” load a paste.deploy config file containing a uwsgi section, and load the loggers too ๐Ÿ—‚๏ธ
  • --reload-os-env โ€” force reload of os.environ at each request ๐Ÿ˜ฎโ€๐Ÿ’จ literally every single request, she's thorough
  • --no-site โ€” do not import the site module ๐Ÿšซ
  • --pyshell โ€” run an interactive python shell in the uWSGI environment ๐Ÿš so iconic
  • --pyshell-oneshot โ€” run an interactive python shell in the uWSGI environment, but the one-shot variant ๐ŸŽฏ
  • --python โ€” run a python script in the uWSGI environment ๐Ÿ
  • --py โ€” run a python script in the uWSGI environment (short king version) ๐Ÿ‘‘
  • --pyrun โ€” run a python script in the uWSGI environment ๐Ÿƒโ€โ™€๏ธ
  • --py-tracebacker โ€” enable the uWSGI python tracebacker ๐Ÿ•ต๏ธโ€โ™€๏ธ
  • --py-auto-reload โ€” monitor python modules mtime to trigger reload
use only in development, bestie. this is not a production girlie ๐Ÿ™ˆ
  • --py-autoreload โ€” monitor python modules mtime to trigger reload
use only in development ๐Ÿซฃ
  • --python-auto-reload โ€” monitor python modules mtime to trigger reload
use only in development ๐Ÿ’€
  • --python-autoreload โ€” monitor python modules mtime to trigger reload
use only in development ๐ŸŒธ
  • --py-auto-reload-ignore โ€” ignore the specified module during the auto-reload scan. can be specified multiple times, so go off, list as many as you want ๐Ÿ“โœจ
  • --wsgi-env-behaviour โ€” set the strategy for allocating/deallocating the WSGI env ๐Ÿง 
  • --wsgi-env-behavior โ€” set the strategy for allocating/deallocating the WSGI env (american spelling said hi) ๐Ÿ‡บ๐Ÿ‡ธ
  • --start_response-nodelay โ€” send WSGI http headers as soon as possible
heads up, this is a PEP violation โš ๏ธ iconic of her honestly
  • --wsgi-strict โ€” try to be fully PEP compliant by disabling optimizations ๐Ÿ“
  • --wsgi-accept-buffer โ€” accept CPython buffer-compliant objects as WSGI response in addition to string/bytes ๐Ÿงบ
  • --wsgi-accept-buffers โ€” accept CPython buffer-compliant objects as WSGI response in addition to string/bytes (plural edition, same vibes) ๐Ÿงบ๐Ÿงบ
  • --wsgi-disable-file-wrapper โ€” disable the wsgi.file_wrapper feature ๐Ÿšซ๐Ÿ“ฆ
  • --python-version โ€” report python version ๐Ÿ”ข
  • --python-raw โ€” load a python file for managing raw requests ๐Ÿชต
  • --py-sharedarea โ€” create a sharedarea from a python bytearray object of the specified size ๐Ÿงฉ
  • --py-call-osafterfork โ€” enable child processes running cpython to trap OS signals ๐Ÿชค
  • --python-worker-override โ€” override worker with the specified python script ๐Ÿ”„
  • --py-executable โ€” override sys.executable value ๐Ÿ› ๏ธ
  • --py-sys-executable โ€” override sys.executable value (same thing, different name, we love a duo) ๐Ÿ› ๏ธ๐Ÿ› ๏ธ

and that's a wrap on the whole page, bestie!! ๐ŸŽ€ you just read the manual for uwsgi_python310, version 2.0.20-debian, dated March 2022 โ€” go forth, run your python, and remember: no auto-reload in production, that's the rule ๐Ÿ’–โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from