Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Code and configuration used in my Django Deployment Workshop.
Python Ruby
Branch: master
Failed to load latest commit information.
memcached Working memcached and pgpool configs; strip the local stuff.
notes Fixes found during the class today.
postgresql Fixes found during the class today.
slides Finalized slides.
ssh Added an example of how you can use `.ssh/config` to make ssh'ing to …
vagrant Oops, don't commit .vagrant files.
.gitignore Clarified a few bits in the script.
README.rst Updated the README with new info. Fixes found during the class today.


Django Deployment Workshop

This is code and configuration for my Django Deployment Workshop.

Here you'll find example config used to set up an example deployment environment for a Python WSGI stack, including:

I've made comments and notes where possible, but it's entirely possible that this won't make a whole lot of sense without actually taking the class. But this is all BSD-licensed, so please feel free to use it as a starting point for you own deployments.

The Django site used for the examples is Kevin Fricovsky's Mingus, a blog application built on a bunch existing reusable apps.

Getting the app running

See Mingus's INSTALL doc for the basics of getting Mingus running. If you're on a VM or remote server remember that you'll have to runserver to get Django listening on public IP interfaces.

After than, start deploying. My script for the install is in notes; be sure to follow along with the most recent one (PyCon 2011 as of this writing). The other scripts are there for posterity.

If you're not using Ubuntu 10.04 LTS then YMMV.

Further reading

By my count this three-hour class covers about a dozen different pieces of technology. Below are some links to documentation of these various bits. If you read through all of it until you understand every command and configuration option I've used, you'll be well on your way towards groking this stuff. Good luck!

Something went wrong with that request. Please try again.