in ,

Big list of http static server one-liners, Hacker News

Big list of http static server one-liners, Hacker News




Each of these commands will run an ad hoc http static server in your current (or specified) directory, available athttp: // localhost:

. Use this power wisely.

Discussion on reddit.

$ python -m SimpleHTTPServer

$ python -m http.server


$ twistd -n web -p –path****************************


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

Depends onTwisted.

************************** Ruby
$ ruby ​​-rwebrick -e


************Ruby 1.9.2

$ ruby ​​-run -ehttpd (****************************.**************************************************************************

Credit: (nobu)




$ gem install adsf# (install dependency) $ adsf -p


No directory listings.

Sinatra (Ruby)

$ gem install sinatra# (install dependency) $ ruby ​​-rsinatra -e 'set: public_folder, "."; set: port, (************************** '(********************

No directory listings.

$ cpan HTTP :: Server :: Brick ()' () ************

Credit:Anonymous Monk

Plack************** (Perl)
$ cpan Plack # ************************** (install dependency) $ plackup -MPlack :: App :: Directory -e 'Plack :: App :: Directory->new (root=>".");'**************************** -p


********** Mojolicious

**************** (Perl)

$ cpan Mojolicious :: Lite (**************************************** (install dependency) $ perl -MMojolicious :: Lite -MCwd -e'app->static->paths ->[0]=getcwd; app->start' daemon -l http: //* (******************************: () ******************

No directory listings.

****************** (Node .js)
$ npm install -g http-server

Note: This server does funky things with relative paths. For example, if you have a file/ tests / index.html




$ npm install -g node-static

No directory listings.



Credit:/ u / prawnsaladand 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

Credit: lvm


Depends on webfs.


: C:****************** ("C: Program Files (x IIS Express iisexpress.exe****************** / path: C: M (yWeb / port:) ******************************************************************************

Depends on IIS Express.


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

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 (ie no daemons) (****************************************************************

  ******************************************************** (Read More)