mirror of
https://github.com/Luzifer/gziphttp.git
synced 2024-12-20 19:21:17 +00:00
Very simple HTTP server for serving static files with ability for gzip compression if supported by the client
.gitignore | ||
.repo-runner.yaml | ||
go.mod | ||
go.sum | ||
History.md | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md |
Luzifer / gziphttp
Very simple HTTP server for serving static files with ability for gzip compression if supported by the client.
Usage
# gziphttp -h
Usage of gziphttp:
--listen string Port/IP to listen on (default ":3000")
--log-level string Log level (debug, info, warn, error, fatal) (default "info")
-d, --serve-dir string Directory to serve files from (default ".")
--version Prints current version and exits
Here is an example usage inside a Docker container containing (quite large) compiled JavaScript files:
FROM golang:alpine as go
RUN set -ex \
&& apk add git \
&& go get -v github.com/Luzifer/gziphttp
FROM node:alpine as node
COPY . /src
WORKDIR /src
RUN set -ex \
&& npm ci \
&& npm run build
FROM alpine:latest
COPY --from=go /go/bin/gziphttp /usr/local/bin/
COPY --from=node /src/dist /usr/local/share/webtotp
EXPOSE 3000/tcp
CMD ["gziphttp", "-d", "/usr/local/share/webtotp"]
In this case gziphttp
serves compressed files to most (all modern) browsers which ensures the download size of the JavaScript files does not hurt as much as it would without gzip compression.