[Discussion on reddit](http://www.reddit.com/r/webdev/comments/1fs45z/list_of_ad_hoc_http_server_oneliners/). Each of these commands will run an ad hoc http static file server in your current (or specified) directory. Use this power wisely. **Python 2.x** ```shell $ python -m SimpleHTTPServer 8000 ``` **Python 3.x** ```shell $ python -m http.server 8000 ``` **Twisted (Python)** Depends on [Twisted](http://twistedmatrix.com/trac/wiki/Downloads). ```shell $ 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()' ``` **Ruby** Credit: [Barking Iguana](http://barkingiguana.com/2010/04/11/a-one-line-web-server-in-ruby/) ```shell $ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start' ``` **adsf (Ruby)** Credit: [@twome](https://gist.github.com/willurd/5720255/#comment-841393) No directory listings. ```shell $ gem install adsf # install dependency $ adsf -p 8000 ``` **Perl** Credit: [Anonymous Monk](http://www.perlmonks.org/?node_id=865239) ```shell $ cpan HTTP::Server::Brick # install dependency $ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start' ``` **Plack (Perl)** Credit: [miyagawa](http://advent.plackperl.org/2009/12/day-5-run-a-static-file-web-server-with-plack.html) ```shell $ cpan Plack # install dependency $ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000 ``` **Mojolicious (Perl)** No directory listings. ```shell $ cpan Mojolicious::Lite # install dependency $ perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000 ``` **Node.js #1** ```shell $ npm install -g http-server # install dependency $ http-server -p 8000 ``` **Node.js #2** No directory listings. ```shell $ npm install -g node-static # install dependency $ static -p 8000 ``` **PHP >= 5.4** Credit: [/u/prawnsalad](http://www.reddit.com/r/webdev/comments/1fs45z/list_of_ad_hoc_http_server_oneliners/cad9ew3), [@MattLicense](https://gist.github.com/willurd/5720255#comment-841131) No directory listings. ```shell $ php -S 127.0.0.1:8000 ``` **Erlang** Credit: [@nivertech](https://gist.github.com/willurd/5720255/#comment-841166) (with the addition of some basic mime types) No directory listings. ```shell $ 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"}]}]).' ``` **IIS Express** Credit: [/u/fjantomen](http://www.reddit.com/r/webdev/comments/1fs45z/list_of_ad_hoc_http_server_oneliners/cada8no) No directory listings. `/path` *must* be an absolute path. Depends on [IIS Express](http://www.iis.net/learn/extensions/introduction-to-iis-express/iis-express-overview). ```shell C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000 ``` # 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)