Ansible Django Stack

screenshot of Ansible Django Stack

Ansible Playbook for setting up a Django app with Nginx, Gunicorn, PostgreSQL, Celery, RabbitMQ, Supervisor, Virtualenv, and Memcached. A Vagrantfile for provisioning a VirtualBox virtual machine is included as well.

Overview

The Ansible-Django-Stack is an innovative playbook specifically designed to streamline the setup and configuration of Django applications in production environments. It ensures that essential services such as Nginx, Gunicorn, PostgreSQL, and others are installed and correctly configured, allowing developers to focus on building robust applications without getting bogged down by deployment complexities. With compatibility for major cloud providers and recent versions of Ubuntu, this stack is tailored for the modern developer looking to enhance their deployment processes.

Getting started is a breeze, especially with the inclusion of Vagrant for quick environment setup. Whether you’re a seasoned professional or a beginner, this playbook offers a structured approach to deploying Django applications efficiently and effectively.

Features

  • Comprehensive Application Support: Installs and configures essential services like Nginx, Gunicorn, PostgreSQL, and Celery, catering specifically to Django applications.
  • Easy Configuration Management: Default settings are neatly organized and easily modifiable in the roles/role_name/defaults/main.yml and group_vars directories.
  • Automated SSL Management: Includes a certbot role to effortlessly generate and renew trusted SSL certificates using Let's Encrypt.
  • Multi-cloud Compatibility: Well-tested on popular platforms such as Digital Ocean, AWS, and Rackspace, enhancing deployment flexibility.
  • Support for Virtual Environments: Utilizes Virtualenv for dependency management, ensuring project isolation and compatibility.
  • User-friendly Setup with Vagrant: Facilitates rapid environment creation, allowing users to provision a new server and deploy a Django stack with minimal commands.
  • Python 3 Support: Configured to use Python 3 for provisioning, keeping up with modern programming practices.
  • Customizable Application Paths: Easily adjust the configuration to accommodate different project structures by modifying specified files.