Simple file server to serve current directory

Question:

I’m looking for a dead simple bin that I can launch up in the shell and have it serve the current directory (preferably not ..), with maybe a -p for specifying port. As it should be a development server, it should by default allow connections from localhost only, maybe with an option to specify otherwise. The simpler, the better.

Not sure which tags to use here.

Asked By: Reactormonk

||

Answers:

There is the Perl app App::HTTPThis or I have often used a tiny Mojolicious server to do this. See my blog post from a while back.

Make a file called say server.pl. Put this in it.

#!/usr/bin/env perl

use Mojolicious::Lite;

use Cwd;
app->static->paths->[0] = getcwd;

any '/' => sub {
  shift->render_static('index.html');
};

app->start;

Install Mojolicious: curl get.mojolicio.us | sh and then run morbo server.pl.

Should work, and you can tweak the script if you need to.

Answered By: Joel Berger

For Node, there’s http-server:

$ npm install -g http-server
$ http-server Downloads -a localhost -p 8080
Starting up http-server, serving Downloads on port: 8080
Hit CTRL-C to stop the server

Python has:

  • Python 3: python -m http.server --bind 127.0.0.1 8080
  • Python 2: python -m SimpleHTTPServer 8080

Note that Python 2 has no --bind option, so it will allow all connections (not just from localhost).

Answered By: Blender
python3 -m http.server

or if you don’t want to use the default port 8000

python3 -m http.server 3333

or if you want to allow connections from localhost only

python3 -m http.server --bind 127.0.0.1

See the docs.


The equivalent Python 2 commands are

python -m SimpleHTTPServer

python -m SimpleHTTPServer 3333

There is no --bind option.

See the Python 2 docs.

Answered By: David Pope

Using Twisted Web:

twistd --pidfile= -n web --path .  --port 8080

--pidfile= disables the PID file. Without it a twistd.pid file will be created in the current directory. You can also use --pidfile ''.

Answered By: Cristian Ciupitu
Categories: questions Tags: , , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.