The building blocks for a Vagrant environment for Django development.
Full documentation is available at: https://vagrant-django.readthedocs.io/.
See the features documentation for details on all available features and when they apply.
Also be sure to check out the limitations and restrictions that apply.
A quick feature overview:
- A secure environment, including locked down SSH access via public key and configurable firewall
- Development aids: git and ag (silver searcher)
- Image libraries used by Pillow
- PostgreSQL, with default database and user
- Nginx and Gunicorn
- Supervisor
- Virtualenv, plus installation of Python dependencies
- Node.js and npm, plus installation of Node.js dependencies
- An environment-specific Python settings file
- Per-project customisation options
- Config files for the above, seperately configurable for multiple deployments
- Copy the
provision/
directory into your project. - Copy the included
Vagrantfile
or addprovision/scripts/bootstrap.sh
as a shell provisioner in your existingVagrantfile
, specifying the project name. The includedVagrantfile
is pretty basic, but it can be used as a foundation. See documentation on the Vagrantfile for details. - Modify the example
provision/env.sh
file. See documentation on the env.sh file for details. - Add/modify any further configuration files to
provision/conf/
. See the configuration documentation for details on what further customisation options are available. - Add any project-specific provisioning steps to a
provision/project.sh
file. See the project-specific provisioning documentation for details. - Add
provision/env.sh
(and any other necessary config files) to your.gitignore
file, or equivalent. Environment-specific configurations should not be committed to source control. vagrant up
Additional steps may be required in production environments. See Usage in Production for details.
vagrant-django is released under the MIT license, and may be freely included in other projects to support the provisioning of their environments.