Skip to content

Which Server stack should be used for the CrisisCommunicator?

Varrun Ramani edited this page Jan 6, 2014 · 7 revisions

Scenario

The CrisisCommunicator is a webapp that is deployed on individual nodes and serves exclusively to localhost. Each node interacts with the others via a mesh network.

Everything has to be extremely lightweight.

Therefore, the question is which server stack should be used? On this discussion page we'll try to arrive at an optimum stack.

There are a number of alternatives. Please list pros / cons / opinions under each heading.

Alternatives

gunicorn

Pros:

  • Out-of-the-box support for Django
  • Light

Cons:

  • Not a widely used webserver.

runserver + sqlite3

The Development Stack

Pros:

  • Known to Work
  • Currently in place (but it's easy enough to change, thanks to Python and Django)

Cons:

  • Insecure
  • Not recommended for deployment

Apache + mod_python + MySQL

This is a standard stack.

Pros:

  • Well Developed
  • Well Documented

Cons:

  • Too Heavy on system performance

Lighthttpd / Nginx

Pros:

  • Lightweight / Secure
  • Extremely popular
  • Support for Django

Cons:

  • None that I know of. It might take a little Google to get the initial configuration of the server with Django right, but should be smooth sailing from there.

Clone this wiki locally