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.
$ python -m SimpleHTTPServer 8000$ python -m http.server 8000$ 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 -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'Credit: Barking Iguana
$ ruby -run -ehttpd . -p8000Credit: nobu
$ gem install adsf # install dependency
$ adsf -p 8000Credit: twome
No directory listings.
$ gem install sinatra # install dependency
$ ruby -rsinatra -e'set :public_folder, "."; set :port, 8000'No directory listings.
$ cpan HTTP::Server::Brick # install dependency
$ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'Credit: Anonymous Monk
$ cpan Plack # install dependency
$ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000Credit: miyagawa
$ cpan Mojolicious::Lite # install dependency
$ perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000No directory listings.
$ npm install -g http-server # install dependency
$ http-server -p 8000Note: 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 /.
$ npm install -g node-static # install dependency
$ static -p 8000No directory listings.
$ php -S 127.0.0.1:8000Credit: /u/prawnsalad and MattLicense
No directory listings.
$ 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 -f -p 8000Credit: lvm
$ webfsd -F -p 8000Depends on webfs.
C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000Depends on IIS Express.
Credit: /u/fjantomen
No directory listings. /path must be an absolute path.
Use Command line instread powershell
If you have any suggestions, drop them in the comments below or on the reddit discussion. To get on this list, a solution must:
- serve static files using your current directory (or a specified directory) as the server root,
- be able to be run with a single, one line command (dependencies are fine if they're a one-time thing),
- serve basic file types (html, css, js, images) with proper mime types,
- require no configuration (from files or otherwise) beyond the command itself (no framework-specific servers, etc)
- must run, or have a mode where it can run, in the foreground (i.e. no daemons)