/indigo-filer

A simple web server for static content

Primary LanguageC++BSD 2-Clause "Simplified" LicenseBSD-2-Clause

GENERAL NOTES

Indigo Filer can serve a virtual root directory that is composed of zero or
more shares. This "virtual" root directory, that clients see, is not a real
directory on the filesystem. Its entries are user-specified shares, which do
not have to be located in the same parent directory. A share can be any
filesystem object (file, directory, etc.). Every share has a unique name and a
path. Shared objects do not need to exist on the filesystem - in that case they
do not appear in listings, and requests for them result in error responses.
Shares are specified as settings in the [VirtualRoot] section in the
configuration file with the following format:
<share-name> = <share-path>
Share names may not contain the '/' character.
Share names may be percent-encoded, which is necessary for the '.' character.
Share paths may be percent-encoded too.
NOTE: If Server.root is set to a filesystem path, the root directory listing
will contain entries of the real root, but requests with an URI other than "/"
that match a share name will be served from the matching share.


KNOWN ISSUES

* A limitation in the POCO library prevents idle threads from being signaled to
terminate if a high connection rate suddenly drops to zero. This may happen on
a lightly loaded server after a short burst of requests. Normally, this should
not be a problem, because this is only a temporary condition and the idle
threads are terminated when new connections arrive. Also, the idle threads do
not consume CPU time or large amounts of memory. To work around this, you can
use the Server.collectIdleThreads option by setting it to "yes". This is safe
and works in most cases, but is disabled by default, because it uses
undocumented behavior. Try enabling this option if the process often has a
large number of threads when new connections are not arriving.


CONFIGURATION
The configuration is split into several files:
 * indigo-filer.ini - general server settings
 * mime.types.user - user defined MIME types

The most common general settings and their defaults are provided with the stock
indigo-filer.ini file that comes with the distribution. Less common settings
are not listed there by default. They are shown below. Here is the list of
undocumented settings:
 * Server.maxKeepaliveRequests - max keepalive requests per thread; default: 0
 * Server.idleTime - max thread idle time, in seconds; default: 60
 * Server.threadIdleTime - internal POCO-specific, in seconds; default: 10
 * Server.collectIdleThreads - see the known issues section above; default: no