marb

command module
v0.0.0-...-12ff338 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2022 License: MIT Imports: 11 Imported by: 0

README

marb

marb is a highly opinionated HTTP server for static sites. To give you a hint of just how opinionated it is: marb will load all the files in memory and that's it. There's no hot-reloading: you need to restart it on content update.

All files are gzipped, except for cases when the gzipped version results in a bigger file size. Rudimentary caching is supported via the Last-Modified and If-Modified-Since headers.

Usage

Here I'll refer to marb, which is the output of running go build. Generally you can replace marb with go run main.go and get the same results.

Here's how you can run marb, using all of its options:

marb -root /path/to/site -404 404.html -index main.html -bind host:1234 -https -name example.com -addrHeader X-Forwarded-For

Below you'll see the list of options and their defaults, which you can get any time by running marb -h:

  -404 string
        fallback file on error 404, relative to the root
  -addrHeader string
        HTTP header which contains the client address
  -bind string
        the address to bind to (default "0.0.0.0:7890")
  -https
        force HTTPS, based on X-Forwarded-Proto header
  -index string
        index file name (default "index.html")
  -name string
        server name, used for HTTPS redirects (e.g example.com)
  -root string
        the root directory to serve files from (default "/var/www/")

Using with Docker

The Dockerfile in this repo is the one used to build the image, which lives in https://hub.docker.com/r/00eg/marb.

If you want to run marb in a Docker instance, below you'll find an example Dockerfile:

FROM 00eg/marb
COPY ./public/ /var/www/
EXPOSE 7890
ENTRYPOINT ["/bin/marb", "-404", "404.html", "-https"]

The above Dockerfile will copy files in ./public to the /var/www/ directory, which is the default root directory. It exposes port 7890, which is the port marb listens on by default, and runs /bin/marb -404 404.html which specifies a file to serve on error 404. It also enables forcing HTTPS, by redirecting requests that come via HTTP. This depends on the presence of X-Forwarded-Proto header.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL