Skip to content
/ servitsy Public

Small, local HTTP server for static files

License

Notifications You must be signed in to change notification settings

fvsch/servitsy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f2589fd · Jan 24, 2025

History

83 Commits
Nov 15, 2024
Nov 13, 2024
Nov 24, 2024
Dec 12, 2024
Dec 12, 2024
Dec 12, 2024
Dec 12, 2024
Nov 14, 2024
Sep 16, 2024
Dec 12, 2024
Sep 24, 2024
Sep 12, 2024
Dec 12, 2024
Jan 24, 2025
Jan 24, 2025
Nov 24, 2024

Repository files navigation

servitsy

Small, local HTTP server for static files.

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

Web browser screenshot of a directory listing for the servitsy source code, served by servitsy on localhost:8080

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 (will prompt for read access)
deno run --allow-net --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 --no-list
  • 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.5.0 0 104 kB
servor 4.0.2 0 144 kB
sirv-cli 3.0.0 12 396 kB
serve 14.2.4 87 7.5 MB
http-server 14.1.1 52 9.4 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 servitsy, sirv-cli or servor 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).