Skip to content

Very simple HTTP server for serving static files with ability for gzip compression if supported by the client

License

Notifications You must be signed in to change notification settings

Luzifer/gziphttp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Report Card

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.

About

Very simple HTTP server for serving static files with ability for gzip compression if supported by the client

Topics

Resources

License

Stars

Watchers

Forks