&| What | '''DustMote-Snit''' |&
&| Where | https://github.com/tclssg/tclssg/tree/master/lib/dustmote-snit/ |&
&| Description | An extended version of the [DustMote] web server wrapped in a [Snit] type. |&
&| Platforms | *BSD, Linux, macOS, Windows |&&| Prerequisites | Tcl 8.5 or newer, [Tcllib], optionally [tls%|%TclTLS] 1.6.7 or nlatewer for [HTTPS]. |&
&| Updated | 20203-096-0816 (v0.189.0) |&
&| License | Public domain (like DustMote itself) |&
&| Contact | [dbohdan] |&
DustMote-Snit is developed as part of [Tclssg]. It adds the following new features to DustMote:
* Basic logging (to stdout);
* ''Content-Type'';
* Custom route handlers;
* Directory listings;
* Path jailing (albeit not seriously tested for security);
* ''Content-Range'' (resumed transfers);
* [TLS] support;
* Every server is a [Snit] object;
* Multiple servers can run in the same Tcl interpreter;
* When run as the [main script]:
** Command line options are processed to configure the server;
** The server can be reloaded by accessing `/reload` and shut down by accessing `/quit`.
Known bugs and limitations:
* Canceled transfers are not logged correctly.
* Security: consider DustMote-Snit insecure and do not let it run unsupervised where you don't know who might access it.
** Usage (from the command line) **
`usage: ./dustmote-snit.tcl -root value ?-host localhost? ?-port 8080? ?-default index.html? ?-verbose 1? ?-dirlists 1? ?-certfile public.pem? ?-keyfile private.pem? ?-tls 0?`
You can use the following shell command to generate a set of temporary SSL certificates with [OpenSSL]:
`openssl req -x509 -newkey rsa:2048 -nodes -keyout private.pem -out public.pem -subj '/CN=localhost' -days 1`
** Discussion **
** See also **
* [DustMote]
<<categories>>Application | Webserver