Thursday 2 p.m.–6 p.m.

Hosting Complex Web Applications on Webfaction Servers

Martin Brochhaus

Audience level:
Intermediate
Room:
E3 (Main Hall)

Description

This tutorial will offer a complete walk-through from initial server setup to running a professional Django website on a Webfaction server. You will learn about best practices for many aspects of the software stack, such as version control, automated deployment, data migrations, data backup, security, logging, Apache configuration and installing third party software (such as Solr and supervisor).

Abstract

On the one hand there is no shortage on documentation and tutorials about Django, Postgres, Apache, Nginx, Solr and the many more components that make up a professional software stack, but on the other hand it is hard to find thorough guides that connect the dots and explain how all these components can be managed as a whole.

In the past two years I have created about 30 small and medium sized web applications, all of them hosted on Webfaction servers. Naturally I have learned many lessons and created an extensive tool-belt, which I would like to share in this tutorial.

This tutorial will give step by step instructions for

  • buying and setting up the server
  • necessary settings in the Webfaction control panel
  • installing essential software
  • secure access via SSH
  • hosting your project in your own git repository
  • best practices for medium to large scale Django projects
  • automated deployments with Fabric
  • database migrations with South
  • essential cronjobs for
  • sending email notifications
  • cleaning up the session table
  • creating backups for the database, media files and locale files
  • installing third party software like
  • Solr (for search)
  • memcached (for caching)
  • supervisor (for daemonizing solr and memcached)
  • troubleshooting, logging and error reporting
  • securing your Django admin

This tutorial is aimed at developers who have prior experience with Python and Django. Since I will demonstrate many things in the terminal, it helps if you are familiar with UNIX. Knowledge about Fabric, Apache, Solr or memcached is not needed.

This tutorial could also be interesting for decision makers and developers who are yet unsure if they should invest into Python and Django for their next project. You will get a good impression of how it feels like to create a product with Django and you will be amazed how easily and rapidly you can build fantastic products with Django and Webfaction.