UWSGI_ALARM_CURL(1)
๐ UWSGI_ALARM_CURL(1) ๐
okay bestie, this is the User Commands manual page for uwsgi_alarm_curl, and it's lowkey iconic. no cap, we're about to go through all the flags. periodt. ๐
โจ NAME โจ
uwsgi_alarm_curl โ it's giving fast (pure C), self-healing, developer-friendly WSGI server. literally the whole package. ๐ซถ
๐ธ SYNOPSIS ๐ธ
uwsgi-core [options...]
๐ DESCRIPTION ๐
okay so here's the vibe: you got a million options and every single one matters. let's get into it, bestie. don't skip a single one, because we keep all the details. โจ
-s,--socketโ bind to the specified UNIX/TCP socket using default protocol ๐-s,--uwsgi-socketโ bind to the specified UNIX/TCP socket using uwsgi protocol ๐--suwsgi-socketโ bind to the specified UNIX/TCP socket using uwsgi protocol over SSL ๐--ssl-socketโ bind to the specified UNIX/TCP socket using uwsgi protocol over SSL โจ--http-socketโ bind to the specified UNIX/TCP socket using HTTP protocol ๐--http-socket-modifier1โ force the specified modifier1 when using HTTP protocol ๐--http-socket-modifier2โ force the specified modifier2 when using HTTP protocol ๐--http11-socketโ bind to the specified UNIX/TCP socket using HTTP 1.1 (Keep-Alive) protocol ๐--https-socketโ bind to the specified UNIX/TCP socket using HTTPS protocol ๐--https-socket-modifier1โ force the specified modifier1 when using HTTPS protocol ๐--https-socket-modifier2โ force the specified modifier2 when using HTTPS protocol ๐--fastcgi-socketโ bind to the specified UNIX/TCP socket using FastCGI protocol โก--fastcgi-nph-socketโ bind to the specified UNIX/TCP socket using FastCGI protocol (nph mode) โก--fastcgi-modifier1โ force the specified modifier1 when using FastCGI protocol ๐--fastcgi-modifier2โ force the specified modifier2 when using FastCGI protocol ๐--scgi-socketโ bind to the specified UNIX/TCP socket using SCGI protocol ๐--scgi-nph-socketโ bind to the specified UNIX/TCP socket using SCGI protocol (nph mode) ๐--scgi-modifier1โ force the specified modifier1 when using SCGI protocol ๐--scgi-modifier2โ force the specified modifier2 when using SCGI protocol ๐--raw-socketโ bind to the specified UNIX/TCP socket using RAW protocol ๐งช--raw-modifier1โ force the specified modifier1 when using RAW protocol ๐--raw-modifier2โ force the specified modifier2 when using RAW protocol ๐--puwsgi-socketโ bind to the specified UNIX/TCP socket using persistent uwsgi protocol (puwsgi) ๐--protocolโ force the specified protocol for default sockets ๐ซ--socket-protocolโ force the specified protocol for default sockets ๐ซ--shared-socketโ create a shared socket for advanced jailing or ipc ๐ค--undeferred-shared-socketโ create a shared socket for advanced jailing or ipc (undeferred mode) ๐ค-p,--processesโ spawn the specified number of workers/processes ๐ฏ-p,--workersโ spawn the specified number of workers/processes ๐ฏ--thunder-lockโ serialize accept() usage (if possible) โก-t,--harakiriโ set harakiri timeout ๐ก๏ธ--harakiri-verboseโ enable verbose mode for harakiri ๐ข--harakiri-graceful-timeoutโ interval between graceful harakiri attempt and a sigkill โณ--harakiri-graceful-signalโ use this signal instead of sigterm for graceful harakiri attempts ๐ฆ--harakiri-queue-thresholdโ only trigger harakiri if queue is greater than this threshold ๐--harakiri-no-arhโ do not enable harakiri during after-request-hook ๐ซ--no-harakiri-arhโ do not enable harakiri during after-request-hook ๐ซ--no-harakiri-after-req-hookโ do not enable harakiri during after-request-hook ๐ซ--backtrace-depthโ set backtrace depth ๐ช--mule-harakiriโ set harakiri timeout for mule tasks ๐ด-x,--xmlconfigโ load config from xml file ๐-x,--xmlโ load config from xml file ๐--configโ load configuration using the pluggable system ๐--fallback-configโ re-exec uwsgi with the specified config when exit code is 1 ๐--strictโ enable strict mode (placeholder cannot be used) ๐จ--skip-zeroโ skip check of file descriptor 0 0๏ธโฃ--skip-atexitโ skip atexit hooks (ignored by the master) ๐ช--skip-atexit-teardownโ skip atexit teardown (ignored by the master) ๐งน-S,--setโ set a placeholder or an option ๐--set-placeholderโ set a placeholder ๐--set-phโ set a placeholder ๐--getโ print the specified option value and exit ๐จ๏ธ--declare-optionโ declare a new uWSGI custom option ๐--declare-option2โ declare a new uWSGI custom option (non-immediate) ๐--resolveโ place the result of a dns query in the specified placeholder, sytax: placeholder=name (immediate option) ๐--forโ (opt logic) for cycle ๐--for-globโ (opt logic) for cycle (expand glob) ๐--for-timesโ (opt logic) for cycle (expand the specified num to a list starting from 1) ๐--for-readlineโ (opt logic) for cycle (expand the specified file to a list of lines) ๐--endforโ (opt logic) end for cycle ๐--end-forโ (opt logic) end for cycle ๐--if-optโ (opt logic) check for option โ--if-not-optโ (opt logic) check for option โ--if-envโ (opt logic) check for environment variable ๐ฟ--if-not-envโ (opt logic) check for environment variable ๐ฟ--ifenvโ (opt logic) check for environment variable ๐ฟ--if-reloadโ (opt logic) check for reload ๐--if-not-reloadโ (opt logic) check for reload ๐--if-hostnameโ (opt logic) check for hostname ๐ท๏ธ--if-not-hostnameโ (opt logic) check for hostname ๐ท๏ธ--if-hostname-matchโ (opt logic) try to match hostname against a regular expression ๐--if-not-hostname-matchโ (opt logic) try to match hostname against a regular expression ๐--if-existsโ (opt logic) check for file/directory existence ๐--if-not-existsโ (opt logic) check for file/directory existence ๐--ifexistsโ (opt logic) check for file/directory existence ๐--if-pluginโ (opt logic) check for plugin ๐--if-not-pluginโ (opt logic) check for plugin ๐--ifpluginโ (opt logic) check for plugin ๐--if-fileโ (opt logic) check for file existence ๐--if-not-fileโ (opt logic) check for file existence ๐--if-dirโ (opt logic) check for directory existence ๐--if-not-dirโ (opt logic) check for directory existence ๐--ifdirโ (opt logic) check for directory existence ๐--if-directoryโ (opt logic) check for directory existence ๐--endifโ (opt logic) end if ๐--end-ifโ (opt logic) end if ๐--blacklistโ set options blacklist context ๐ซ--end-blacklistโ clear options blacklist context ๐ซ--whitelistโ set options whitelist context โ--end-whitelistโ clear options whitelist context โ--ignore-sigpipeโ do not report (annoying) SIGPIPE ๐--ignore-write-errorsโ do not report (annoying) write()/writev() errors ๐--write-errors-toleranceโ set the maximum number of allowed write errors (default: no tolerance) ๐--write-errors-exception-onlyโ only raise an exception on write errors giving control to the app itself ๐ฎ--disable-write-exceptionโ disable exception generation on write()/writev() ๐ซ--inheritโ use the specified file as config template ๐--includeโ include the specified file as immediate configuration ๐--inject-beforeโ inject a text file before the config file (advanced templating) ๐--inject-afterโ inject a text file after the config file (advanced templating) ๐-d,--daemonizeโ daemonize uWSGI ๐ป--daemonize2โ daemonize uWSGI after app loading ๐ป--stopโ stop an instance ๐--reloadโ reload an instance ๐--pauseโ pause an instance โธ๏ธ--suspendโ suspend an instance โธ๏ธ--resumeโ resume an instance โถ๏ธ--connect-and-readโ connect to a socket and wait for data from it ๐--extractโ fetch/dump any supported address to stdout ๐ค-l,--listenโ set the socket listen queue size ๐-v,--max-varsโ set the amount of internal iovec/vars structures ๐ฆ--max-appsโ set the maximum number of per-worker applications ๐ฑ-b,--buffer-sizeโ set internal buffer size ๐งบ-m,--memory-reportโ enable memory report ๐--profilerโ enable the specified profiler ๐-c,--cgi-modeโ force CGI-mode for plugins supporting it ๐ข-a,--abstract-socketโ force UNIX socket in abstract mode (Linux only) ๐ง-C,--chmod-socketโ chmod-socket ๐-C,--chmodโ chmod-socket ๐--chown-socketโ chown unix sockets ๐--umaskโ set umask ๐ญ--freebindโ put socket in freebind mode ๐๏ธ--map-socketโ map sockets to specific workers ๐บ๏ธ-T,--enable-threadsโ enable threads (stub option this is true by default) ๐งต--no-threads-waitโ do not wait for threads cancellation on quit/reload ๐ซ--auto-procnameโ automatically set processes name to something meaningful ๐ท๏ธ--procname-prefixโ add a prefix to the process names โ--procname-prefix-spacedโ add a spaced prefix to the process names โ--procname-appendโ append a string to process names โ--procnameโ set process names ๐--procname-masterโ set master process name ๐-i,--single-interpreterโ do not use multiple interpreters (where available) 1๏ธโฃ--need-appโ exit if no app can be loaded ๐ช-M,--masterโ enable master process ๐--honour-stdinโ do not remap stdin to /dev/null โจ๏ธ--emperorโ run the Emperor ๐--emperor-proxy-socketโ force the vassal to became an Emperor proxy ๐--emperor-wrapperโ set a binary wrapper for vassals ๐งฐ--emperor-wrapper-overrideโ set a binary wrapper for vassals to try before the default one ๐งฐ--emperor-wrapper-fallbackโ set a binary wrapper for vassals to try as a last resort ๐งฐ--emperor-nofollowโ do not follow symlinks when checking for mtime ๐--emperor-procnameโ set the Emperor process name ๐--emperor-freqโ set the Emperor scan frequency (default 3 seconds) โฒ๏ธ--emperor-required-heartbeatโ set the Emperor tolerance about heartbeats ๐--emperor-curse-toleranceโ set the Emperor tolerance about cursed vassals ๐ง--emperor-pidfileโ writes the Emperor's pid into the file you point at. King needs a name tag bestie ๐--emperor-tyrantโ flips the Emperor into Tyrant mode. Yeah the name is dramatic, that's the whole point.--emperor-tyrant-nofollowโ in Tyrant mode, do NOT follow symlinks while it's checking uid/gid. No shortcuts, no sneaky links ๐ซ--emperor-statsโ runs the Emperor stats server โจ--emperor-stats-serverโ runs the Emperor stats server (same vibe, different spelling, both real)--early-emperorโ spawn the emperor ASAP, no waiting around ๐--emperor-broodlordโ runs the emperor in BroodLord mode ๐--emperor-throttleโ sets the throttling level, in milliseconds, for vassals that are acting up (default1000)--emperor-max-throttleโ sets the MAX throttling level, in milliseconds, for vassals that are acting all the way up (default3 minutes)--emperor-magic-execโ prefixes vassals' config files withexec://if they have the executable bit set ๐ช--emperor-on-demand-extensionโ searches for a text file named vassal name + extension that holds the on demand socket name--emperor-on-demand-extโ searches for a text file named vassal name + extension that holds the on demand socket name (the short king version)--emperor-on-demand-directoryโ turns on on demand mode, binding to the unix socket inside the directory you specify, named like the vassal +.socket--emperor-on-demand-dirโ same thing, shorter flag, same energy: on demand mode, unix socket in your directory, named like the vassal +.socket--emperor-on-demand-execโ uses the output of the command you specify as the on demand socket name (your vassal's name gets passed in as the only argument)--emperor-extra-extensionโ lets the Emperor accept the extension you specify (the vassal gets called with--config)--emperor-extra-extโ lets the Emperor accept the extension you specify (and yep, the vassal gets called with--config)--emperor-no-blacklistโ disables the Emperor blacklisting subsystem entirely ๐ซ--emperor-use-cloneโ usesclone()instead offork(), passing along theunshare()flags you specify--emperor-graceful-shutdownโ vassals get a graceful shutdown during ragnarok ๐๏ธ (yes it really says ragnarok)--emperor-capโ sets the vassals capability--vassals-capโ sets the vassals capability--vassal-capโ sets the vassals capability (three flags, one job, pick your fave)--imperial-monitor-listโ lists the enabled imperial monitors ๐--imperial-monitors-listโ lists the enabled imperial monitors (plural spelling gang)--vassals-inheritโ adds config templates to vassals config (it uses--inherit)--vassals-includeโ includes config templates into vassals config (it uses--includeinstead of--inherit)--vassals-inherit-beforeโ adds config templates to vassals config (uses--inherit, and parses before the vassal file)--vassals-include-beforeโ includes config templates into vassals config (uses--includeinstead of--inherit, and parses before the vassal file)--vassals-start-hookโ runs the command you specify before each vassal starts ๐--vassals-stop-hookโ runs the command you specify after a vassal's death ๐ชฆ--vassal-sosโ asks the emperor for backup when the vassal is overloaded. literally screaming SOS ๐ญ--vassal-sos-backlogโ asks the emperor for sos if the backlog queue has more items than the value you specify--vassals-setโ automatically sets the option you specify (via--set) for every vassal--vassal-setโ automatically sets the option you specify (via--set) for every vassal (singular flag, same deal)--heartbeatโ announces healthiness to the emperor ๐--reload-mercyโ sets the maximum time, in seconds, we wait for workers and other processes to die during reload/shutdown--worker-reload-mercyโ sets the maximum time, in seconds, a worker can take to reload/shutdown (default is60)--mule-reload-mercyโ sets the maximum time, in seconds, a mule can take to reload/shutdown (default is60)--exit-on-reloadโ forces exit even if a reload was requested--die-on-termโ exits instead of doing a brutal reload onSIGTERM--force-gatewayโ forces the spawn of the first registered gateway, no master needed-h|--helpโ shows this help ๐ซถ-h|--usageโ shows this help (yep, both spellings, same answer)--print-symโ prints the content of the binary symbol you specify--print-symbolโ prints the content of the binary symbol you specify (the long way to say it)-r|--reaperโ callswaitpid(-1,...)after every request to get rid of zombies ๐ง slay-R|--max-requestsโ reloads workers after the specified amount of managed requests--max-requests-deltaโ adds(worker_id * delta)to themax_requestsvalue of each worker--min-worker-lifetimeโ the number of seconds a worker must run before it can be reloaded (default is10)--max-worker-lifetimeโ reload workers after the specified amount of seconds (default is disabled)--max-worker-lifetime-deltaโ adds(worker_id * delta)seconds to themax_worker_lifetimevalue of each worker-z|--socket-timeoutโ sets the internal sockets timeout--no-fd-passingโ disables file descriptor passing--locksโ creates the number of shared locks you specify--lock-engineโ sets the lock engine ๐--ftokโ sets the ipcsem key viaftok()so you avoid duplicates--persistent-ipcsemโ does not remove ipcsem's on shutdown-A|--sharedareaโ creates a raw shared memory area of the specified pages (heads up: it supports keyval too)--safe-fdโ do not close the file descriptor you specify--fd-safeโ do not close the file descriptor you specify (same protection, swapped order)--cacheโ creates a shared cache holding the given elements--cache-blocksizeโ sets the cache blocksize--cache-storeโ enables persistent cache to disk--cache-store-syncโ sets the frequency of sync for the persistent cache--cache-no-expireโ disables the auto sweep of expired items--cache-expire-freqโ sets the frequency of cache sweeper scans (default3 seconds)--cache-report-freed-itemsโ constantly reports the cache item freed by the sweeper (use this only for debug, bestie, it's chatty ๐ฃ๏ธ)--cache-udp-serverโ binds the cache udp server to the socket you specify (only used for set/update/delete)--cache-udp-nodeโ sends cache update/deletion to the cache udp server you specify--cache-syncโ copies the whole content of another uWSGI cache server on server startup--cache-use-last-modifiedโ updates thelast_modified_attimestamp on every cache item modification (default is disabled)--add-cache-itemโ adds an item in the cache--load-file-in-cacheโ loads a static file in the cache--load-file-in-cache-gzipโ loads a static file in the cache with gzip compression ๐๏ธ--cache2โ creates a new generation shared cache (keyval syntax)--queueโ enables the shared queue--queue-blocksizeโ sets the queue blocksize--queue-storeโ enables persistent queue to disk--queue-store-syncโ sets the frequency of sync for the persistent queue-Q|--spoolerโ runs a spooler on the directory you specify--spooler-externalโ maps spoolers requests to a spooler directory managed by an external instance--spooler-orderedโ tries to order the execution of spooler tasks--spooler-chdirโchdir()s to the directory you specify before each spooler task--spooler-processesโ sets the number of processes for spoolers--spooler-quietโ do not be verbose with spooler tasks ๐คซ--spooler-max-tasksโ sets the maximum number of tasks to run before recycling a spooler--spooler-harakiriโ sets the harakiri timeout for spooler tasks--spooler-frequencyโ sets the spooler frequency--spooler-freqโ sets the spooler frequency (shortened, same dial)--muleโ adds a mule ๐ด--mulesโ adds the number of mules you specify--farmโ adds a mule farm ๐ด๐ด๐ด--mule-msg-sizeโ sets the mule message buffer size--signalโ sends a uwsgi signal to a server ๐ก--signal-bufsizeโ sets the buffer size for the signal queue--signals-bufsizeโ sets the buffer size for the signal queue (plural variant, identical job)--signal-timerโ adds a timer (syntax:<signal> <seconds>) โฐ--timerโ adds a timer (syntax:<signal> <seconds>)--signal-rbtimerโ adds a redblack timer (syntax:<signal> <seconds>)--rbtimerโ adds a redblack timer (syntax:<signal> <seconds>)--rpc-maxโ maximum number of rpc slots (default:64)-L|--disable-loggingโ disables request logging--flockโ locks the file you specify before starting, and exits if it's already locked--flock-waitโ locks the file you specify before starting, and waits if it's already locked--flock2โ locks the file you specify after logging/daemon setup, and exits if it's locked--flock-wait2โ locks the file you specify after logging/daemon setup, and waits if it's locked--pidfileโ creates a pidfile (this happens before privileges drop)--pidfile2โ creates a pidfile (this happens after privileges drop)--safe-pidfileโ creates a safe pidfile (before privileges drop)--safe-pidfile2โ creates a safe pidfile (after privileges drop)--chrootโchroot()s to the directory you specify--pivot-rootโpivot_root()s to the directories you specify (new_root and put_old must be separated with a space)--pivot_rootโpivot_root()s to the directories you specify (new_root and put_old must be separated with a space โ yep, underscore version, same rule)--uidโ setuid to the user/uid you specify--gidโ setgid to the group/gid you specify--add-gidโ adds the group id you specify to the process credentials--immediate-uidโ setuid to the user/uid you specify, IMMEDIATELY--immediate-gidโ setgid to the group/gid you specify, IMMEDIATELY--no-initgroupsโ disables the additional groups that get set viainitgroups()--capโ sets the process capability--unshareโunshare()s part of the processes and drops them into a new namespace--unshare2โunshare()s part of the processes and drops them into a new namespace after the rootfs change--setns-socketโ exposes a unix socket returning namespace fds from/proc/self/ns--setns-socket-skipโ skips the entry you specify when sending setns file descriptors--setns-skipโ skips the entry you specify when sending setns file descriptors (short version, same skip)--setnsโ joins a namespace created by an external uWSGI instance--setns-preopenโ opens/proc/self/nsas soon as possible and caches the fds--jailedโ stamps this instance as jailed ๐ and forces thepost_jailhooks to actually fire. no jail left behind, periodt.--reforkโ does afork()again after privileges drop. lowkey iconic for jailing systems.--re-forkโ same thing, different spelling โจfork()again after privileges drop, and yes it's for jailing systems.--refork-as-rootโfork()again before privileges drop. also for jailing systems, bestie ๐ธ--re-fork-as-rootโ the hyphenated twin ๐ซถfork()again before privileges drop, built for jailing systems.--refork-post-jailโfork()again after jailing. jailing systems, you know the vibe ๐--re-fork-post-jailโ same energy, extra hyphen ๐fork()again after jailing, for jailing systems.
okay so now we're in HOOK CITY and honestly? it's giving main character โจ every one of these runs the specified hook at a different โจmomentโจ in the lifecycle.
๐ฆ the hook timing lore
--hook-asapโ run the specified hook as soon as possible. literally the second it can ๐โโ๏ธ--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, but once per-instance (not once per worker, bestie).--hook-accepting1-onceโ run the specified hook after the first worker enters the accepting phase, once per instance.--hook-master-startโ run the specified hook when the Master starts ๐--hook-touchโ run the specified hook when the specified file is touched. syntax goes like this:(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 beforeexec()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. (yes bestie, same description, it's a real option, not a typo ๐)
๐ฅ exec squad, assemble
these run the specified command at every stage of the lifecycle:
--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 beforeexec()ing the vassal.--exec-as-emperorโ run the specified command in the emperor after the vassal has been started.
๐ง mount / umount (filesystem fairy business)
--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 beforeexec()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 beforeexec()ing the vassal.--umount-as-emperorโ unmount filesystem in the emperor after the vassal has been started.
๐ธ waiting era (patience is a vibe)
--wait-for-interfaceโ wait for the specified network interface to come up before running root hooks.--wait-for-interface-timeoutโ set the timeout forwait-for-interface.--wait-interfaceโ wait for the specified network interface to come up before running root hooks.--wait-interface-timeoutโ set the timeout forwait-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 forwait-for-interface.--wait-ifaceโ wait for the specified network interface to come up before running root hooks.--wait-iface-timeoutโ set the timeout forwait-for-interface.
bestie there are literally four spellings of the interface wait and four timeouts. they all do the same thing. i don't make the rules ๐
--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 forwait-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 forwait-for-socket.
โญ call squad (functions only, no shell)
these call the specified function at the vibe-appropriate moment:
--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 specifiedfunction()beforeexec()ing the vassal.--call-as-vassal1โ call the specifiedfunction(char *)beforeexec()ing the vassal.--call-as-vassal3โ call the specifiedfunction(char *, uid_t, gid_t)beforeexec()ing the vassal.--call-as-emperorโ call the specifiedfunction()in the emperor after the vassal has been started.--call-as-emperor1โ call the specifiedfunction(char *)in the emperor after the vassal has been started.--call-as-emperor2โ call the specifiedfunction(char *, pid_t)in the emperor after the vassal has been started.--call-as-emperor4โ call the specifiedfunction(char *, pid_t, uid_t, gid_t)in the emperor after the vassal has been started.
see the numbers on the end? they're the arg count bestie,1= 1 arg,2= 2 args,3= 3 args,4= 4 args, no number = no args. slay ๐ซถ
๐ config files & instance identity
--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.
๐ socket & network tuning
--no-defer-acceptโ disable deferred-accept on sockets.--tcp-nodelayโ enable TCP NODELAY on each request.--so-keepaliveโ enable TCP KEEPALIVEs.--so-send-timeoutโ setSO_SNDTIMEO.--socket-send-timeoutโ setSO_SNDTIMEO.--so-write-timeoutโ setSO_SNDTIMEO.--socket-write-timeoutโ setSO_SNDTIMEO.--socket-sndbufโ setSO_SNDBUF.--socket-rcvbufโ setSO_RCVBUF.--shutdown-socketsโ force callingshutdown()in addition toclose()when sockets are destroyed.
๐ memory & reload drama
--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 me โ reload me
--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โ it's giving watchdog energy.</p> When the file you named gets modified/touched, it raises a signal. Syntax isfile signal, so you hand it both bestie: the path and the signal. ๐--fs-reloadโ if the filesystem object you specified gets modified, do a graceful reload. Softly softly, no drama. ๐ฆ--fs-brutal-reloadโ same vibe check, different ending: the filesystem object gets modified, so we do a brutal reload. No chill. Periodt. ๐--fs-signalโ filesystem object changes โ raise a uwsgi signal. Syntax:file signal. โจ--check-mountpointโ if a filesystem is no longer reachable, destroy the instance. Sounds harsh but it's genuinely useful for reliable Fuse management, iykyk. ๐--mountpoint-checkโ literally the same thing as--check-mountpoint: filesystem unreachable โ instance destroyed. Useful for reliable Fuse management. ๐ธ--check-mountโ okay so this is again the exact same deal. No filesystem, no instance. Useful for reliable Fuse management. ๐ซถ--mount-checkโ bestie this one is also the same: if the filesystem becomes unreachable, the instance gets destroyed. Useful for reliable Fuse management. Four options, one vibe. ๐--propagate-touchโ the manpage calls this "over-engineering option for system with flaky signal management." So likeโฆ a whole elaborate fit for a signal system that can't communicate. We love an overbuilt queen. ๐--limit-postโ put a cap on the request body. ๐--no-orphansโ if the master dies, the workers get automatically killed. Keeping the family together, kind of. โ ๏ธ Heads up though: it can be dangerous for availability.--prioโ set the priority for your processes/threads. โจ--cpu-affinityโ set the cpu affinity. Pinning your faves to their seats. ๐--post-bufferingโ sets the size in bytes at which post buffering switches from memory to buffering to disk instead. So: past this many bytes, it's disk time. ๐พ--post-buffering-bufsizeโ sets the buffer size used forread()while you're in post buffering mode. ๐--body-read-warningโ sets how much memory allocation (in megabytes) is allowed for a request body before it starts printing a warning at you. It's giving concerned bestie. ๐ญ--upload-progressโ turn on creation of.jsonfiles inside the directory you specify, while a file upload is happening. Watch it in real time. โจ--no-default-appโ do not fallback to the default app. Boundaries! ๐ซ--manage-script-nameโ automatically rewriteSCRIPT_NAMEandPATH_INFOfor you. Queen behavior. ๐--ignore-script-nameโ just ignoreSCRIPT_NAMEentirely. Not your problem, not your business. ๐--catch-exceptionsโ report the exception as http output. The manpage is very clear here: discouraged, use it only for testing. Testing-only, bestie, do not ship it. โ ๏ธ--reload-on-exceptionโ when an exception is raised, reload that worker. Fresh start energy. ๐--reload-on-exception-typeโ reload the worker when a specific exception type is raised. Picky and valid. ๐--reload-on-exception-valueโ reload the worker when a specific exception value is raised. ๐ฏ--reload-on-exception-reprโ reload the worker when a specific exception type+value (language-specific, so this is speaking your app's language) is raised. ๐ธ--exception-handlerโ add an exception handler. ๐ซถ--enable-metricsโ turn the metrics subsystem on. Numbers era begins. ๐ฅ--metricโ add a custom metric. Make it yours. โญ--metric-thresholdโ add a metric threshold/alarm. When the number crosses the line, alarm goes off. ๐จ--metric-alarmโ also adds a metric threshold/alarm. Same beautiful thing, different name. ๐--alarm-metricโ yep, another metric threshold/alarm. They really said "three names, one feature." ๐ญ--metrics-dirโ export your metrics as text files into the directory you name. ๐๏ธ--metrics-dir-restoreโ restore the last value that was taken from the metrics dir. Picking up right where you left off. ๐ซ--metric-dirโ export metrics as text files to the specified directory. (Yes, singular "metric". Yes, same thing. No, I don't make the rules.) ๐--metric-dir-restoreโ restore the last value taken from the metrics dir. Again, the singular twin. ๐ฆ--metrics-no-coresโ disable generation of cores-related metrics. Bye to the cores numbers. ๐
--udpโ run the udp server on the address you specify. ๐ก--statsโ enable the stats server on the specified address. ๐--stats-serverโ also enables the stats server on the specified address. Same icon, same vibe. โจ--stats-httpโ prefix the stats server json output with http headers. Fancy little hat on your json. ๐--stats-minifiedโ minify the statistics json output. Compact queen. ๐--stats-minโ minify the statistics json output. The short nickname for the same thing. โญ--stats-pushโ push the stats json to the destination you specify. Sending it straight to its location. ๐ค--stats-pusher-default-freqโ set the default frequency of stats pushers. How often the pushing happens. โฐ--stats-pushers-default-freqโ set the default frequency of stats pushers. Plural spelling, same heartbeat. ๐ซถ--stats-no-coresโ disable generation of cores-related stats. ๐ซ--stats-no-metricsโ do not include metrics in the stats output. Metrics stay out of this one. ๐ธ--multicastโ subscribe to the multicast group you specify. ๐ป--multicast-ttlโ set the multicast ttl. ๐ฐ๏ธ--multicast-loopโ set the multicast loop. Default is1. ๐--master-fifoโ enable the master fifo. One little pipe, so much power. ๐--notify-socketโ enable the notification socket. ๐--subscription-notify-socketโ set the notification socket specifically for subscriptions. Same socket energy, subscriptions-only. โ๏ธ--legionโ become a member of a legion. Yes, a legion. It's giving chosen family. โ๏ธ--legion-mcastโ become a member of a legion, but as a shortcut for multicast. Speedrun version. ๐โโ๏ธ--legion-nodeโ add a node to a legion. New member, welcome to the group chat. ๐--legion-freqโ set the frequency of legion packets. ๐--legion-toleranceโ set the tolerance of the legion subsystem. Grace has limits, bestie. โ๏ธ--legion-death-on-lord-errorโ if one of the lord hooks fails, it declares itself a dead node for however many seconds you specify. Dramatic but documented. ๐--legion-skew-toleranceโ set the clock skew tolerance of the legion subsystem. Default is60seconds. โฑ๏ธ--legion-lordโ the action to call on Lord election. ๐--legion-unlordโ the action to call on Lord dismiss. The crown comes off. ๐--legion-setupโ the action to call on legion setup. ๐ ๏ธ--legion-deathโ the action to call on legion death, which means shutdown of the instance. ๐ญ--legion-joinโ the action to call on legion join, which fires the first time quorum is reached. ๐--legion-node-joinedโ the action to call when a new node joins the legion. ๐ซถ--legion-node-leftโ the action to call when a node leaves the legion. ๐ฅฒ--legion-quorumโ set the quorum of a legion. ๐ณ๏ธ--legion-scrollโ set the scroll of a legion. ๐--legion-scroll-max-sizeโ set the max size of the legion scroll buffer. ๐๏ธ--legion-scroll-list-max-sizeโ set the max size of the legion scroll list buffer. Yes, that's a different buffer from the one above. ๐--subscriptions-sign-checkโ set the digest algorithm and the certificate directory for the secured subscription system. ๐--subscriptions-sign-check-toleranceโ set the maximum tolerance (in seconds) of clock skew for the secured subscription system. โณ--subscriptions-sign-skip-uidโ when using unix sockets credentials, skip the signature check for the uid you specify. VIP pass. ๐๏ธ--subscriptions-credentials-checkโ add a directory to search for subscriptions key credentials. ๐๏ธ--subscriptions-use-credentialsโ enable management ofSCM_CREDENTIALSin subscriptions UNIX sockets. ๐--subscription-algoโ set the load balancing algorithm for the subscription system. Pick your fighter. โ๏ธ--subscription-dotsplitโ try to fallback to the next part (dot based) in the subscription key. Following the dots. ๐ต--subscribe-toโ subscribe to the subscription server you specify. ๐ค--stโ subscribe to the specified subscription server. Tiny name, big job. โจ--subscribeโ subscribe to the specified subscription server. The classic. ๐--subscribe2โ subscribe to the specified subscription server using advanced keyval syntax. The sequel, and it's more sophisticated. ๐--subscribe-freqโ send the subscription announce at the interval you specify. โฐ--subscription-toleranceโ set the tolerance for subscription servers. ๐ซถ--unsubscribe-on-graceful-reloadโ force the unsubscribe request even during a graceful reload. No lingering subscriptions, we're leaving cleanly. ๐ช--start-unsubscribedโ configure your subscriptions but don't actually send them. The manpage notes this is useful with master fifo. All dressed up, not going anywhere (yet). ๐--subscribe-with-modifier1โ force the specified modifier1 when subscribing. ๐๏ธ--snmpโ enable the embedded snmp server. ๐--snmp-communityโ set the snmp community string. ๐
--ssl-verboseโ be verbose about SSL errors. Spill the tea on every handshake problem. โ--ssl-verify-depthโ set the maximum certificate verification depth. How far down the chain we're willing to look. ๐--sniโ add an SNI-governed SSL context. ๐ธ--sni-dirโ check for thecert/key/client_cafile in the directory you specify, and create a sni/ssl context on demand. Lazy loading but make it SSL. โจ--sni-dir-ciphersโ set the ssl ciphers for thesni-diroption. ๐ง--ssl-enable3โ enable SSLv3. The manpage says it plainly: insecure. โ ๏ธ Like, we're telling you for your own good.--ssl-enable-sslv3โ enable SSLv3. Also insecure. Same warning, longer name. ๐--ssl-enable-tlsv1โ enable TLSv1. Also insecure, bestie. Do not. ๐ฉ--ssl-optionโ set a raw ssl option, and it takes a numeric value. Raw and numeric, exactly as stated. ๐ข--sni-regexpโ add an SNI-governed SSL context where the key is a regexp. Pattern-matching your way into SSL. ๐งฉ--ssl-tmp-dirโ store ssl-related temp files in the directory you specify. ๐๏ธ--check-intervalโ set the interval (in seconds) of the master checks. โฒ๏ธ--forkbomb-delayโ when a forkbomb is detected, sleep for however many seconds you specified. ๐--binary-pathโ force the binary path. ๐ฃ๏ธ--privileged-binary-patchโ patch the uwsgi binary with a new command, and this happens before the privileges drop. ๐--unprivileged-binary-patchโ patch the uwsgi binary with a new command, after the privileges drop. ๐ซถ--privileged-binary-patch-argโ patch the uwsgi binary with a new command and arguments, before the privileges drop. Arguments included, no extra charge. ๐--unprivileged-binary-patch-argโ patch the uwsgi binary with a new command and arguments, after the privileges drop. ๐--asyncโ enable async mode with however many cores you specify. โก--max-fdโ set the maximum number of file descriptors. Heads up: this requires root privileges. ๐--logtoโ set the logfile/udp address. ๐ชต--logto2โ log to the file or udp address you specify, but after the privileges drop. ๐ซง--log-formatโ set an advanced format for request logging. Customize your log fit. ๐--logformatโ set advanced format for request logging. The shorter twin. โญ--logformat-strftimeโ applystrftimeto the logformat output. Time stamps, glam edition. ๐ฐ๏ธ--log-format-strftimeโ applystrftimeto the logformat output. Hyphenated twin, same energy. โจ--logfile-chownโchownthe logfiles. ๐งพ--logfile-chmodโchmodthe logfiles. ๐--log-syslogโ log to syslog. ๐ฎ--log-socketโ send logs to the socket you specify. ๐ณ๏ธ--req-loggerโ set/append a request logger. ๐--logger-reqโ set/append a request logger. Yes, it's the same thing with the words swapped. Both real, both listed. ๐ญ--loggerโ set/append a logger. The general-purpose one. ๐ช--logger-listโ list the enabled loggers. ๐--loggers-listโ list the enabled loggers. Plural twins, we stay consistent. ๐--threaded-loggerโ offload log writing to a thread. Logs, but make it a background task. ๐งต--log-encoderโ add an item in the log encoder chain. One link at a time. โ๏ธ--log-req-encoderโ add an item in the log req encoder chain. The request-specific chain. ๐--log-drainโ drain (meaning: do not show) log lines that match the regexp you specify. Swept away, never seen. ๐--log-filterโ show only the log lines matching the regexp you specify. Cherry-picked. ๐--log-routeโ log to the named logger you specify, if the regexp applied on the logline matches. Goes to the right place only when it qualifies. ๐--log-req-routeโ log requests to the named logger you specify, if the regexp applied on the logline matches. Request-logging edition. ๐ฌ--use-abortโ callabort()on segfault/fpe. The manpage says this could be useful for generating a core dump. ๐งจ--alarmโ create a new alarm. Syntax:<alarm> <plugin:args>. Alarm era, activated. ๐จ--alarm-cheapโ use the main alarm thread instead of spinning up dedicated threads for curl-based alarms ๐งต no cap, saves you a whole thread-spawning situation--alarm-freqโ tunes the anti-loop alarm system (default 3 seconds) โฐ it's giving "chill, don't spiral"--alarm-fdโ raise the specified alarm when an fd is read for read (by default it reads 1 byte, set it to 8 foreventfd) ๐--alarm-segfaultโ raise the specified alarm when the segmentation fault handler is executed ๐ iconic crash-notification behaviour--segfault-alarmโ raise the specified alarm when the segmentation fault handler is executed ๐ yeah bestie this is the same thing, two names, one vibe--alarm-backlogโ raise the specified alarm when the socket backlog queue is full ๐ญ the queue said "I'm full"--backlog-alarmโ raise the specified alarm when the socket backlog queue is full ๐ญ--lq-alarmโ raise the specified alarm when the socket backlog queue is full ๐ฃ--alarm-lqโ raise the specified alarm when the socket backlog queue is full ๐ฃ--alarm-listen-queueโ raise the specified alarm when the socket backlog queue is full ๐--listen-queue-alarmโ raise the specified alarm when the socket backlog queue is full ๐
ok so that backlog thing has six whole aliases and honestly? iconic. pick whichever one your fingers remember.
--log-alarmโ raise the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>๐--alarm-logโ raise the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>๐--not-log-alarmโ skip the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>๐ โโ๏ธ the negation girlie--not-alarm-logโ skip the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>๐ โโ๏ธ--alarm-listโ list enabled alarms ๐โจ--alarms-listโ list enabled alarms ๐โจ (the plural version, we love options)--alarm-msg-sizeโ set the max size of an alarm message (default 8192)
๐ชต the logging era
--log-masterโ delegate logging to the master process ๐--log-master-bufsizeโ set the buffer size for the master logger. bigger log messages will be truncated โ๏ธ rip to your long logs--log-master-streamโ create the master logpipe asSOCK_STREAM๐--log-master-req-streamโ create the master requests logpipe asSOCK_STREAM๐--log-reopenโ reopen log after reload ๐--log-truncateโ truncate log on startup ๐๏ธ fresh start energy--log-maxsizeโ set maximum logfile size ๐--log-backupnameโ set logfile name after rotation ๐--logdateโ prefix logs with date or astrftimestring ๐๏ธ--log-dateโ prefix logs with date or astrftimestring ๐๏ธ--log-prefixโ prefix logs with a string ๐ท๏ธ--log-zeroโ log responses without body ๐ป empty-body representation--log-slowโ log requests slower than the specified number of milliseconds ๐โจ--log-4xxโ log requests with a4xxresponse--log-5xxโ log requests with a5xxresponse ๐ฅ--log-bigโ log requests bigger than the specified size ๐--log-sendfileโ logsendfilerequests ๐ค--log-ioerrorโ log requests with io errors ๐ฅ--log-microsโ report response time in microseconds instead of milliseconds โฑ๏ธ tiny numbers, huge precision--log-x-forwarded-forโ use the ip fromX-Forwarded-Forheader instead ofREMOTE_ADDR๐
๐ privileges, directories & the working-dir of it all
--master-as-rootโ leave master process running as root ๐โ ๏ธ--drop-after-initโ run privileges drop after plugin initialization, superseded bydrop-after-apps๐--drop-after-appsโ run privileges drop after apps loading, superseded bymaster-as-root๐--force-cwdโ force the initial working directory to the specified value ๐--binshโ override/bin/sh(used by exec hooks, it always fallback to/bin/sh) ๐--chdirโchdirto specified directory before apps loading ๐ช--chdir2โchdirto specified directory after apps loading ๐ช--lazyโ set lazy mode (load apps in workers instead of master) ๐ฆฅ--lazy-appsโ load apps in each worker instead of the master ๐ฆฅ--cheapโ set cheap mode (spawn workers only after the first request) ๐ธ--cheaperโ set cheaper mode (adaptive process spawning) ๐--cheaper-initialโ set the initial number of processes to spawn in cheaper mode ๐ฃ--cheaper-algoโ choose to algorithm used for adaptive process spawning ๐ง--cheaper-stepโ number of additional processes to spawn at each overload ๐ฅ--cheaper-overloadโ increase workers after specified overload ๐--cheaper-algo-listโ list enabled cheapers algorithms ๐--cheaper-algos-listโ list enabled cheapers algorithms ๐--cheaper-listโ list enabled cheapers algorithms ๐--cheaper-rss-limit-softโ don't spawn new workers if total resident memory usage of all workers is higher than this limit ๐ง โ--cheaper-rss-limit-hardโ if total workers resident memory usage is higher try to stop workers ๐--idleโ set idle mode (put uWSGI in cheap mode after inactivity) ๐ด--die-on-idleโ shutdown uWSGI when idle โฐ๏ธ--mountโ load application under mountpoint ๐๏ธ--worker-mountโ load application under mountpoint in the specified worker or after workers spawn ๐๏ธ--threadsโ run each worker in prethreaded mode with the specified number of threads ๐งตโจ--thread-stacksizeโ set threads stacksize ๐--threads-stacksizeโ set threads stacksize ๐--thread-stack-sizeโ set threads stacksize ๐--threads-stack-sizeโ set threads stacksize ๐--vhostโ enable virtualhosting mode (based onSERVER_NAMEvariable) ๐--vhost-hostโ enable virtualhosting mode (based onHTTP_HOSTvariable) ๐
๐ฃ๏ธ routes, routes & more routes (the whole trilogy)
the regular route girlies
--routeโ add a route ๐ฃ๏ธ--route-hostโ add a route based onHostheader ๐จ--route-uriโ add a route based onREQUEST_URI๐--route-qsโ add a route based onQUERY_STRINGโ--route-remote-addrโ add a route based onREMOTE_ADDR๐--route-user-agentโ add a route based onHTTP_USER_AGENT๐ต๏ธ--route-remote-userโ add a route based onREMOTE_USER๐ค--route-refererโ add a route based onHTTP_REFERERโฉ๏ธ--route-labelโ add a routing label (for use withgoto) ๐ท๏ธ--route-ifโ add a route based on condition ๐งฉ--route-if-notโ add a route based on condition (negate version) ๐งฉ๐--route-runโ always run the specified route action โถ๏ธ
final routes (the dramatic finale)
--final-routeโ add a final route ๐--final-route-statusโ add a final route for the specified status ๐--final-route-hostโ add a final route based onHostheader ๐จ--final-route-uriโ add a final route based onREQUEST_URI๐--final-route-qsโ add a final route based onQUERY_STRINGโ--final-route-remote-addrโ add a final route based onREMOTE_ADDR๐--final-route-user-agentโ add a final route based onHTTP_USER_AGENT๐ต๏ธ--final-route-remote-userโ add a final route based onREMOTE_USER๐ค--final-route-refererโ add a final route based onHTTP_REFERERโฉ๏ธ--final-route-labelโ add a final routing label (for use withgoto) ๐ท๏ธ--final-route-ifโ add a final route based on condition ๐งฉ--final-route-if-notโ add a final route based on condition (negate version) ๐งฉ๐--final-route-runโ always run the specified final route action โถ๏ธ
error routes
--error-routeโ add an error route ๐จ--error-route-statusโ add an error route for the specified status ๐--error-route-hostโ add an error route based onHostheader ๐จ--error-route-uriโ add an error route based onREQUEST_URI๐--error-route-qsโ add an error route based onQUERY_STRINGโ--error-route-remote-addrโ add an error route based onREMOTE_ADDR๐--error-route-user-agentโ add an error route based onHTTP_USER_AGENT๐ต๏ธ--error-route-remote-userโ add an error route based onREMOTE_USER๐ค--error-route-refererโ add an error route based onHTTP_REFERERโฉ๏ธ--error-route-labelโ add an error routing label (for use withgoto) ๐ท๏ธ--error-route-ifโ add an error route based on condition ๐งฉ--error-route-if-notโ add an error route based on condition (negate version) ๐งฉ๐--error-route-runโ always run the specified error route action โถ๏ธ
response routes
--response-routeโ add a response route ๐ฌ--response-route-statusโ add a response route for the specified status ๐--response-route-hostโ add a response route based onHostheader ๐จ--response-route-uriโ add a response route based onREQUEST_URI๐--response-route-qsโ add a response route based onQUERY_STRINGโ--response-route-remote-addrโ add a response route based onREMOTE_ADDR๐--response-route-user-agentโ add a response route based onHTTP_USER_AGENT๐ต๏ธ--response-route-remote-userโ add a response route based onREMOTE_USER๐ค--response-route-refererโ add a response route based onHTTP_REFERERโฉ๏ธ--response-route-labelโ add a response routing label (for use withgoto) ๐ท๏ธ--response-route-ifโ add a response route based on condition ๐งฉ--response-route-if-notโ add a response route based on condition (negate version) ๐งฉ๐--response-route-runโ always run the specified response route action โถ๏ธ--router-listโ list enabled routers ๐--routers-listโ list enabled routers ๐--error-page-403โ add an error page (html) for managed403response ๐ซ--error-page-404โ add an error page (html) for managed404response ๐--error-page-500โ add an error page (html) for managed500response ๐
๐ฆ websockets & friends
--websockets-ping-freqโ set the frequency (in seconds) of websockets automatic ping packets ๐--websocket-ping-freqโ set the frequency (in seconds) of websockets automatic ping packets ๐--websockets-pong-toleranceโ set the tolerance (in seconds) of websockets ping/pong subsystem ๐--websocket-pong-toleranceโ set the tolerance (in seconds) of websockets ping/pong subsystem ๐--websockets-max-sizeโ set the max allowed size of websocket messages (in Kbytes, default 1024) ๐ฆ--websocket-max-sizeโ set the max allowed size of websocket messages (in Kbytes, default 1024) ๐ฆ--chunked-input-limitโ set the max size of a chunked input part (default 1MB, in bytes) ๐งฑ--chunked-input-timeoutโ set default timeout for chunked input โณ--clockโ set a clock source โฐ--clock-listโ list enabled clocks ๐โฐ
okay we're still going through the options list bestie, buckle up ๐
--clocks-listโ lists all the enabled clocks โฐ--add-headerโ automatically adds HTTP headers to the response ๐--rem-headerโ automatically removes the HTTP header you named from the response ๐ซฅ--del-headerโ same energy: automatically removes the specified HTTP header from the response ๐--collect-headerโ stashes the specified response header into a request var, syntax isheader var๐พ--response-header-collectโ literally the same deal, stores the specified response header in a request var, syntaxheader varโจ--pull-headerโ stores that response header in a request var and rips it out of the response, syntaxheader var๐ฅ--check-staticโ checks for static files in the directory you specify ๐--check-static-docrootโ checks for static files in the requestedDOCUMENT_ROOT๐--static-checkโ yep, again: checks for static files in the directory you specify ๐--static-mapโ maps a mountpoint to a static directory (or a file) ๐บ๏ธ--static-map2โ likestatic-mapbut it completely appends the requested resource to the docroot--static-skip-extโ skips the extension you name when doing staticfile checks ๐ซ--static-indexโ if a directory gets requested, it searches for the file you specify--static-safeโ skips the security checks when the file lives under the path you specify ๐ก๏ธ--static-cache-pathsโ drops resolved paths into the uWSGI cache for however many seconds you say โณ--static-cache-paths-nameโ uses the cache you name for static paths--mimefileโ sets the mime types file path (default/etc/mime.types) ๐--mime-fileโ same thing, sets the mime types file path (default/etc/mime.types)--static-expires-typeโ sets theExpiresheader based on content type--static-expires-type-mtimeโ sets theExpiresheader based on content type and file mtime--static-expiresโ sets theExpiresheader based on filename regexp--static-expires-mtimeโ sets theExpiresheader based on filename regexp and file mtime--static-expires-uriโ sets theExpiresheader based onREQUEST_URIregexp--static-expires-uri-mtimeโ sets theExpiresheader based onREQUEST_URIregexp and file mtime--static-expires-path-infoโ sets theExpiresheader based onPATH_INFOregexp--static-expires-path-info-mtimeโ sets theExpiresheader based onPATH_INFOregexp and file mtime--static-gzipโ if the regexp you supplied matches the static file translation, it goes looking for a gzip version ๐๏ธ--static-gzip-allโ checks for a gzip version of all requested static files--static-gzip-dirโ checks for a gzip version of all requested static files in the dir/prefix you specify--static-gzip-prefixโ checks for a gzip version of all requested static files in the dir/prefix you specify--static-gzip-extโ checks for a gzip version of all requested static files with the ext/suffix you specify--static-gzip-suffixโ checks for a gzip version of all requested static files with the ext/suffix you specify--honour-rangeโ enables support for the HTTPRangeheader ๐--offload-threadsโ sets how many offload threads to spawn (per-worker, default0)--offload-threadโ sets how many offload threads to spawn (per-worker, default0)--file-serve-modeโ sets the static file serving mode--fileserve-modeโ sets the static file serving mode--disable-sendfileโ disablessendfile()and makes it rely on boring oldread()/write()๐--check-cacheโ checks for response data in the cache you specify (leave it empty for the default cache)--close-on-execโ sets close-on-exec on connection sockets (could be required for spawning processes in requests) ๐--close-on-exec2โ sets close-on-exec on server sockets (could be required for spawning processes in requests)--modeโ sets the uWSGI custom mode--envโ sets an environment variable ๐ฑ--envdirโ loads a daemontools compatible envdir--early-envdirโ loads a daemontools compatible envdir ASAP โก--unenvโ unsets an environment variable--vacuumโ tries to remove all of the generated file/sockets ๐งน--file-writeโ writes the content you give to the file you name (syntax:file=value) before the privileges drop โ๏ธ--cgroupโ puts the processes in the cgroup you specify--cgroup-optโ sets a value in the specified cgroup option--cgroup-dir-modeโ sets the permission for the cgroup directory (default is700)--namespaceโ runs in a new namespace under the rootfs you specify ๐ฆ--namespace-keep-mountโ keeps the mountpoint you specify inside your namespace--nsโ runs in a new namespace under the rootfs you specify--namespace-netโ adds a network namespace ๐--ns-netโ adds a network namespace--enable-proxy-protocolโ enables PROXY1 protocol support (only for http parsers!) ๐ฏ--reuse-portโ enables theREUSE_PORTflag on the socket (BSD only) ๐--tcp-fast-openโ enables theTCP_FASTOPENflag on TCP sockets with the qlen value you give--tcp-fastopenโ enables theTCP_FASTOPENflag on TCP sockets with the qlen value you give--tcp-fast-open-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if it's supported ๐--tcp-fastopen-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if it's supported--zergโ attaches to a zerg server ๐--zerg-fallbackโ falls back to normal sockets if the zerg server isn't available--zerg-serverโ enables the zerg server on the UNIX socket you specify--cronโ adds a cron task โฒ๏ธ--cron2โ adds a cron task (key=valsyntax)--unique-cronโ adds a unique cron task--cron-harakiriโ sets the maximum time (in seconds) we wait for a cron command to complete โ--legion-cronโ adds a cron task that's runnable only when the instance is a lord of the legion you specify ๐--cron-legionโ adds a cron task that's runnable only when the instance is a lord of the legion you specify--unique-legion-cronโ adds a unique cron task runnable only when the instance is a lord of the legion you specify--unique-cron-legionโ adds a unique cron task runnable only when the instance is a lord of the legion you specify--loopโ selects the uWSGI loop engine ๐--loop-listโ lists the enabled loop engines--loops-listโ lists the enabled loop engines--worker-execโ runs the command you specify as a worker ๐ง--worker-exec2โ runs the command you specify as a worker (after thepost_forkhook)--attach-daemonโ attaches a command/daemon to the master process (heads up: the command has to not go in the background!)--attach-control-daemonโ attaches a command/daemon to the master process (the command has to not go in background), and when the daemon dies, the master dies too ๐--smart-attach-daemonโ attaches a command/daemon to the master process managed by a pidfile (the command has to daemonize)--smart-attach-daemon2โ attaches a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize)--legion-attach-daemonโ same as--attach-daemonbut the daemon only runs on the legion lord node ๐--legion-smart-attach-daemonโ same as--smart-attach-daemonbut the daemon runs only on the legion lord node--legion-smart-attach-daemon2โ same as--smart-attach-daemon2but the daemon runs only on the legion lord node--daemons-honour-stdinโ doesn't change the stdin of external daemons to/dev/null๐ซถ--attach-daemon2โ theattach-daemonkeyval variant (supports smart modes too)--pluginsโ loads uWSGI plugins ๐--pluginโ loads uWSGI plugins--need-pluginsโ loads uWSGI plugins (exits on error) ๐จ--need-pluginโ loads uWSGI plugins (exits on error)--plugins-dirโ adds a directory to the uWSGI plugin search path ๐๏ธ--plugin-dirโ adds a directory to the uWSGI plugin search path--plugins-listโ lists the enabled plugins--plugin-listโ lists the enabled plugins--autoloadโ tries to automatically load plugins when unknown options are found ๐ต๏ธ--dlopenโ blindly loads a shared library ๐--allowed-modifiersโ comma separated list of the allowed modifiers--remap-modifierโ remaps a request modifier from one id to another--dump-optionsโ dumps the full list of available options ๐๏ธ--show-configโ shows the current config reformatted as ini โจ--binary-append-dataโ returns the content of a resource to stdout for appending to auwsgibinary (fordata://usage)--printโ a simple print ๐จ๏ธ--iprintโ a simple print, but the immediate version โก--exitโ forcesexit()of the instance ๐ช--cflagsโ reports the uWSGI CFLAGS (super useful for building external plugins) ๐ ๏ธ--dot-hโ dumps theuwsgi.hused for building the core (useful for building external plugins)--config-pyโ dumps theuwsgiconfig.pyused for building the core (useful for building external plugins)--build-pluginโ builds a uWSGI plugin for the current binary ๐๏ธ--versionโ prints the uWSGI version ๐ท๏ธ--response-headers-limitโ sets the response header maximum size (default:64k)
and that's the whole thing bestie, you made it to the end ๐ this page is from uwsgi_alarm_curl version 2.0.31-debian, dated July 2026, and it's the UWSGI_ALARM_CURL(1) manual page ๐ซถ now go configure something iconic, mwah ๐
๐
๐ฆ where this page comes from
- ubuntu stonking: uwsgi-plugin-alarm-curl 2.0.31-6build1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms