web-servers

Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.

Discussion on reddit.

Python 2.x

$ python -m SimpleHTTPServer 8000

Python 3.x

$ python -m http.server 8000

Twisted (Python)

$ twistd -n web -p 8000 --path .

Or:

$ python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

Depends on Twisted.

Ruby

$ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

Credit: Barking Iguana

Ruby 1.9.2+

$ ruby -run -ehttpd . -p8000

Credit: nobu

adsf (Ruby)

Credit: twome

No directory listings.

Sinatra (Ruby)

No directory listings.

Perl

Credit: Anonymous Monk

Plack (Perl)

Credit: miyagawa

Mojolicious (Perl)

No directory listings.

http-server (Node.js)

Note: This server does funky things with relative paths. For example, if you have a file /tests/index.html, it will load index.html if you go to /test, but will treat relative paths as if they were coming from /.

node-static (Node.js)

No directory listings.

PHP (>= 5.4)

Credit: /u/prawnsalad and MattLicense

No directory listings.

Erlang

Credit: nivertech (with the addition of some basic mime types)

No directory listings.

busybox httpd

Credit: lvm

webfs

Depends on webfs.

IIS Express

Depends on IIS Express.

Credit: /u/fjantomen

No directory listings. /path must be an absolute path.

Meta

If you have any suggestions, drop them in the comments below or on the reddit discussion. To get on this list, a solution must:

  1. serve static files using your current directory (or a specified directory) as the server root,

  2. be able to be run with a single, one line command (dependencies are fine if they're a one-time thing),

  3. serve basic file types (html, css, js, images) with proper mime types,

  4. require no configuration (from files or otherwise) beyond the command itself (no framework-specific servers, etc)

  5. must run, or have a mode where it can run, in the foreground (i.e. no daemons)

Last updated

Was this helpful?