(forked from unix4lyfe.org). Now with Basic-Auth support
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


(forked from https://unix4lyfe.org/git/darkhttpd)

How to build darkhttpd

Simply run:

$ make
$ make debian # will produce a .deb package

How to run darkhttpd

Serve /var/www/htdocs on the default port (80 if running as root, else 8080):

$ ./darkhttpd /var/www/htdocs

Serve ~/public_html on port 8081:

$ ./darkhttpd ~/public_html --port 8081

Only bind to one IP address (useful on multi-homed systems):

$ ./darkhttpd ~/public_html --addr

Serve at most 4 simultaneous connections:

$ ./darkhttpd ~/public_html --maxconn 4

Log accesses to a file:

$ ./darkhttpd ~/public_html --log access.log

Chroot for extra security (you need root privs for chroot):

$ ./darkhttpd /var/www/htdocs --chroot

Use default.htm instead of index.html:

$ ./darkhttpd /var/www/htdocs --index default.htm

Add mimetypes - in this case, serve .dat files as text/plain:

$ cat extramime
text/plain  dat
$ ./darkhttpd /var/www/htdocs --mimetypes extramime

Ignore indexing file with specified extension

$ ./darkhttpd /var/www/htdocs --ignored-extensions .ico

Also you can specified multiple extensions separated by ,, the maximum extension number is 64

$ ./darkhttpd /var/www/htdocs --ignored-extensions .ico,.txt

Drop privileges:

$ ./darkhttpd /var/www/htdocs --uid www --gid www

Use acceptfilter (FreeBSD only):

$ kldload accf_http
$ ./darkhttpd /var/www/htdocs --accf

Run in the background and create a pidfile:

$ ./darkhttpd /var/www/htdocs --pidfile /var/run/httpd.pid --daemon

Web forward (301) requests for some hosts:

$ ./darkhttpd /var/www/htdocs --forward example.com http://www.example.com \
  --forward secure.example.com https://www.example.com/secure

Web forward (301) requests for all hosts:

$ ./darkhttpd /var/www/htdocs --forward example.com http://www.example.com \
  --forward-all http://catchall.example.com

Command-line options can be combined:

$ ./darkhttpd ~/public_html --port 8080 --addr

To see a full list of command-line options, run darkhttpd without any arguments:

$ ./darkhttpd