DevOps CICD with Git GitLab Jenkins Docker and Django

Learn how to set up a fully functional CICD Pipeline for any Python or Django Application
DevOps CICD with Git GitLab Jenkins Docker and Django
File Size :
1.62 GB
Total length :
5h 24m



Dare Soremi


Last update




DevOps CICD with Git GitLab Jenkins Docker and Django

What you’ll learn

You will learn how to set up a CICD Pipeline for Python/Django Applications
You will learn how to set up Django applications to accommodate multiple developers
You will learn how to deploy Django Applications to AWS Cloud
You will learn how to use Git and GitLab for Source Control
You will learn how to use Jenkins for Continuous Integration
You will learn how to dockerize Django applications as a DevOps Engineer
You will learn to set up Virtual Machines in your personal computer

DevOps CICD with Git GitLab Jenkins Docker and Django


A 64bit computer with at least 8GB of RAM
Internet Connection
Ability to move files and folders around in your personal computer is required
Must be interested in the topic
Basic knowledge Git is recommended but not required
Familiarity with Linux command lines is useful but not required
Familiarity with Django framework is recommended


Continuous Integration Continuous Delivery/Deployment (CICD) is a very important part of modern-day software release processes. As a matter of fact, you can not survive as a DevOps Engineer without a good understanding of CICD.In this course, you are going to learn how to set up a fully functional CICD pipeline for Python / Django applications. You will learn how to manually deploy Django applications to production and later automate the process with CICD using Git, GitLab and Jenkins as the pipeline tools. You will learn how to set up Django applications to accommodate multiple developers working on them.You will learn how to Dockerize Django’s applications developmentThe concepts can be applied to any programing language or framework.You are going to set up a local DevOps lab environment consisting of multiple Virtual Machines similar to what you get from cloud service providers.  This will enable you to practice without having to spend a penny on cloud services.We will later deploy the Django application to an AWS EC2 Instance in the cloud. Everything we’ll do will be hands-on and straight to the points.If you are seeking a job as a Developer or a DevOps Engineer without any professional experience yet, this course is a must for you because by the end of it, you will have moved from non-experienced to experienced.


Section 1: Introduction

Lecture 1 Introduction

Lecture 2 Course recreation notice

Lecture 3 Prerequisites

Lecture 4 Project Demo

Section 2: DevOps Lab Environment Setup

Lecture 5 Section Introduction

Lecture 6 Installing Oracle VirtualBox

Lecture 7 Create Virtual Ubuntu Server

Lecture 8 Create Virtual Ubuntu Desktop

Lecture 9 SSHing into the Virtual machines

Lecture 10 SSH Without Password

Lecture 11 Run Sudo Commands Without Password

Section 3: Basics: Git and GitLab

Lecture 12 Section Introduction

Lecture 13 Installing GitLab

Lecture 14 Local DNS Setup for gitlab.test

Lecture 15 Create GitLab Admin User

Lecture 16 Installing Git

Lecture 17 Git Global Setup

Lecture 18 Creating A GitLab Project

Lecture 19 Adding SSH Keys to Your GitLab Account

Lecture 20 Git Clone, Status, Add, Commit and Push

Lecture 21 Git Branching

Lecture 22 Branches Merging

Lecture 23 Update Your Local Repository and Delete the new branch locally

Lecture 24 Branches Merging Locally

Section 4: Django App and Environment Setup

Lecture 25 Django Dev Environment Setup

Lecture 26 Creating A Django App

Lecture 27 Set up the Project Code on your Computer

Lecture 28 Polling App Demo

Lecture 29 Set Up Environment Configuration File

Lecture 30 Pushing The App Code To Remote Code Repository

Section 5: Manual Deployment

Lecture 31 Requirements.txt file

Lecture 32 Set up a Dedicated Deploy User on Production Server

Lecture 33 Add Deploy User SSH Key to GitLab Account

Lecture 34 PostgreSQL Setup

Lecture 35 Set Up a Virtual Environment on the Production Server

Lecture 36 Local DNS on Production Server

Lecture 37 Deploying Our Application Code to Production Server

Lecture 38 Configure the Application Settings file on the Production Server

Lecture 39 Adding Contents from the Admin Area

Lecture 40 Set Up Gunicorn Services

Lecture 41 Nginx Setup

Lecture 42 Manual Redeployments

Section 6: CICD Setup

Lecture 43 Installing Jenkins

Lecture 44 Install Necessary Jenkins Plugins

Lecture 45 Create a Dedicated Jenkins-GitLab User

Lecture 46 Configure GitLab-Jenkins Connection

Lecture 47 Grant GitLab-Jenkins Dedicated User Access to Your Project

Lecture 48 Jenkinsfile

Lecture 49 Creating Jenkins Pipeline

Section 7: Continuous Integration Continuous Deployment

Lecture 50 Automated Testing

Lecture 51 Configure Jenkinfile: Build and Test Stages

Lecture 52 Testing the Pipeline and Installing Blue Ocean

Lecture 53 Configure Jenkinfile: Deploy Stage

Lecture 54 Solved: Deploy Stage SSH Issues

Lecture 55 Setting Up a Webhook to Trigger Pipeline builds

Lecture 56 Solved: Error 401 Invalid token

Lecture 57 Test the Pipeline for Failing Automated Testing

Section 8: Continuous Integration Continuous Delivery

Lecture 58 Setting Up a Staging Server

Lecture 59 Edit Configuration files for the Staging Server

Lecture 60 Jenkinsfile to Deploy to Staging before Production

Lecture 61 Manually approve the Deployments to Production

Section 9: Working With Multiple Developers

Lecture 62 Adding Jane a Developer to the Project

Lecture 63 Setting up A Dev Environment for Jane

Lecture 64 Setting Up the Application on Jane’s Dev Environment

Lecture 65 Opening and Assigning Issues to Jane

Lecture 66 Jane Adds a New Feature to the Application

Lecture 67 Creating and Approving Merge Requests

Section 10: Deploying to AWS EC2 Instance

Lecture 68 Creating an AWS Account

Lecture 69 Launching an EC2 Instance

Lecture 70 Attaching An Elastic IP Address to EC2

Lecture 71 EC2: SSHing with Putty

Lecture 72 EC2: PostgreSQL Setup

Lecture 73 EC2: Set Up A Dedicated Deploy User

Lecture 74 EC2: Set Up Python’s Virtual Environment

Lecture 75 Git: Configure a Second Remote Repository

Lecture 76 Setting Up Our Application on EC2

Lecture 77 EC2: Configure Gunicorn Services

Lecture 78 EC2: Configure Nginx to Proxy Pass to Gunicorn

Lecture 79 Terminate Your EC2 Instance and release its Elastic IP

Section 11: Dockerize your Django application (Currently under recreation)

Lecture 80 Installing Docker on your Dev machine

Lecture 81 Clone the project on to the virtual machine

Lecture 82 Add Docker files to your code

Lecture 83 Configure environment variables

Lecture 84 Building and running the containers

Lecture 85 Developing from Docker Dev environment

Lecture 86 Create alias in bashrc

Lecture 87 Congratulations!

Beginner DevOps Engineers looking for practical experience,Developers who wants to learn how to deploy their applications to production,System Admins who want to move to DevOps roles,Anyone who needs hand-on experience on practical DevOps

Course Information:

Udemy | English | 5h 24m | 1.62 GB
Created by: Dare Soremi

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top