microscope v0.4.0 Microscope

Microscope is a simple static web server built using cowboy.

It’s original purpose was to provide an easy way to test your static websites, but it’s also useful as a temporary server for file sharing over HTTP.

Getting started

Use Microscope.start_link/2 to start the web server.

# Example:
{:ok, pid} =
  Microscope.start_link("/home/user/www", [base: "/base", port: 8080])

Then the HTTP server will start listening on port 8080, and when the user requests /base/path/to/file, the server will respond with the contents of /home/user/www/path/to/file on your system.

Summary

Types

A keyword list containing options for Microscope

Functions

Starts Microscope simple static web server

Types

options()
options() :: [port: pos_integer, base: String.t, callbacks: [module], index: boolean]

A keyword list containing options for Microscope

Functions

start_link(webroot, options \\ [])
start_link(String.t, options) :: {:ok, pid}

Starts Microscope simple static web server.

By default, the server will start listening on port 8080, and serve files located under the webroot directory. This behavior can be customized by using the options below.

Options

The second argument of this function expects a keyword list containing zero or more options listed below:

  • port: A port the web server listens on. The default value is 8080.
  • base: A string that represents the base URL. Any URL with the form of <base>/path/to/file will be mapped to <webroot>/path/to/file; any other requests will result in 404 error. The default value is "/".
  • index: See below.
  • callbacks: See below.

The “index” Option

When a user requests a directory, Microscope looks for either index.html or index.htm under that directory, and serves the file if found. If neither of them exists, how the server responds is determined by this option.

  • If index is set to true, Microscope will generate an HTML page containing a list of subdirectories and files and respond with 200 OK.
  • If index is set to false, the user will receive a 404 error.

The default value for this option is false.

The “callbacks” Option

The callbacks option expects a list of modules, each module implementing Microscope.Callback behaviour. For example, if you want a line of access log printed on every requests, use the built-in Microscope.Logger module. The default value is an empty list.