QUARK(1)

NAME
quark - simple static web server

SYNOPSIS
quark -p port [-h host] [-u user] [-g group] [-s num] [-t num] [-d dir] [-l] [-i file] [-v vhost] ... [-m map] ...
quark -U file [-p port] [-u user] [-g group] [-s num] [-t num] [-d dir] [-l] [-i file] [-v vhost] ... [-m map] ...

DESCRIPTION
quark is a simple HTTP GET/HEAD-only web server for static content. It supports virtual hosts (see -v), explicit redirects (see -m), directory listings (see -l), conditional "If-Modified-Since"-requests (RFC 7232), range requests (RFC 7233) and well-known URIs (RFC 8615), while refusing to serve hidden files and directories.

OPTIONS

-d dir
    Serve dir after chrooting into it. The default is ".".

-g group
    Set group ID when dropping privileges, and in socket mode the group of the socket file, to the ID of group. The default is "nogroup".

-h host
    Use host as the server hostname. The default is the loopback interface (i.e. localhost).

-i file
    Set file as the directory index. The default is "index.html".

-l  Enable directory listing.

-m map
    Add the URI prefix mapping rule specified by map, which has the form "from to [chost]", where each element is separated with spaces (0x20) that can be escaped with '\'.

    The prefix from of all matching URIs is replaced with to, optionally limited to the canonical virtual host chost. If no virtual hosts are given, chost is ignored.

-p port
    In host mode, listen on port port for incoming connections. In socket mode, use port for constructing proper virtual host redirects on non-standard ports.

-U file
    Create the UNIX-domain socket file, listen on it for incoming connections and remove it on exit.

-s num
    Set the number of connection slots per worker thread to num. The default is 64.

-t num
    Set the number of worker threads to num. The default is 4.

-u user
    Set user ID when dropping privileges, and in socket mode the user of the socket file, to the ID of user. The default is "nobody".

-v vhost
    Add the virtual host specified by vhost, which has the form "chost regex dir [prefix]", where each element is separated with spaces (0x20) that can be escaped with '\'.

    A request matching the virtual host regular expression regex (see regex(3)) is redirected to the canonical host chost, if they differ, using the directory dir as the root directory, optionally prefixing the URI with prefix. If any virtual hosts are specified, all requests on non-matching hosts are discarded.

CUSTOMIZATION
quark can be customized by creating a custom config.h from config.def.h and (re)compiling the source code. This keeps it fast, secure and simple.

AUTHORS
Laslo Hunhold <dev@frign.de>