node package manager



Build Status XO code style Slack Channel

Ever wanted to share a certain directory on your network by running just a command? Then this module is exactly what you're looking for: It provides a neat interface for listing the directory's contents and switching into sub folders.

In addition, it's also awesome when it comes to serving static sites. If a directory contains an index.html, serve will automatically render it instead of serving directory contents, and will serve any .html file as a rendered page instead of file's content as plaintext.



Install it (needs at least Node LTS):

npm install -g serve

And run this command in your terminal:

serve [options] <path>


Run this command to see a list of all available options:

serve help


If you set the --auth flag, the package will look for a username and password in the SERVE_USER and SERVE_PASSWORD environment variables.

As an example, this is how such a command could look like:

SERVE_USER=leo SERVE_PASSWORD=1234 serve --auth


You can also use the package inside your application. Just load it:

const serve = require('serve')

And call it with flags (run this command for the full list):

const server = serve(__dirname, {
  port: 1337,
  ignore: ['node_modules']

Later in the code, you can stop the server using this method:



  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Uninstall serve if it's already installed: npm uninstall -g serve
  3. Link it to the global module directory: npm link

After that, you can use the serve command everywhere. Here's a list of issues that are great for beginners.


This project used to be called "list" and "micro-list". But thanks to TJ Holowaychuk handing us the new name, it's now called "serve" (which is much more definite).


Leo Lamprecht (@notquiteleo) - ▲ZEIT