diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..03db58a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +secret/* +app +config diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8d39cec --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM alpine:3.12 + +RUN apk update \ + && apk add coreutils grep nmap-ncat socat jq bash file curl + +WORKDIR /app +COPY . . + +EXPOSE 1337 +VOLUME /app/config +VOLUME /app/app + +ENTRYPOINT /app/http.sh diff --git a/http.sh b/http.sh index 0f870e3..aa57c21 100755 --- a/http.sh +++ b/http.sh @@ -1,5 +1,54 @@ #!/bin/bash trap ctrl_c INT + +if [[ ! -f "config/master.sh" ]]; then + mkdir -p config + cat < "config/master.sh" +#!/bin/bash +declare -A cfg + +cfg[ip]=127.0.0.1 # IP address to bind to - use 0.0.0.0 to bind to all + +cfg[http]=true # enables/disables listening on HTTP +cfg[port]=1337 # HTTP port + +cfg[namespace]='app' + +cfg[root]='webroot/' +cfg[index]='index.shs' +cfg[autoindex]=true + +cfg[auth_required]=false +cfg[auth_realm]="Laura is cute <3" + +cfg[ssl]=false # enables/disables listening on HTTPS +cfg[ssl_port]=8443 +cfg[ssl_cert]='' +cfg[ssl_key]='' + +cfg[extension]='shs' +cfg[extra_headers]='server: HTTP.sh/0.94 (devel)' + +cfg[title]='HTTP.sh 0.94' + +cfg[php_enabled]=false # enable PHP script evalutaion (requires PHP) +cfg[python_enabled]=false # enable Python script evalutaion (requires Python) + +cfg[log]='log' # filename + +# proxy functionality is very WiP +cfg[proxy]=false +cfg[proxy_url]='http://example.com/' + +# mail handler config +cfg[mail]="" +cfg[mail_server]="" +cfg[mail_password]="" +cfg[mail_ssl]=true +cfg[mail_ignore_bad_cert]=false +PtrcIsCute +fi + source config/master.sh function ctrl_c() {