&| 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 newer for [HTTPS]. |& &| Updated | 2020-09-08 (v0.18.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] <>Application | Webserver