The List: Django Deployment and What To Cover

Here is the compilation of what I will be covering in my development and deployment guides using Django for a true modern web application. The list will be updated as more suggestions for best practices are discussed. The lists are ordered such that each step builds upon the next all the way to production deployment.

Local Development

This will consist of the bulk of developing a Django application

  1. Creation of Django Project and Application
  2. Refactor Base Settings and Project Structure
  3. Local Development Settings
  4. Addition and explanation of Docker Compose for Local Development
  5. Postgres Server with Docker Compose
  6. Models: A Better Understanding
  7. Handling Migrations
  8. Authenticating Past the Default: Extending the User Model and including AllAuth (Social Media Registration and Email Verification)
  9. Addition of Django REST Framework and understanding API calls
  10. Authentication and Registration with Tokens via API calls
  11. Understanding Permissions with DRF
  12. Creating and Running Tests for Models, Views, and API
  13. Front End: Moving to a JavaScript Framework
  14. Addition of Redis
  15. Addition of Celery: Messages and Asynchronous Tasks
  16. Logging with Django
  17. Handling User Media Files (Uploading, Security, and Storage)
  18. Details on Implementing Security Measures


Consist of mocking the production environment and deploying the project

  1. Production Settings
  2. Secret Values in Production
  3. Serving and reverse proxy with NGINX through Docker Compose
  4. Mock Production Environment with Docker Compose
  5. Continuous Integration with Travis or Jenkins
  6. Deploying to Amazon Web Services EC2
  • SSL Encryption
  1. Connecting to Amazon S3 for User’s Media Files
  2. Database Backups (via scheduled Celery workers)
  3. Deploying to Amazon Web Services with Docker Swarm
  4. Deployment Stress Testing

Future Ideas

  1. Connecting Mobile Applications
  2. Django Fixtures
For updates on Modern Project please check out: