Weborf(1)
๐ Weborf(1) โ General Commands Manual ๐
okay bestie, sit down, hydrate, and let me tell you about weborf โ the little webserver that could. This is the manual page for it, section 1 of the general commands manual, and by the end you're gonna be running servers like it's nothing. periodt. ๐ซถ
โจ NAME โจ
weborf โ Minimal webserver ๐ธ
โจ SYNOPSIS โจ
weborf [options]
โจ DESCRIPTION โจ
So. Weborf is a minimal webserver. It also has a limited support for webdav (yes, lowkey, it does webdav things ๐).
This manual page documents Weborf's command-line parameters โ every single one, no skipping, we don't do that here. ๐
And the legal tea: Weborf is released under the GNU General Public License version 3. Iconic. ๐
โจ OPTIONS โจ
๐ซ Options: ๐ซ
-b,--basedirโ Must be followed by a valid directory. Weborf will use this directory as its root directory, and won't send files located in parent dirs. BUT โ and this is the plot twist โ it is still possible for server-side scripts to read contents located anywhere on the filesystem. Links are also a workaround to exit from the base directory. Defaults to/srv/www. ๐-a,--authโ Must be followed by a unix socket listened by a program who will handle authentication. See the website for more details. ๐-c,--cgiโ Must be followed by a list (separated with commas and without spaces) of CGI formats and the binary to execute that format. For example:.php,/usr/bin/php-cgi,.sh,/usr/bin/sh-cgiIn/etc/weborf.confthere is a'cgi'directive, corresponding to this option. It is used when launching weborf as SystemV daemon. ๐ง-C,--cacheโ Must be followed by a directory that will be used to store cached files. To flush the cache (empty that directory) you must delete the files in the directory. ๐๏ธ-T,--inetdโ Must be specified when using weborf withinetdorxinetd. It will be still necessary to specify the used port, to pass the correct value to the CGI scripts. The-udirective will be ignored. Daemon-dmode should not be used. ๐ค-t,--tarโ If used, instead of sending directory listing when requesting a directory, weborf will send atar.gzfile with the content of that directory. It is used mainly to share files and preserving their permissions. It cannot be used together with https. ๐-Y,--yesexecโ When used, weborf will enable CGI. โ-m,--mimeโ When used, weborf will send theContent-Typeheader. It is strongly advised to use it when using weborf as production server because some browsers rely on this field. This value will not affect the CGI pages. ๐ฎ-i,--ipโ Must be followed by a valid IP address (v6 or v4, depending on how weborf was compiled. Runweborf -hto know it), and weborf will accept only connections directed to that specific IP. If the IP address provided isn't used by a network device on the host, weborf will terminate. By default weborf listens to all IP addresses on the local host. ๐-k,--capsโ Shows some compile-time options in a machine-readable format. ๐ค-p,--portโ Must be followed by a valid port number (between1and65535), and weborf will listen to incoming connection on the specified port. If the port is already used weborf will terminate. To use low port numbers (less than1024) it is necessary to execute the process as root. Thus it isn't a good idea to run a webserver with root privileges, so it is possible to specify another user. ๐ช-S,--certโ Path to the SSL certificate. Enables https. Requires a key to be passed as well. ๐-K,--keyโ Path to the SSL key. Enables https. Requires a certificate to be passed as well. ๐๏ธ-V,--virtualโ Enables weborf to use virtualhosts. The basedir supplied with-bwill be the default one (will be used if the requested host is unknown). Every virtualhost must be in the formhost[:port]=basedir. The port must be specified if the port used is different than80. And the basedir must end with a/. To separate many virtualhosts, use a comma, and avoid spaces. To make weborf use different virtualhosts on different ports, it will be necessary to launch many weborf's processes. This can now be achieved easily by creating multiple configuration files and using the systemd units likeweborf@cfgfile.conf๐๏ธ-I,--indexโ Must be followed by a list (separated with commas and without spaces) of index files. Weborf will try to load an index file following the order they're listed, and if none is found it will list the content of the directory. In/etc/weborf.confthere is an'indexes'directive, corresponding to this option. It is used when launching weborf as SystemV daemon. ๐-u,--uidโ Must be followed by a valid uid, different from0. Weborf will use this user to do his work, but will bind to the network port with the previous user. This mechanism is meant to let users execute it as root and use port80, and then let it run without root privileges. ๐งโ๐ป-g,--gidโ Must be followed by a valid gid, different from0. Weborf will use this user to do his work, but will bind to the network port before changing. ๐ฅ-P,--propfindโ When used, thePROPFINDmethod will be enabled even if no authentication is in use. USE WITH CAUTION. โ ๏ธ-dโ Runs weborf as a daemon. It will not terminate when its father process terminates, and it will leave the shell free to receive commands. ๐
โจ SCRIPTING โจ
Weborf is able to send dynamically generated pages using php-cgi (if installed). When a filename ends with ".php", weborf will use php to execute this file before sending it to the client. The -c switch will override the default behavior. It is also possible to create scripts or binaries in other languages, just read rfc3875 to know how to handle parameters. ๐โจ
โจ RETURN VALUE โจ
okay so when weborf exits, the number it hands you actually means something. no cap:
0โ Normal termination occurred after a signal, a daemonization or a print version and exit or so on... ๐1โ Basedir is not a directory ๐2โ Invalid IP address ๐3โ Port already in use ๐ง4โ Invalid port number ๐ข5โ Authentication socket doesn't exist or is not a unix socket ๐6โ Too many indexes provided as parameter to-Ior to-c. IncreasingMAXINDEXCOUNTin the fileoptions.hand recompiling can solve the problem. But providing a reasonable amount of index file names would be a better solution. ๐ญ7โ Unable to allocate memory ๐ง9โ Unable to change UID ๐10โ Error with cache directory ๐๏ธ19โ Invalid parameters on command line ๐ซ
โจ SIGNALS โจ
SIGUSR1โ Prints the internal status of the socket's queue and threads on the standard output ๐ก
โจ SEE ALSO โจ
โจ VERSION โจ
Weborf1.6 ๐
โจ WEB โจ
https://ltworf.codeberg.page/weborf/ ๐
โจ AUTHORS โจ
- Salvo "LtWorf" Tomaselli
<tiposchi@tiscali.it> - Salvo Rinaldi
<salvin@anche.no>
and that's the whole page, bestie ๐ซถ this was Minimal webserver, dated Nov 19, 2025, and honestly? she ate. go run a webserver. slay. ๐ ๐ธโจ
๐ฆ where this page comes from
- ubuntu resolute: weborf 1.6-1 ยท GPL-3.0-or-later
- ubuntu stonking: weborf 1.6-1build1 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms