You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bashttpd is a simple, configurable web server written in bash
Requirements:
bash, any recent version should work
socat or netcat to handle the underlying sockets (I.e., 'socat TCP4-LISTEN:8080 EXEC:/usr/local/bin/bashttpd', or 'netcat -lp 8080 -e ./bashttpd')
A healthy dose of insanity
Getting started:
Running bashttpd for the first time will generate a default configuration file, bashttpd.conf
Review bashttpd.conf and configure it as you want.
Run bashttpd using netcat or socat, as listed above.
Features:
Serves text and HTML files
Shows directory listings
Allows for configuration based on the client-specified URI
Limitations:
Does not support authentication
Doesn't strictly adhere to the HTTP spec.
Security:
Only rudimentary input handling. We would not running this on a public machine.
HTTP protocol support:
403: Returned when a directory is not listable, or a file is not readable
400: Returned when the first word of the first line is not GET
200: Returned with valid content
Content-type: Bashttpd uses /usr/bin/file to determine the MIME type to sent to the browser
1.0: The server doesn't support Host: headers or other HTTP/1.1 features - it barely supports HTTP/1.0!
As always, your patches/pull requests are welcome!