View on GitHub

django-deployer

Generic Deployment tool for Django that will support PaaS providers such as Heroku, Dotcloud, OpenShift, Amazon Elastic Beanstalk, Google App Engine, Microsoft Azure, Stackato and Gondor

Download this project as a .zip file Download this project as a tar.gz file

django-deployer is a deployment configuration tool for Django that currently prepares most Django projects to be deployed to the following PaaS providers: Dotcloud, Stackato and Google App Engine.

The goal of django-deployer is to minimize the effort to deploy a Django app to any of these PaaS providers. It asks a series of questions about your Django project, and then generates a generic deploy.yml file that captures all of your project's requirements.

When you choose a particular PaaS provider, django-deployer then translates the requirements defined in the deploy.yml file and generates configuration files for that specific PaaS provider.

Videos of using django-deployer

Getting started

Install django-deployer in your virtualenv, and run the deployer-init command to copy the fabfile into your root folder. Then run the fab setup command to tell django-deployer about your project.

$ source /path/to/venv/bin/activate
$ cd <root_of_your_project>
$ pip install django-deployer
$ deployer-init
$ fab setup

Read more about this project README page.

Development

If you want to contribute to django-deployer, here is how you can check it out and install it.

$ git clone git://github.com/natea/django-deployer.git
$ cd django-deployer
$ python setup.py develop

Or just use pip and look for the source code in the /src directory of your virtualenv:

$ pip install -e git+git://github.com/natea/django-deployer.git#egg=django-deployer

Authors and Contributors

This project was born at the DjangoCon 2012 sprint by Nate Aune (@natea) and John Debs (@johnthedebs) with input from Jacob Kaplan Moss (@jacobian), Andrew Godwin (@andrewgodwin) from ep.io, Gabriel Grant (@gabrielgrant) and Ken Cochrane (@kencochrane) from @DotCloud, Kenneth Reitz (@kennethreitz) from @Heroku and Diane Mueller from @ActiveState.

Further work was done at the PyCon 2013 sprint by @natea and Colin Su (@littleq0903) to add support for Google App Engine. Kevin Grinberg (@kgrinberg), Kyle Kelley (@rgbkrk) also provided input.

Support or Contact

We'd love to get input for how to best push this project forward. If you represent a PaaS provider and would like to contribute, submit a pull request or contact @natea with suggestions for making it better.

Resources

Here are some other blog posts that I wrote about deploying Django using various PaaS providers:

And more howtos from each PaaS provider:

Similar projects

This is not a new problem. Here is a collection of other deployment tools that we found when researching this project: