A purely bash web server, no socat, netcat, etc...
bash-server.sh
The port can be set by the env var: HTTP_PORT
The path to accept (Directory) can be set by using: BASH_LOADABLES_PATH (see man bash)
Server Methods:
Basic authentication can be enabled by env var: BASIC_AUTH, accounts and passwords are stored in the file specified in $BASIC_AUTH_FILE
Simple explication of various functions that could be used.
Variables:
SESSION_COOKIE
The name of the cookie : default BASHSESSID
Functions:
sessionStart
Start a session or reuse an existing session
sessionSet $1 $2
Set a session variable
sessionGet $1
Get the value of the given variable
Functions:
cookieSet $1
Send the cookie
Example: cookieSet "BASHSESSID=12345; max-age=5000"
Functions:
httpSendStatus $1
Send the provided http status
Example: httpSendStatus 200
To set Headers, you should add an entry inside the assoc var HTTP_RESPONSE_HEADERS
HTTP_RESPONSE_HEADERS["ExampleHeader"]="The value of the Header"
!!!NOTE: This is still expiremental and only works for sendin data, not receiving!
Functions:
websocketStart FUNCTION
Start the websocket server
websocketStop
Stop the websocket server inside the function