Skip to content

Instantly share code, notes, and snippets.

@7dir
Forked from willurd/web-servers.md
Last active February 5, 2017 20:42
Show Gist options
  • Save 7dir/4f87c2094fb836bb503f0a72d91fa81c to your computer and use it in GitHub Desktop.
Save 7dir/4f87c2094fb836bb503f0a72d91fa81c to your computer and use it in GitHub Desktop.
Big list of http static server one-liners

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: 8001, DocumentRoot: Dir.pwd).start'

Credit: Barking Iguana

Ruby 1.9.2+

ruby -run -ehttpd . -p8000

Credit: nobu

Sinatra (Ruby)

ruby -rsinatra -e'set :public_folder, "."; set :port, 8000'

http-server (Node.js)

npm install -g http-server   # install dependency
http-server -p 8000

node-static (Node.js)

npm install -g node-static   # install dependency
static -p 8000

No directory listings.

PHP (>= 5.4)

php -S 127.0.0.1:8000

Credit: /u/prawnsalad and MattLicense

No directory listings.

Erlang

$ erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

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

No directory listings.

busybox httpd

busybox httpd -f -p 8000

Credit: lvm

webfs

$ webfsd -F -p 8000

Depends on webfs.

IIS Express

"c:\Program Files\IIS Express\iisexpress.exe" /path:C:\ga\v\src\blog /port:8000

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)

OCaml is

opam install cohttp async cohttp-server-async

opam install cohttp lwt ssl cohttp-server-lwt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment