mohws: Modular Haskell Web Server

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

A web server with a module system and support for CGI. Based on Simon Marlow's original Haskell Web Server.

[Skip to Readme]


Versions 0.1, 0.2,, 0.2.1,,,,,,,,,,
Change log None available
Dependencies base (>=4.3 && <5), bytestring (>=0.9 && <0.11), containers (>=0.1 && <0.7), data-accessor (>=0.2 && <0.3), directory (>=1.0 && <1.4), explicit-exception (>=0.1 && <0.2), filepath (>=1.1 && <1.5), ghc (>=6.8 && <6.9), html (>=1.0 && <1.1), HTTP (>=4000.0.4 && <4001), network (>=2.6 && <2.7), network-uri (>=2.6 && <2.7), old-locale (>=1.0 && <1.1), old-time (>=1.0 && <1.2), parsec (>=2.1 && <3.2), process (>=1.0 && <1.7), transformers (>=0.2 && <0.6), unix (>=2.3 && <2.8), utility-ht (>=0.0.3 && <0.1) [details]
License BSD-3-Clause
Copyright Simon Marlow, Bjorn Bringert
Author Simon Marlow, Bjorn Bringert <>
Maintainer Henning Thielemann <>
Category Web
Home page
Source repo head: darcs get
this: darcs get --tag
Uploaded by HenningThielemann at 2018-09-01T07:38:48Z


[Index] [Quick Jump]


Automatic Flags

Build server with dynamically loaded plugins


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Readme for mohws-

[back to package description]
This is a web server written in Haskell, based on Simon Marlow's original
Haskell Web Server. It has a module system and can run CGI programs. 

The original program is described in:
Developing a high-performance web server in Concurrent Haskell,
Simon Marlow, 
Journal of Functional Programming, 12(4+5):359--374, July 2002

The original version available from:

A more conservative update of the original HWS is available from:

=== Build ===

You can use either Cabal or make to build HWS.

==== With Cabal ====

$ runghc Setup.hs configure
$ runghc Setup.hs build

This produces the binary ``dist/build/hws/hws``.

==== With make ====

$ make

This produces the binary ``./hws``.

=== Configure ===

There is a config file example in ``conf/httpd.conf``. The server should run with the 
example settings, but it would not be very usable. See the example file
for more information about the configuration parameters.

=== Run ===

usage: hws [option...]
  -f filename   --config=filename        default: "conf/httpd.conf"
  -d directory  --server-root=directory  default: "."

The server root is the directory which hws uses as base for the
configuration and log file paths.

Files are served from the DocumentRoot.

==== CGI ====

Files which have the filename suffix ``.cgi`` are run as CGI programs.

==== Debug ====

Look in the error log file (``log/error.log`` by default) for any error messages.
If this does not help, try setting LogLevel to debug (in the config file).