A simple zero-configuration command-line http server with support for SPAs

Usage no npm install needed!

<script type="module">
  import actraDevelopmentOssHttpServer from 'https://cdn.skypack.dev/@actra-development-oss/http-server';


build status dependencies status npm license

http-server: a command-line http server

http-server is a simple, zero-configuration command-line http server. It is powerful enough for production usage, but it's simple and hackable enough to be used for testing, local development, and learning.

Installing globally:

Installation via npm:

 npm install http-server -g

This will install http-server globally so that it may be run from the command line.


 http-server [path] [options]

[path] defaults to ./public if the folder exists, and ./ otherwise.

Now you can visit http://localhost:8080 to view your server

Note: Caching is on by default. Add -c-1 as an option to disable caching.

Available Options:

-p <port> Port to use (defaults to 8080)

-a <address> Address to use (defaults to

-d Show directory listings (defaults to 'True')

-i Display autoIndex (defaults to 'True')

-f <path> or --fallback=<path> Enable fallback handling by redirecting failed requests (404) to the given URL

-g or --gzip When enabled (defaults to 'False') it will serve ./public/some-file.js.gz in place of ./public/some-file.js when a gzipped version of the file exists and the request accepts gzip encoding.

-e [ext] or --ext[=ext] Default file extension if none supplied (defaults to 'html' when -e or --ext is specified without giving an extension)

-s or --silent Suppress log messages from output

--cors[=headers] Enable CORS via the Access-Control-Allow-Origin header, optionally specify additionally allowed headers as comma-separated list

-o [url] Open browser window after starting the server, optionally specify the full URL (including protocol and host) to open

-c[seconds] Set cache time (in seconds) for cache-control max-age header, e.g. -c10 for 10 seconds (defaults to '3600'). To disable caching, use -c-1.

-U or --utc Use UTC time format in log messages.

-P <url> or --proxy=<url> Proxies all requests which can't be resolved locally to the given url. e.g.: -P http://someurl.com

-S or --ssl Enable https.

-C [path] or --cert[=path] Path to ssl cert file (default: cert.pem).

-K [path] or --key[=path] Path to ssl key file (default: key.pem).

-r [string] or --robots[=string] Provide a /robots.txt (whose content defaults to 'User-agent: *\nDisallow: /')

-h or --help Print this list and exit.

Magic Files

  • index.html will be served as the default file to any directory requests.
  • 404.html will be served if a file is not found. This can be used for Single-Page App (SPA) hosting to serve the entry page.


Checkout this repository locally, then:

$ npm i
$ node bin/http-server

Now you can visit http://localhost:8080 to view your server

You should see the turtle image in the screenshot above hosted at that URL. See the ./public folder for demo content.