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.
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.
-p <port>
Port to use (defaults to 8080)
-a <address>
Address to use (defaults to 0.0.0.0)
-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.
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.