servitsy

Small, local HTTP server for static files

MIT License

Downloads
411
Stars
3

servitsy

Small, local HTTP server for static files.

  • Small: no dependencies, 26 kilobytes gzipped.
  • Local: designed for local development workflows.
  • Static: serves files and directory listings.

Usage

npx servitsy [directory] [options]

[!NOTE] servitsy is a command-line tool, published as a npm package. It requires Node.js version 18 or higher, or a compatible runtime like Deno or Bun.

# Running with Bun
bunx servitsy

# Running with Deno
deno run --allow-net --allow-read --allow-sys npm:servitsy

Calling servitsy without options will:

  • serve the current directory at http://localhost:8080 (listening on hostname 0.0.0.0);
  • try the next port numbers if 8080 is not available;
  • serve index.html files for folders, and .html files when the extension was omitted in the URL;
  • serve directory listings (for folders without an index file).

Options

You can configure servitsy's behavior with options. For example:

# Serve current folder on port 3000, with CORS headers
npx servitsy -p 3000 --cors

# Serve 'dist' folder and disable directory listings
npx servitsy dist --dir-list false
  • Use npx servitsy --help for an overview of available options.
  • Read doc/options.md for details and examples.

Changelog

See doc/changelog.md for the release history.

License

This package is licensed under the MIT license.

Alternatives

[!WARNING] servitsy is not designed for production. There are safer and faster tools to serve a folder of static HTML to the public. See Apache, Nginx, @fastify/static, etc.

For local testing, here are a few established alternatives you may prefer, with their respective size:

Package Version Dependencies Installed size†
servitsy 0.3.3 0 128 kB
servor 4.0.2 0 144 kB
sirv-cli 3.0.0 12 396 kB
serve 14.2.3 89 7.6 MB
http-server 14.1.1 45 8.9 MB

If size and dependency count is not a concern and you want something stable and battle-tested, I recommend serve and http-server.

Otherwise, servor, sirv-cli or servitsy might work for you.

† Installed size is the uncompressed size of the package and its dependencies (as reported by du on macOS; exact size may depend on the OS and/or filesystem).