DustMote with Snit

Difference between version 46 and 47 - Previous - Next
&| 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