UWSGI_ALARM_XMPP(1)
๐ธ NAME ๐ธ
uwsgi_alarm_xmpp โ the fast (pure C), self-healing, developer-friendly WSGI server. This is the manual page for it, bestie, and yeah there's a LOT ๐ซถ
โจ SYNOPSIS โจ
uwsgi-core [options...]
๐ DESCRIPTION ๐
Okay so, buckle up, because this is literally a menu of every socket, worker, config and emperor knob this server has. Every single flag is listed right here, fr fr โ nothing skipped, no crumbs. Let's get into it. ๐
๐ Sockets & Protocols
-s,--socketโ bind to the specified UNIX/TCP socket using the default protocol-s,--uwsgi-socketโ bind to the specified UNIX/TCP socket using the uwsgi protocol--suwsgi-socketโ bind to the specified UNIX/TCP socket using the uwsgi protocol over SSL--ssl-socketโ bind to the specified UNIX/TCP socket using the uwsgi protocol over SSL--http-socketโ bind to the specified UNIX/TCP socket using the HTTP protocol--http-socket-modifier1โ force the specified modifier1 when using the HTTP protocol--http-socket-modifier2โ force the specified modifier2 when using the HTTP protocol--http11-socketโ bind to the specified UNIX/TCP socket using the HTTP 1.1 (Keep-Alive) protocol--https-socketโ bind to the specified UNIX/TCP socket using the HTTPS protocol--https-socket-modifier1โ force the specified modifier1 when using the HTTPS protocol--https-socket-modifier2โ force the specified modifier2 when using the HTTPS protocol--fastcgi-socketโ bind to the specified UNIX/TCP socket using the FastCGI protocol--fastcgi-nph-socketโ bind to the specified UNIX/TCP socket using the FastCGI protocol (nph mode)--fastcgi-modifier1โ force the specified modifier1 when using the FastCGI protocol--fastcgi-modifier2โ force the specified modifier2 when using the FastCGI protocol--scgi-socketโ bind to the specified UNIX/TCP socket using the SCGI protocol--scgi-nph-socketโ bind to the specified UNIX/TCP socket using the SCGI protocol (nph mode)--scgi-modifier1โ force the specified modifier1 when using the SCGI protocol--scgi-modifier2โ force the specified modifier2 when using the SCGI protocol--raw-socketโ bind to the specified UNIX/TCP socket using the RAW protocol--raw-modifier1โ force the specified modifier1 when using the RAW protocol--raw-modifier2โ force the specified modifier2 when using the RAW protocol--puwsgi-socketโ bind to the specified UNIX/TCP socket using the 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)
๐ง Workers & Harakiri
-p,--processesโ spawn the specified number of workers/processes-p,--workersโ spawn the specified number of workers/processes--thunder-lockโ serializeaccept()usage (if possible)-t,--harakiriโ set the harakiri timeout--harakiri-verboseโ enable verbose mode for harakiri--harakiri-graceful-timeoutโ the interval between a 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 the 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 the backtrace depth--mule-harakiriโ set the harakiri timeout for mule tasks
๐ Config Loading & Placeholders
-x,--xmlconfigโ load config from an xml file-x,--xmlโ load config from an xml file--configโ load configuration using the pluggable system--fallback-configโ re-exec uwsgi with the specified config when the exit code is 1--strictโ enable strict mode (placeholder cannot be used) โ ๏ธ--skip-zeroโ skip the check of file descriptor 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)
๐ Option Logic (the if/for girlies)
--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 / Whitelist Context
--blacklistโ set options blacklist context--end-blacklistโ clear options blacklist context--whitelistโ set options whitelist context--end-whitelistโ clear options whitelist context
๐ Write Errors & Signal Vibes
--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 onwrite()/writev()
๐ Templating & Includes
--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)
๐ Daemon Lifecycle
-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
๐ฅ Sizing, Buffers & Memory
-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
๐ Socket Modes & Permissions
-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
๐งต Threads & Process Names
-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
โญ App Loading & Master
-i,--single-interpreterโ do not use multiple interpreters (where available)--need-appโ exit if no app can be loaded-M,--masterโ enable master process--honour-stdinโ do not remap stdin to/dev/null
๐ The Emperor Era
--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 (default3seconds)--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 it at ๐--emperor-tyrantโ puts the Emperor into Tyrant mode ๐--emperor-tyrant-nofollowโ while it's checking uid/gid in Tyrant mode, it will not follow symlinks ๐ซ๐--emperor-statsโ runs the Emperor stats server ๐--emperor-stats-serverโ also runs the Emperor stats server (same thing, other name) ๐--early-emperorโ spawns the emperor as soon as possible โก--emperor-broodlordโ runs the emperor in BroodLord mode ๐ฒ--emperor-throttleโ sets the throttling level, in milliseconds, for vassals that are acting out (default1000) ๐ค--emperor-max-throttleโ sets the max throttling level, in milliseconds, for those badly-behaving vassals (default3 minutes) ๐--emperor-magic-execโ prefixes vassals' config files withexec://when they have the executable bit โจ--emperor-on-demand-extensionโ searches for a text file named vassal name + extension, and that file holds the on demand socket name ๐--emperor-on-demand-extโ same search, short-name twin of the one above ๐--emperor-on-demand-directoryโ enables on demand mode, binding to the unix socket inside the directory you specify, named like the vassal +.socket๐--emperor-on-demand-dirโ the short-name version of that same on-demand-directory behaviour ๐--emperor-on-demand-execโ uses the output of the command you specify as the on demand socket name, and the vassal name is passed as the one and only argument ๐ฏ--emperor-extra-extensionโ allows the extension you specify in the Emperor; the vassal gets called with--config๐--emperor-extra-extโ short-name twin of the extra-extension thing ๐--emperor-no-blacklistโ disables the Emperor blacklisting subsystem ๐ซ--emperor-use-cloneโ usesclone()instead offork(), passing theunshare()flags you specify ๐งฌ--emperor-graceful-shutdownโ uses vassals graceful shutdown during ragnarok ๐--emperor-capโ sets vassals capability ๐ฉ--vassals-capโ sets vassals capability ๐ฉ--vassal-capโ sets vassals capability ๐ฉ--imperial-monitor-listโ lists the enabled imperial monitors ๐--imperial-monitors-listโ lists the enabled imperial monitors ๐--vassals-inheritโ adds config templates to vassals config (uses--inherit) ๐ฅ--vassals-includeโ includes config templates into vassals config (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 reinforcements when it's overloaded ๐--vassal-sos-backlogโ asks the emperor for sos when the backlog queue has more items in it than the value you specify ๐--vassals-setโ automatically sets the option you name (via--set) for every single vassal ๐--vassal-setโ automatic set-for-every-vassal, short-name edition ๐--heartbeatโ announces healthiness to the emperor ๐--reload-mercyโ sets the maximum time, in seconds, that we wait for workers and other processes to die during reload/shutdown โณ--worker-reload-mercyโ sets the maximum time, in seconds, that a worker can take to reload/shutdown (default is60) โณ--mule-reload-mercyโ sets the maximum time, in seconds, that a mule can take to reload/shutdown (default is60) โณ--exit-on-reloadโ forces exit even when a reload has been requested ๐ช--die-on-termโ exits instead of doing a brutal reload onSIGTERM๐--force-gatewayโ forces the spawn of the first registered gateway with no master in play ๐ช-h,--helpโ shows this help ๐-h,--usageโ shows this help ๐--print-symโ prints the content of the binary symbol you specify ๐--print-symbolโ prints the content of the binary symbol you specify ๐-r,--reaperโ callswaitpid(-1,...)after each request to get rid of zombies ๐ง-R,--max-requestsโ reloads workers after the amount of managed requests you specify ๐--max-requests-deltaโ adds(worker_id * delta)to themax_requestsvalue of each worker โ--min-worker-lifetimeโ number of seconds a worker must run before it can be reloaded (default is10) โฑ๏ธ--max-worker-lifetimeโ reloads workers after the amount of seconds you specify (default is disabled) โฑ๏ธ--max-worker-lifetime-deltaโ adds(worker_id * delta)seconds to themax_worker_lifetimevalue of each worker โ-z,--socket-timeoutโ sets 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 dodge duplicates ๐--persistent-ipcsemโ does not remove ipcsem's on shutdown ๐งท-A,--sharedareaโ creates a raw shared memory area of the number of pages you specify (note: it supports keyval too) ๐ง--safe-fdโ does not close the file descriptor you specify ๐ก๏ธ--fd-safeโ does not close the file descriptor you specify ๐ก๏ธ--cacheโ creates a shared cache containing the elements you give it ๐๏ธ--cache-blocksizeโ sets 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 only for debug) ๐--cache-udp-serverโ binds the cache udp server (used only for set/update/delete) to the socket you specify ๐ก--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 shared queue ๐ถ--queue-blocksizeโ sets 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โ does not get verbose with spooler tasks ๐คซ--spooler-max-tasksโ sets the maximum number of tasks to run before recycling a spooler โป๏ธ--spooler-harakiriโ sets harakiri timeout for spooler tasks ๐ก๏ธ--spooler-frequencyโ sets spooler frequency ๐๏ธ--spooler-freqโ sets spooler frequency ๐๏ธ--muleโ adds a mule ๐ด--mulesโ adds the number of mules you specify ๐ด--farmโ adds a mule farm ๐--mule-msg-sizeโ sets 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 ๐ถ--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 locked ๐--flock-waitโ locks the file you specify before starting, and waits if it's 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 (before privileges drop) ๐--pidfile2โ creates a pidfile (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_rootandput_oldmust be separated with a space) ๐--pivot_rootโpivot_root()s to the directories you specify (new_rootandput_oldmust be separated with a space) ๐--uidโsetuidto the user/uid you specify ๐ค--gidโsetgidto the group/gid you specify ๐ฅ--add-gidโ adds the group id you specify to the process credentials โ--immediate-uidโsetuidto the user/uid you specify, IMMEDIATELY โก--immediate-gidโsetgidto the group/gid you specify, IMMEDIATELY โก--no-initgroupsโ disables the additional groups set viainitgroups()๐ซ--capโ sets process capability ๐ฉ--unshareโunshare()s part of the processes and puts it in a new namespace ๐งฌ--unshare2โunshare()s part of the processes and puts it in 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 โญ๏ธ--setnsโ joins a namespace created by an external uWSGI instance ๐--setns-preopenโ opens/proc/self/nsas soon as possible and caches the fds ๐๏ธ--jailedโ flags this instance as jailed, which forces thepost_jailhooks to actually run. no skipping bestie ๐--reforkโ does anotherfork()after privileges drop. perfect for jailing setups ๐ฐ--re-forkโ same thing, anotherfork()after privileges drop. jailing setups stay winning โจ--refork-as-rootโ does anotherfork()before privileges drop. jailing setups, you know the vibe ๐--re-fork-as-rootโ yep, anotherfork()before privileges drop. jailing setups again, iconic ๐ธ--refork-post-jailโ anotherfork()after jailing. jailing setups, slay ๐ฆ--re-fork-post-jailโ anotherfork()after jailing. same energy, jailing setups ๐--hook-asapโ run that specified hook as soon as possible. like, immediately. no cap โก--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 enters 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 enters the accepting phase, but only once per-instance โ๏ธ--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:<file> <action>๐--hook-emperor-startโ run the specified hook when the Emperor starts ๐โจ--hook-emperor-stopโ run the specified hook when the Emperor sends a stop message ๐--hook-emperor-reloadโ run the specified hook when the Emperor sends 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. same thing, different name bestie ๐ซถ--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-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 ๐--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. yeah it's the same thing ๐ซถ--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. another nickname ๐ก--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โฑ๏ธ--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-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 ๐๐--iniโ load config from an ini file ๐-y,--yamlโ load config from a yaml file ๐-y,--ymlโ load config from a yaml file. same vibe, shorter name โจ-j,--jsonโ load config from a json file ๐งพ-j,--jsโ load config from a json file. twin ๐ซถ--weightโ weight of the instance (used by clustering/lb/subscriptions) โ๏ธ--auto-weightโ set weight of the instance automatically (used by clustering/lb/subscriptions) ๐คโ๏ธ--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โ 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 ๐--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 the specified megabytes ๐--reload-on-rssโ reload if rss memory is higher than the specified megabytes ๐--evil-reload-on-asโ force the master to reload a worker if its address space is higher than the specified megabytes ๐๐--evil-reload-on-rssโ force the master to reload a worker if its rss memory is higher than the 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โ pings a signal when the file you picked gets modified/touched โจ syntax goes likefile signal, so like, both of those, in that order bestie ๐--fs-reloadโ graceful reload the second that filesystem object you named gets modified ๐ฆ--fs-brutal-reloadโ brutal reload when that filesystem object gets modified ๐ค no soft launch, it just goes--fs-signalโ raises a uwsgi signal when the specified filesystem object is modified, syntax:file signal๐ฃ--check-mountpointโ destroys the instance if a filesystem is no longer reachable (genuinely useful for reliable Fuse management, lowkey essential) ๐--mountpoint-checkโ same energy fr fr: destroys the instance if a filesystem is no more reachable (useful for reliable Fuse management)--check-mountโ destroys the instance if a filesystem is no more reachable (useful for reliable Fuse management) ๐--mount-checkโ destroys the instance if a filesystem is no more reachable (useful for reliable Fuse management) ๐--propagate-touchโ the over-engineering option, made for systems with flaky signal management ๐ iykyk--limit-postโ limits the request body ๐--no-orphansโ automatically kills workers if the master dies, and yes it can be dangerous for availability, so clock that โ ๏ธ--prioโ sets processes/threads priority ๐--cpu-affinityโ sets cpu affinity ๐--post-bufferingโ sets the size in bytes after which it buffers to disk instead of memory ๐พ--post-buffering-bufsizeโ sets the buffer size forread()in post buffering mode ๐--body-read-warningโ sets how much memory allocation (in megabytes) for the request body is allowed before it starts printing a warning ๐จ--upload-progressโ enables creation of.jsonfiles in the directory you pick during a file upload ๐--no-default-appโ do not fallback to the default app, nope ๐ โโ๏ธ--manage-script-nameโ automatically rewritesSCRIPT_NAMEandPATH_INFO๐ช--ignore-script-nameโ ignoresSCRIPT_NAME๐--catch-exceptionsโ reports the exception as http output (discouraged, use only for testing โ like, only testing bestie) ๐งช--reload-on-exceptionโ reloads a worker the moment an exception is raised ๐--reload-on-exception-typeโ reloads a worker when a specific exception type is raised ๐ฏ--reload-on-exception-valueโ reloads a worker when a specific exception value is raised ๐ฅ--reload-on-exception-reprโ reloads a worker when a specific exception type+value (language-specific) is raised ๐ซถ--exception-handlerโ adds an exception handler ๐งค--enable-metricsโ turns on the metrics subsystem ๐--metricโ adds a custom metric โจ--metric-thresholdโ adds a metric threshold/alarm ๐จ--metric-alarmโ adds a metric threshold/alarm (same thing, different name, iconic) ๐--alarm-metricโ adds a metric threshold/alarm, yes again, they really said options for days ๐--metrics-dirโ exports metrics as text files into the directory you name ๐๏ธ--metrics-dir-restoreโ restores the last value taken from the metrics dir โป๏ธ--metric-dirโ exports metrics as text files to the specified directory (the singular twin of the above) ๐--metric-dir-restoreโ restores the last value taken from the metrics dir โป๏ธ--metrics-no-coresโ disables generation of cores-related metrics ๐ซ--udpโ runs the udp server on the address you give it ๐ก--statsโ enables the stats server on the specified address ๐--stats-serverโ enables the stats server on the specified address (same vibe) ๐--stats-httpโ prefixes the stats server json output with http headers ๐--stats-minifiedโ minifies the statistics json output ๐๏ธ--stats-minโ minifies the statistics json output, short and sweet โ๏ธ--stats-pushโ pushes the stats json to the destination you specify ๐--stats-pusher-default-freqโ sets the default frequency of stats pushers โฑ๏ธ--stats-pushers-default-freqโ sets the default frequency of stats pushers (plural moment) โฐ--stats-no-coresโ disables generation of cores-related stats ๐--stats-no-metricsโ do not include metrics in stats output ๐ซ--multicastโ subscribes to the specified multicast group ๐ป--multicast-ttlโ sets the multicast ttl โณ--multicast-loopโ sets multicast loop, and the default is1๐--master-fifoโ enables the master fifo ๐๏ธ--notify-socketโ enables the notification socket ๐--subscription-notify-socketโ sets the notification socket for subscriptions ๐ฌ--legionโ becomes a member of a legion ๐ก๏ธ--legion-mcastโ becomes a member of a legion, i.e. a shortcut for multicast โก--legion-nodeโ adds a node to a legion ๐--legion-freqโ sets the frequency of legion packets ๐ถ--legion-toleranceโ sets the tolerance of the legion subsystem ๐ซง--legion-death-on-lord-errorโ declares itself as a dead node for however many seconds you specify if one of the lord hooks fails ๐--legion-skew-toleranceโ sets 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 ๐--legion-setupโ the action to call on legion setup ๐ ๏ธ--legion-deathโ the action to call on legion death (shutdown of the instance) โฐ๏ธ--legion-joinโ the action to call on legion join (the first time quorum is reached) ๐--legion-node-joinedโ the action to call on a new node joining the legion ๐ซ--legion-node-leftโ the action to call on a node leaving the legion ๐ช--legion-quorumโ sets the quorum of a legion ๐ณ๏ธ--legion-scrollโ sets the scroll of a legion ๐--legion-scroll-max-sizeโ sets the max size of the legion scroll buffer ๐ฆ--legion-scroll-list-max-sizeโ sets the max size of the legion scroll list buffer ๐๏ธ--subscriptions-sign-checkโ sets the digest algorithm and certificate directory for the secured subscription system ๐--subscriptions-sign-check-toleranceโ sets the maximum tolerance (in seconds) of clock skew for the secured subscription system โฑ๏ธ--subscriptions-sign-skip-uidโ skips the signature check for the uid you specify when using unix sockets credentials ๐--subscriptions-credentials-checkโ adds a directory to search for subscriptions key credentials ๐--subscriptions-use-credentialsโ enables management ofSCM_CREDENTIALSin subscriptions UNIX sockets ๐--subscription-algoโ sets the load balancing algorithm for the subscription system โ๏ธ--subscription-dotsplitโ tries to fallback to the next part (dot based) in the subscription key ๐ค--subscribe-toโ subscribes to the specified subscription server ๐จ--stโ subscribes to the specified subscription server (the tiny abbreviation, so cute) ๐ฉ--subscribeโ subscribes to the specified subscription server ๐ฎ--subscribe2โ subscribes to the specified subscription server using advanced keyval syntax ๐ง--subscribe-freqโ sends a subscription announce at the interval you specify ๐--subscription-toleranceโ sets tolerance for subscription servers ๐ซถ--unsubscribe-on-graceful-reloadโ forces the unsubscribe request even during a graceful reload ๐--start-unsubscribedโ configures subscriptions but does not send them (useful with master fifo) ๐ค--subscribe-with-modifier1โ forces the specified modifier1 when subscribing โ๏ธ (yes the original says "specififed", we keep it, periodt)--snmpโ enables the embedded snmp server ๐ฒ--snmp-communityโ sets the snmp community string ๐๏ธ--ssl-verboseโ be verbose about SSL errors ๐ข--ssl-verify-depthโ sets the maximum certificate verification depth ๐ต๏ธโโ๏ธ--sniโ adds an SNI-governed SSL context ๐น--sni-dirโ checks forcert/key/client_cafiles in the specified directory and creates a sni/ssl context on demand ๐ช--sni-dir-ciphersโ sets ssl ciphers for thesni-diroption ๐--ssl-enable3โ enables SSLv3, which is insecure, so like, careful โ ๏ธ--ssl-enable-sslv3โ enables SSLv3 (insecure) ๐จ--ssl-enable-tlsv1โ enables TLSv1 (insecure, still, yes) ๐--ssl-optionโ sets a raw ssl option, and it wants a numeric value ๐ข--sni-regexpโ adds an SNI-governed SSL context, but the key is a regexp ๐งฉ--ssl-tmp-dirโ stores ssl-related temp files in the directory you specify ๐๏ธ--check-intervalโ sets the interval (in seconds) of master checks โฐ--forkbomb-delayโ sleeps for the number of seconds you specify when a forkbomb is detected ๐ด--binary-pathโ forces the binary path ๐--privileged-binary-patchโ patches the uwsgi binary with a new command (before privileges drop) ๐ง--unprivileged-binary-patchโ patches the uwsgi binary with a new command (after privileges drop) ๐ช--privileged-binary-patch-argโ patches the uwsgi binary with a new command and arguments (before privileges drop) ๐งฐ--unprivileged-binary-patch-argโ patches the uwsgi binary with a new command and arguments (after privileges drop) ๐งโ๐ง--asyncโ enables async mode with however many cores you specify โก--max-fdโ sets the maximum number of file descriptors, and it requires root privileges ๐--logtoโ sets the logfile/udp address ๐--logto2โ logs to the specified file or udp address after privileges drop ๐--log-formatโ sets an advanced format for request logging ๐จ--logformatโ sets advanced format for request logging (one word, same energy) ๐๏ธ--logformat-strftimeโ applies strftime to logformat output ๐ฐ๏ธ--log-format-strftimeโ applies strftime to logformat output (identical, we love a pair) โณ--logfile-chownโ chowns logfiles ๐ค--logfile-chmodโ chmods logfiles ๐ง--log-syslogโ logs to syslog ๐ฎ--log-socketโ sends logs to the socket you specify ๐--req-loggerโ sets/appends a request logger โ--logger-reqโ sets/appends a request logger (yes, same thing reversed) ๐--loggerโ sets/appends a logger ๐ชต--logger-listโ lists enabled loggers ๐--loggers-listโ lists enabled loggers (plural era) ๐๏ธ--threaded-loggerโ offloads log writing to a thread ๐งต--log-encoderโ adds an item in the log encoder chain โ๏ธ--log-req-encoderโ adds an item in the log req encoder chain ๐--log-drainโ drains (like, does not show) log lines matching the regexp you specify ๐ณ๏ธ--log-filterโ shows only log lines matching the specified regexp ๐--log-routeโ logs to the specified named logger if the regexp applied on the logline matches ๐--log-req-routeโ logs requests to the specified named logger if the regexp applied on the logline matches ๐ค๏ธ--use-abortโ callsabort()on segfault/fpe, which could be useful for generating a core dump ๐งจ--alarmโ creates a new alarm, syntax:<alarm> <plugin:args>๐จ๐
--alarm-cheapโ ๐ธ ok so this one makes uWSGI use the main alarm thread instead of spawning dedicated threads forcurl-based alarms. server said "we're not making a whole new thread for that" ๐--alarm-freqโ tunes the anti-loop alarm system. default is 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โ same description as--alarm-segfault, word for word: raise the specified alarm when the segmentation fault handler is executed ๐โจ--alarm-backlogโ raise the specified alarm when the socket backlog queue is 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 ๐ฌ
bestie there are literally six of these and they all say the exact same thing. the manpage lists all of them, so here they all are. she's thorough, okay, she contains multitudes ๐ซถ
--log-alarmโ raise the specified alarm when a log line matches the specified regexp. syntax is<alarm>[,alarm...] <regexp>๐--alarm-logโ raise the specified alarm when a log line matches the specified regexp, same syntax:<alarm>[,alarm...] <regexp>๐--not-log-alarmโ the skip version: skip the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>๐--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 ๐--alarm-msg-sizeโ set the max size of an alarm message. default is 8192 ๐
โจ the logging era โจ
--log-masterโ delegate logging to the master process ๐--log-master-bufsizeโ set the buffer size for the master logger. heads up: bigger log messages will be truncated โ๏ธ--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 ๐งน--log-maxsizeโ set maximum logfile size ๐ฆ--log-backupnameโ set logfile name after rotation ๐--logdateโ prefix logs with date or a strftime string ๐๏ธ--log-dateโ prefix logs with date or a strftime string ๐๏ธ--log-prefixโ prefix logs with a string ๐ท๏ธ--log-zeroโ log responses without body ๐ซฅ--log-slowโ log requests slower than the specified number of milliseconds ๐--log-4xxโ log requests with a 4xx response ๐ฌ--log-5xxโ log requests with a 5xx response ๐ฅ--log-bigโ log requests bigger than the specified size ๐--log-sendfileโ log sendfile requests ๐ค--log-ioerrorโ log requests with io errors ๐ฅ--log-microsโ report response time in microseconds instead of milliseconds ๐งฎ--log-x-forwarded-forโ use the ip fromX-Forwarded-Forheader instead ofREMOTE_ADDR๐
๐ privileges & where she starts from ๐
--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โ chdir to specified directory before apps loading ๐ช--chdir2โ chdir to specified directory after apps loading ๐ช
๐ธ workers, laziness & the cheaper economy ๐ธ
--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) ๐
๐ฆ routing, my beloved ๐ฆ
--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 with goto) ๐ท๏ธ--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-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 with goto) ๐--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-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 with goto) ๐จ--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-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 with goto) ๐จ--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 pages & websockets & clocks ๐
--error-page-403โ add an error page (html) for managed 403 response ๐ซ--error-page-404โ add an error page (html) for managed 404 response ๐--error-page-500โ add an error page (html) for managed 500 response ๐ฅ--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 ๐
lowkey the clock ones feel like a lil cliffhanger and that's because they ARE. more coming, bestie, don't go anywhere ๐
--clocks-listโ show off every clock that's currently enabled, bestie โโจ--add-headerโ auto-slaps HTTP headers onto the response, no manual labour required ๐--rem-headerโ auto-yeets the specified HTTP header out of the response ๐๏ธ--del-headerโ literally the same thing: auto-removes the specified HTTP header from the response--collect-headerโ stores the specified response header into a request var (syntax:header var) ๐ฅ--response-header-collectโ yep, same energy: stores the specified response header in a request var (syntax:header var)--pull-headerโ stores the specified response header in a request var and pulls it out of the response (syntax:header var) โ it's giving "you can look but you can't keep it"--check-staticโ peek for static files in the directory you named ๐--check-static-docrootโ peek for static files in the requestedDOCUMENT_ROOT--static-checkโ once again, check for static files in the specified directory (twins fr)--static-mapโ maps a mountpoint to a static directory (or a file)--static-map2โ like--static-mapbut it fully appends the requested resource onto the docroot--static-skip-extโ skips the extension you name when doing staticfile checks ๐--static-indexโ if someone asks for a directory, search for the file you specify instead--static-safeโ skips security checks when the file lives under the path you gave--static-cache-pathsโ drops resolved paths into the uWSGI cache for however many seconds you say ๐๏ธ--static-cache-paths-nameโ use the cache you named 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) โ same option, different spelling, iconic behaviour--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 a filename regexp--static-expires-mtimeโ sets theExpiresheader based on a filename regexp and file mtime--static-expires-uriโ sets theExpiresheader based on aREQUEST_URIregexp--static-expires-uri-mtimeโ sets theExpiresheader based on aREQUEST_URIregexp and file mtime--static-expires-path-infoโ sets theExpiresheader based on aPATH_INFOregexp--static-expires-path-info-mtimeโ sets theExpiresheader based on aPATH_INFOregexp and file mtime--static-gzipโ if your regexp matches the static file translation, it goes looking for a gzip version ๐๏ธ--static-gzip-allโ checks for a gzip version of every requested static file--static-gzip-dirโ checks for a gzip version of all requested static files in the dir/prefix you name--static-gzip-prefixโ checks for a gzip version of all requested static files in the dir/prefix you name (same vibe, same job)--static-gzip-extโ checks for a gzip version of all requested static files with the ext/suffix you name--static-gzip-suffixโ checks for a gzip version of all requested static files with the ext/suffix you name--honour-rangeโ turns on 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) โ singular name, same energy--file-serve-modeโ set the static file serving mode--fileserve-modeโ set the static file serving mode (yes bestie, it's the same thing)--disable-sendfileโ disablessendfile()and leans on boring oldread()/write()instead ๐ด--check-cacheโ check for response data in the cache you name (leave it empty for the default cache)--close-on-execโ sets close-on-exec on connection sockets (could be required for spawning processes inside requests)--close-on-exec2โ sets close-on-exec on server sockets (could be required for spawning processes inside requests)--modeโ set a uWSGI custom mode--envโ set an environment variable ๐ฑ--envdirโ load a daemontools-compatible envdir--early-envdirโ load a daemontools-compatible envdir ASAP โก--unenvโ unset an environment variable ๐ซ--vacuumโ tries to remove every generated file/socket when it's done ๐งน--file-writeโ writes the content you give to the file you give (syntax:file=value) before privileges get dropped--cgroupโ put the processes into the cgroup you name--cgroup-optโ set a value in the cgroup option you name--cgroup-dir-modeโ sets permission for the cgroup directory (default is700) ๐--namespaceโ run in a new namespace under the specified rootfs--namespace-keep-mountโ keep the mountpoint you name in your namespace--nsโ run in a new namespace under the specified rootfs (short king ๐)--namespace-netโ add a network namespace--ns-netโ add a network namespace (same one, snappier name)--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โ attach 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 name--cronโ add a cron task โฐ--cron2โ add a cron task (key=valsyntax)--unique-cronโ add a unique cron task--cron-harakiriโ sets the max time (in seconds) we wait for a cron command to finish--legion-cronโ add a cron task that only runs when the instance is a lord of the legion you name โ๏ธ--cron-legionโ add a cron task that only runs when the instance is a lord of the legion you name--unique-legion-cronโ add a unique cron task that only runs when the instance is a lord of the legion you name--unique-cron-legionโ add a unique cron task that only runs when the instance is a lord of the legion you name--loopโ select the uWSGI loop engine ๐--loop-listโ list the loop engines that are enabled--loops-listโ list the loop engines that are enabled (plural, same list)--worker-execโ run the command you name as a worker--worker-exec2โ run the command you name as a worker (after thepost_forkhook)--attach-daemonโ attach a command/daemon to the master process (the command has to not go into the background)--attach-control-daemonโ attach a command/daemon to the master process (the command has to not go into the 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-daemonbut the daemon only runs on the legion lord node--legion-smart-attach-daemonโ same as--smart-attach-daemonbut the daemon only runs on the legion lord node--legion-smart-attach-daemon2โ same as--smart-attach-daemon2but 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 the plugins that are enabled--plugin-listโ list the plugins that are enabled--autoloadโ try to automatically load plugins when it bumps into unknown options โจ--dlopenโ blindly load a shared library ๐--allowed-modifiersโ a comma-separated list of allowed modifiers--remap-modifierโ remap a request modifier from one id to another--dump-optionsโ dump the whole 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 (fordata://usage)--printโ simple print ๐จ๏ธ--iprintโ simple print, immediate version โก--exitโ force anexit()of the instance ๐ช--cflagsโ report the uWSGICFLAGS(useful for building external plugins)--dot-hโ dump theuwsgi.hused for building the core (useful for building external plugins)--config-pyโ dump theuwsgiconfig.pyused for building the core (useful for building external plugins)--build-pluginโ build a uWSGI plugin for the current binary ๐จ--versionโ print the uWSGI version--response-headers-limitโ set the response header maximum size (default:64k)
And that's a wrap on the options, bestie ๐ you just read through a lot of them and honestly? slay. This page is from uwsgi_alarm_xmpp version 2.0.31-debian, dated July 2026, and it's filed under UWSGI_ALARM_XMPP(1). Go forth and sysadmin like the main character you are ๐
๐๐
๐ฆ where this page comes from
- ubuntu stonking: uwsgi-plugin-alarm-xmpp 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