logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

webfsd - a lightweight http server

Author

       Gerd Knorr <kraxel@bytesex.org>
       FreeBSD port by Charles F. Randall <cfr@pobox.com>

Description

       This  is  a  simple  http server for purely static content.  You can use it to serve the content of a ftp
       server via http for example.  It is also nice to export some files the  quick  way  by  starting  a  http
       server in a few seconds, without editing some config file first.

Name

       webfsd - a lightweight http server

Options

-h     Print  a  short  help  text  and  the default values for all options.  If used as last option, the
              printout will reflect command line choices.

       -4     Use IPv4 only.

       -6     Use IPv6 only.

       -d     Enable debug output.

       -s     Write a start/stop notice and serious errors to the syslog.  Specify this option twice  to  get  a
              verbose log (additional log events like dropped connections).

       -tsec Set network timeout to >sec< seconds.

       -cn   Set the number of allowed parallel connections to >n<.  This is a per-thread limit.

       -an   Configure  the  size  of  the  directory  cache.   Webfs  has a cache for directory listings.  The
              directory will be reread if the cached copy is more than one hour old  or  if  the  mtime  of  the
              directory has changed.  The mtime will be updated if a file is created or deleted.  It will not be
              updated if a file is only modified, so you might get outdated time stamps and file sizes.

       -j     Do not generate a directory listing if the index-file isn't found.

       -yn   Set the number of threads to spawn (if compiled with thread support).

       -pport
              Listen on port >port< for incoming connections.

       -rdir Set document root to >dir<.

       -Rdir Set document root to >dir< and chroot to >dir< before start serving files.  Note that this affects
              the path for the access log file and pidfile too.

       -ffile
              Use >file< as index file for directories.  If a client asks for a directory, it will get >file< as
              response  if such a file exists in the directory and a directory listing otherwise.  index.html is
              a frequently used filename.

       -nhostname
              Set the hostname which the server should use (required for redirects).

       -iip  Bind to IP-address >ip<.

       -llogLog all requests to the logfile >log< (common log format).  Using "-"  as  filename  makes  webfsd
              print the access log to stdout, which is only useful together with the -F switch (see below).

       -Llog Same  as above, but additional flush every line.  Useful if you want monitor the logfile with tail
              -f.

       -mfile
              Read mime types from >file<.  Default is /etc/mime.types.  The mime types are read before chroot()
              is called (when started with -R).

       -kfile
              Use >file< as pidfile.

       -uuser
              Set uid to >user< (after binding to the tcp port).  This option is allowed for root only.

       -ggroup
              Set gid to >group< (after binding to the tcp port).  This option is allowed for root only.

       -F     Don't run as daemon.  Webfsd will not fork into background, not detach from  terminal  and  report
              errors to stderr.

       -buser:pass
              Set  user+password  for  the  exported files.  Only a single username/password combination for all
              files is supported.

       -esecExpire documents after >sec< seconds.  You can use that to make sure  the  clients  receive  fresh
              data if the content within your document root is updated in regular intervals.  Webfsd will send a
              Expires:  header  set  to  last-modified time plus >sec< seconds, so you can simply use the update
              interval for >sec<.

       -v     Enable virtual hosts.  This has the effect that webfsd  expects  directories  with  the  hostnames
              (lowercase)  under document root.  If started this way: "webfsd -v -r /home/web", it will look for
              the file /home/web/ftp.foobar.org/path/file when asked for http://ftp.FOObar.org:8000/path/file.

       -xpath
              Use >path< as CGI directory.  >path< is interpreted relative to the document root.  Note that  CGI
              support is limited to GET requests.  The first character in the path string must be a slash!

       -~servdir
              Enable  access  to  user specific subdirectories, uniformly located below >subdir<.  A request for
              "/~user/path/file", is rewritten "$HOME/servdir/path/file", and is  then  checked  for  existence.
              Here  the  user's home directory is retrieved from the system in the standard manner from $HOME in
              the environment.  Mark well, that user specific requests  are  disabled  completely,  should  this
              switch  be missing.  Since user directories are most probably located outside of the server's root
              directory, care is needed with this option.

       -SSecure web server mode. Warning: This mode is strictly for https.

       -Cpath
              File to use as SSL certificate. This file must be in chained PEM format, and  may  contain  server
              certificate as well as RSA key, but the latter can equally well be a separate entity, see -K.

       -Kpath
              File that contains the private key, if the key is not bundled with the certificate.

       -Apath
              Optional file containing CA-certificate and certificate chain.

       -V     Apply a verification procedure to the client certificate and chain.  These must, if this option is
              chosen,  be  supplied  by  any client.  Each chain member must pass verification, and must in turn
              verify the next chain member. The validity time for the client certificate is checked.

       -Qciphers
              Specify acceptable cipher priorities for handshake, data exchange,  etc.   The  default  value  is
              NORMAL.

       Webfsd  can  be installed suid root (although the default install isn't suid root).  This allows users to
       start webfsd chroot()ed and to bind to ports below 1024.  Webfsd will  drop  root  privileges  before  it
       starts serving files.

       Access  control  simply  relies on Unix file permissions.  Webfsd will serve any regular file and provide
       listings for any directory it is able to open(2).

Synopsis

webfsd[options]

See Also