Welcome to the Merecat web server. This is the default landing page for new installations. Seeing this means the web server is working and the owner has not set up any pages of their own yet.


Merecat started out as a pun at Mongoose, but is now useful for actual web serving purposes. However, it is not a real Meerkat, merely another copycat, forked from thttpd.

The limited feature set makes it very quick. Virtual hosts and the URL-traffic-based throttling are just about its only features. The resulting footprint makes Merecat very suitable for small and embedded systems.


Jef Poskanzer for creating thttpd. Anthony G. Basile for sthttpd, and all the fixes. SunShot for the Mere Cat meme, huge props!



-c CGI    CGI pattern to allow, default is "**.cgi|/cgi-bin/*"
-d DIR    Optional DIR to change into after chrooting to WEBROOT
-g        Use global password file, .htpasswd
-h        This help text
-l LEVEL  Set log level: none, err, info, notice*, debug
-n        Run in foreground, do not detach from terminal
-p PORT   Port to listen to, default 80
-r        Chroot into WEBROOT
-s        Check symlinks so they don't point outside WEBROOT
-t FILE   Throttle file
-u USER   Username to drop to, default: nobody
-v        Enable virtual hosting with WEBROOT as base
-V        Show Merecat httpd version

'WEBROOT' defaults to the current directory
'HOSTNAME' is for virtual hosting (one httpd per hostname)

Note: '-d DIR' is not needed in virtual hosting mode, see
      merecat(8) for more information on virtual hosting.
Bug reports: https://github.com/troglobit/merecat/issues

Virtual Hosts

Setting up virtual hosts on a server can be a bit of a hassle with other web servers. With Merecat you simply create directories for each host in the web server root:

       |-- icons/
       |-- cgi-bin/
       |-- errors/
       |    `-- err404.html
       |-- ftp.example.com/
       `-- www.example.com/

Then set virtual-host=true in /etc/merecat.conf. Now the web server root, here /var/www/, no longer serves files, only virtual host directories do, execpt for the shared files in icons/, cgi-bin/, and errors/.

On Linux bind mounts can be used to set up FTP and web access to the same files. Example /etc/fstab:

/srv/ftp  /var/www/ftp.example.com  none  defaults,bind  0  0