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
A purely bash web server, no socat, netcat, etc...
Requirement
bash 5.2 (The patch will be included in bash5.2 - Alpha release already contains the patch)
if bash version is under 5.2, patched loadable accept builtin (https://git.savannah.gnu.org/cgit/bash.git/tree/examples/loadables/accept.c) is needed, you have to apply accept.patch to your loadable accept.c file which is existed in bash source code, and than build and install the loadable accept builtin into BASH_LOADABLE_PATH specified in bash-server.sh
How to
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:
serveHtml (needs DOCUMENT_ROOT envvars) - This will serve the static files
script file - The script need a file as first argument which will be source. The file will need a function named runner, which will be run on each request
Basic authentication can be enabled by env var: BASIC_AUTH, accounts and passwords are stored in the file specified in $BASIC_AUTH_FILE
Usage
Simple explication of various functions that could be used.
Session Handling
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
Cookie Handling
Functions:
cookieSet $1
Send the cookie
Example: cookieSet "BASHSESSID=12345; max-age=5000"
HTTP Handling
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"
Websocket
!!!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
About
A purely bash web server, no socat, netcat, etc...