This is meant to be a blank django project template that uses Chef to provision the server where your application will be deployed. It also uses Vagrant to create the same environment in a Virtualbox VM.
I have made some choices as to how the django application will be deployed. This is based on the content and recommendations stemming from Djangocon 2011. The following will be installed.
- Ubuntu server
Of course, other small applications will be installed to ensure smoother execution:
- virtualenv & pip
- Python driver for postgresql
- Install Vagrant
- Download the
precise32box and add it as
- Your django project should live in
coolname(or what you change it to) to
- Please change the name of the directory to match your project
- The name of the project has to be changed in a few other places
vagrant upto build the VM
vagrant sshand add the
- Then run
fab -R vagrant bootstrapwhich will create a virtualenv, load your code, install dependencies, sync your db, etc.
- Open your browser at
Vagrant roledef for fabric
fabfile includes some special logic to work around some of the
limitations of vagrant. Nothing too hacky though. Every time you want to
execute something on your local VM, include the
-R vagrant flag.
You can change the password in the
djangoapp/recipes/default.rb file. Find
user block and change the value of the
password attribute. It should
be a salted hash, not plaintext. To create a new password, run:
$ openssl passwd -1 "theplaintextpassword"
And paste the result into the recipe file.
The password for the
coolname user is
- Fix the fabfile
- Bring RabbitMQ back
- Add better Chef installation
- Test on real server (i.e. not Vagrant)
BSD, short and sweet
- Upgrade to Ubuntu 12.04
- Upgrade to postgresql 9.1
- Upgrade to Python 2.7
- Add vim package
- Distant past