
Welcome to the course! In this lecture, we’ll preview what to expect and explain how the course will progress. We’ll introduce the main topics, including setting up cloud infrastructure and automating deployments with CI/CD. This overview will clarify the steps ahead and what you’ll learn throughout the course.
In this lecture, you’ll learn how servers work internally and how client requests are processed and returned as responses in real-world applications.
We’ll start with a simple local setup using Node.js and Python running on different ports, then gradually move toward how these applications become accessible to users across the internet. You’ll understand why running projects locally isn’t practical for production and how cloud platforms like AWS, Azure, and Google Cloud solve this problem.
The lecture then introduces Nginx, one of the most widely used web servers worldwide. You’ll learn:
What a cloud server (machine) is
How requests reach a server via an IP address and ports
Why is Nginx needed in production environments?
What a reverse proxy is and how it works
How Nginx routes requests to different applications (Node.js, Python) using ports
How domains like nodejs.com and python.com can point to different project on the same server
By the end of this lecture, you’ll have a clear mental model of the complete request-response lifecycle—from the client’s browser to the server and back—and understand how Nginx acts as the bridge between users and backend applications.
This lecture is essential for anyone learning DevOps basics or preparing to deploy applications to production.
In this lecture, you’ll learn how the request–response cycle works on a real server using Nginx.
We’ll start by understanding a common real-world scenario: multiple applications (such as a Node.js app, a Python app, and static files) running on different ports of a server. You’ll see why exposing these applications directly isn't ideal and how cloud servers address availability and maintenance.
Next, we’ll introduce Nginx and explain its role as a web server and, more importantly, as a reverse proxy. You’ll learn how Nginx listens on port 80, receives incoming client requests, and forwards them to the correct backend service based on configuration.
Through simple examples, this lecture explains:
How client requests reach a server
What happens when multiple applications run on different ports
How Nginx forwards requests to Node.js or Python applications
How responses flow back from the application to the client
How domains like nodejs.com and python.com can point to different services on the same server
By the end of this lecture, you’ll have a clear mental model of how Nginx works behind the scenes and how it manages traffic between users and backend applications. This foundational understanding is essential for deploying real-world applications on cloud servers.
In this lecture, you will learn how to create an AWS (Amazon Web Services) account step by step using the AWS Management Console.
This session is designed for beginners new to AWS who want to get started with cloud computing. You will see the complete AWS sign-up process explained in a simple and easy-to-understand way.
What you will learn in this lecture:
How to access the AWS Management Console
How to create a new AWS account
Choosing between the Free Plan and Paid Plan
How to log in to the AWS Management Console after account creation
We will also discuss AWS Free Tier benefits, including the $200 free credits valid for 6 months, and how AWS billing works on a pay-as-you-go model.
By the end of this lecture, you will have:
A successfully created AWS account
Access to the AWS Management Console
The confidence to move forward with AWS services in the upcoming lectures
This lecture is a foundation step for all future AWS learning, so make sure to follow along carefully.
In this lecture, learners will gain hands-on experience with Amazon Elastic Compute Cloud (EC2), a core service of Amazon Web Services (AWS).
I will then walk through the complete process of launching an EC2 instance by selecting an Ubuntu Amazon Machine Image (AMI), configuring basic instance settings, and securely generating a key pair (.pem file) for authentication.
Next, learners will connect to the running EC2 instance using its public IP address and the generated .pem key via SSH, gaining practical experience with remote server access. The session also demonstrates how to safely disconnect from the EC2 instance using the exit command.
Finally, the lecture includes a real-world example of connecting to the EC2 instance using an SSH client, reinforcing the concepts through practical demonstration.
By the end of this lecture, students will be able to confidently launch, access, and manage a basic EC2 instance in AWS, forming a strong foundation for further cloud and DevOps learning.
This article provides a step-by-step guide to launching and connecting to an Amazon EC2 instance in AWS. It covers the complete process, from creating an EC2 instance to securely connecting to it, making it ideal for beginners who want hands-on experience with cloud computing.
In this lecture, you will learn how AWS Security Groups work and how they control network traffic for your EC2 instances.
We’ll start by exploring the Security Group attached to an EC2 instance and understanding its two core components: Inbound rules and Outbound rules. You’ll learn how inbound rules determine which incoming connections are allowed, and how outbound rules control traffic leaving the instance.
Through a hands-on demonstration, you’ll see how allowing or removing SSH access on port 22 directly affects your ability to connect to an EC2 instance. We’ll intentionally remove the SSH rule to observe the connection failure, then add it back to restore access—helping you clearly understand how Security Groups act as a virtual firewall in AWS.
By the end of this lecture, you will be able to:
Understand the purpose of AWS Security Groups.
Differentiate between inbound and outbound rules.
Configure SSH access securely using port 22
This lecture lays a critical foundation for securing cloud-based applications and infrastructure on AWS.
In this lecture, you’ll learn how AWS Security Groups work and why they are a critical part of securing your cloud infrastructure. We’ll break down the concept step by step, starting with the basics and moving to practical, real-world use.
You’ll understand what Security Groups are, how they act as virtual firewalls for your AWS resources, and how to configure inbound and outbound rules to control traffic.
By the end of this lesson, you’ll be able to confidently create, modify, and apply Security Groups to services like EC2 instances, ensuring your applications are both accessible and secure.
In this lecture, you’ll learn how to properly create and use an AWS Security Group before launching an EC2 instance, following AWS's recommended best practices.
Instead of modifying a Security Group after an EC2 instance is already running, we’ll take the correct approach: create the Security Group first and attach it during instance launch. This ensures better security, cleaner architecture, and a more professional deployment workflow.
You’ll walk through the complete process step by step, including:
Creating a Security Group from scratch
Configuring inbound and outbound rules
Terminating an existing EC2 instance
Launching a new EC2 instance using an existing Security Group
Connecting to the new EC2 instance via SSH
By the end of this lecture, you’ll understand why creating Security Groups first is important and how to apply this approach in real-world AWS projects.
This lecture is an essential step toward building secure and production-ready AWS deployments.
In this lecture, I will update and upgrade the EC2 instance to ensure it is up to date. You will then install essential packages, including Node.js and Git, to prepare the environment for deployment.
In this lecture, you will learn to generate and configure SSH keys inside an AWS EC2 instance for secure GitHub authentication. We will cover why SSH is essential for working on cloud-based servers and how it enables secure, passwordless Git operations.
The session guides you through generating an SSH key pair on the EC2 instance, adding the public key to GitHub, configuring SSH access, and verifying the connection. By the end, you will be able to securely clone, push, and pull GitHub repositories from an EC2 instance as part of a cloud development workflow.
In modern software development, secure authentication is essential when working with remote repositories. This lecture introduces SSH (Secure Shell) key authentication. It demonstrates how developers can securely connect Git to GitHub without having to repeatedly enter credentials.
Students will learn the fundamentals of public-key cryptography, including how SSH uses a private-public key pair to verify identity between a local machine and a remote GitHub server. The lecture also clarifies the differences between algorithms: ED25519 uses elliptic-curve cryptography for strong security and fast performance, while RSA is based on integer factorization, offering broad compatibility but potentially slower performance. These distinctions help students understand when to use each algorithm.
Through step-by-step demonstrations, learners will generate SSH keys using the ssh-keygen command, configure the SSH agent, and add their public key to their GitHub account. The lecture also covers testing SSH authentication and using SSH-based URLs to securely clone Git repositories.
By the end of this lecture, students will be able to:
Understand how SSH authentication works in Git workflows.
Differentiate between ED25519 and RSA SSH algorithms.
Generate and manage SSH keys on their system.
Connect their local Git environment to GitHub using SSH.
Clone and interact with repositories securely without password prompts
This lecture helps students build a secure, efficient Git workflow, a fundamental skill for developers working with version control and collaborative software development.
In this lecture, we will clone a GitHub backend project to the EC2 instance using an SSH link. You’ll see how to securely download the project source code from GitHub using SSH, preparing it for deployment.
In this lecture, we will run the project. You’ll learn how to install the required dependencies, start the application, and verify that everything is working correctly on your EC2 Instance.
By the end of this lecture, you’ll start the project and get it up and running, ready to move on to the next steps.
In this lecture, you’ll learn how to run your project using PM2, a popular production process manager for Node.js applications. We’ll cover how to start your app with PM2, keep it running in the background, and manage processes efficiently. By the end of this lecture, you’ll be able to confidently run your project using PM2 in a real-world environment.
In production environments, Node.js applications must remain stable, scalable, and continuously available. Simply running node app.js is not sufficient because if the process crashes, the application stops serving users. This lecture introduces PM2 (Process Manager 2), a powerful process management tool for running and managing Node.js applications in production.
Students will learn how PM2 acts as a process supervisor, ensuring applications automatically restart if they crash and continue running in the background. The lecture explores key PM2 features, including process monitoring, log management, multi-core scaling in cluster mode, and zero-downtime restarts, all essential for maintaining reliable backend services.
Through practical demonstrations, learners will install PM2, start and manage Node.js applications, monitor system performance, and configure applications to automatically start after server reboots. The session will also cover how PM2 improves application performance by distributing workloads across CPU cores using cluster mode.
By the end of this lecture, students will be able to:
Understand the role of process management in production environments.
Install and configure PM2 for Node.js applications.
Start, stop, restart, and monitor applications using PM2 commands.
Use cluster mode to improve application scalability.
Implement automatic restarts and zero-downtime reloads
Manage application logs and monitor system performance.
This lecture equips students with the skills needed to deploy and maintain reliable Node.js applications, making PM2 an essential tool for modern backend development and production system management.
In this lecture, we will install the Nginx web server on an EC2 instance. You’ll learn how to install Nginx using the package manager, start the service, and verify that the installation was successful.
In this lecture, you’ll learn how to configure NGINX as a reverse proxy for a Node.js application. We’ll explore how NGINX routes incoming requests to a Node.js server, efficiently manages traffic, and improves application performance. You’ll also set up basic NGINX server blocks, configure ports, and run a Node.js app behind NGINX in a production-style setup.
In modern web application deployment, it is common to run backend services such as Node.js, Express, Django, or other APIs on internal ports while using a web server to handle incoming client requests. This lecture introduces Nginx as a reverse proxy and explains how it forwards user requests from a public port to a backend application running on a local port.
Students will learn how a reverse proxy works and why it is widely used in production environments to improve security, performance, and scalability. The lecture will analyze a practical Nginx configuration that forwards requests arriving on port 80 to a backend application running on port 4000. Important configuration directives such as proxy_pass, proxy_set_header, and proxy_http_version will be explained in detail.
The session will also cover how Nginx supports features such as WebSocket connections, header forwarding, and request handling, which are important for modern real-time web applications.
By the end of this lecture, students will be able to:
Understand the concept of a reverse proxy server.
Explain how Nginx forwards requests to backend applications.
Configure Nginx to route traffic to services running on internal ports
Understand key Nginx directives used in reverse proxy configurations.
Deploy backend applications behind Nginx in a secure and scalable architecture.
This lecture provides practical knowledge required for deploying backend applications in production environments, making Nginx reverse proxy configuration an essential skill for backend developers, DevOps engineers, and system administrators.
In this lecture, we will test the Nginx configuration file we created in the previous lesson to ensure it is working correctly. You’ll learn how to check the configuration for errors, verify that Nginx loads the new settings properly, and confirm that the server is running as expected. This step ensures your configuration is valid before moving forward.
In modern web development, efficiently delivering web content to users is essential for performance, scalability, and reliability. This lecture introduces Nginx, a high-performance open-source web server widely used to serve websites, manage traffic, and act as a reverse proxy for backend applications.
Students will learn how Nginx processes client requests and how its event-driven architecture allows it to handle thousands of concurrent connections with minimal system resources. The lecture also explores the role of Nginx in modern web infrastructure, including serving static files, load balancing, reverse proxying, and SSL/TLS termination.
Through practical demonstrations, learners will install Nginx, understand its configuration structure, and create basic server configurations to host web applications. The session will also show how Nginx can be used in front of backend services such as Node.js, Python, or PHP applications to improve performance, security, and scalability.
By the end of this lecture, students will be able to:
Understand the role of Nginx as a web server and reverse proxy.
Install and configure Nginx on a Linux server.
Understand the event-driven architecture of Nginx.
Create and manage basic server configurations.
Use Nginx to serve static content and forward requests to backend applications.
Apply Nginx in a modern web deployment architecture.
This lecture provides foundational knowledge for deploying and managing web applications in production environments, making Nginx an essential tool for backend developers, DevOps engineers, and system administrators.
In this lecture, we will configure the security group to allow the required traffic and then test our Nginx configuration to ensure everything is working properly. You’ll learn how to open the necessary ports, verify network access, and check that Nginx is running and serving requests as expected. By the end of this lesson, you’ll have a secure setup and a fully functional Nginx server.
In this lecture, you’ll learn how to purchase a domain name for your application. We’ll walk through the process of choosing the right domain name, checking availability, selecting a domain registrar, and completing the purchase securely.
This lecture is perfect for beginners starting a website and seeking a clear, practical guide to purchasing a domain.
In this lecture, you’ll learn how to point a custom domain name to an Amazon EC2 instance. We’ll walk through the complete process of connecting your domain to a live server hosted on AWS, including configuring public IP addresses, updating DNS records, and verifying the connection.
By the end of this session, you’ll understand how domain resolution works, how to configure A records properly, and how to make your web application accessible through your own domain name instead of a raw IP address. This is a crucial step in deploying real-world cloud-based applications.
In modern web development, users access applications through domain names such as google.com or example.com rather than numeric IP addresses. This lecture introduces the concept of domain names, explains why they are essential for web applications, and demonstrates how domain pointing connects a domain to a server hosting an application.
Students will learn how the Domain Name System (DNS) translates human-readable domain names into machine-readable IP addresses, enabling browsers to locate the correct web server. The lecture also explores the structure of a domain name, including subdomains, second-level domains, and top-level domains (TLDs).
In addition, the session explains why domains are critical for branding, accessibility, HTTPS security, and scalable infrastructure. Learners will also understand the concept of domain pointing, in which DNS records such as A and CNAME records direct traffic to a specific server.
By the end of this lecture, students will be able to:
Understand what a domain name is and how it differs from an IP address.
Explain how the Domain Name System (DNS) works.
Identify the components of a domain name.
Understand why domains are essential for web applications.
Configure the domain pointing using DNS records
Understand how domains connect users to web servers and applications.
This lecture provides foundational knowledge required for deploying and managing web applications on the internet, making it an important topic for backend developers, DevOps engineers, and web administrators.
In this lecture, we will configure a domain name in Nginx for a server that is already running and accessible via IP address.
You’ll learn how to update the server_name directive and reload Nginx to apply the changes.
By the end of this lecture, your website will be accessible via your domain name instead of the server’s IP address, preparing your application for a more professional, production-ready setup.
In this lecture, we will verify our Nginx domain name configuration by accessing the application using a custom domain instead of the server’s public IP address.
You will learn how domain-based routing works in Nginx and how DNS resolution allows users to reach your application through a human-readable domain name. We will test the configuration in the browser and ensure that our server block is correctly handling incoming requests.
By the end of this lecture, you will be able to confidently access and validate your web application using a domain name in a real-world setup.
In this lecture, you will learn how to secure your web application with a free SSL certificate using Let’s Encrypt and Certbot. We will go step by step through the process of installing Certbot along with the python3-certbot-nginx plugin and configuring SSL on an Nginx server.
You will see how to generate and install the SSL certificate, automatically configure Nginx to enable HTTPS, redirect HTTP traffic to HTTPS, and verify that the certificate is working properly.
By the end of this lecture, your web application will be fully secured with HTTPS, enhancing both security and user trust.
Securing web applications is a critical requirement in modern web development. This lecture introduces SSL/TLS certificates and demonstrates how to secure a website using a free SSL certificate from Let’s Encrypt with the Certbot tool. HTTPS encryption protects communication between users and web servers, ensuring that sensitive information such as login credentials and personal data is transmitted securely.
Students will learn the fundamentals of SSL/TLS encryption, why HTTPS is important for security and search engine optimization (SEO), and how Certificate Authorities issue digital certificates. The lecture then provides a practical demonstration of installing Certbot, generating an SSL certificate for a domain, and configuring a web server such as Nginx or Apache to enable HTTPS.
The session also covers automatic certificate renewal, a key feature of Certbot that ensures SSL certificates remain valid without manual intervention. Since Let’s Encrypt certificates expire every 90 days, understanding the renewal process is essential for maintaining continuous secure connections.
By the end of this lecture, students will be able to:
Understand the purpose of SSL/TLS certificates and HTTPS.
Explain the role of Let’s Encrypt as a free Certificate Authority.
Install and configure Certbot on a Linux server.
Generate and install a free SSL certificate for a domain.
Enable HTTPS on a web server (Nginx or Apache)
Configure and verify automatic certificate renewal
This lecture equips students with practical skills for securing web applications in production environments, an essential step for backend developers, DevOps engineers, and system administrators managing modern web infrastructure.
In this lecture, we will learn how to redeploy our application after making source code changes.
You’ll see the complete workflow of updating a live project, including pulling the latest code from the repository and deploying it to the server.
By the end of this lesson, you will understand how to safely update your application without affecting your live environment and ensure your latest changes are reflected in production.
In this lecture, we will introduce one of the most important concepts in modern web deployment — CI/CD (Continuous Integration and Continuous Deployment).
You will learn:
What CI/CD actually means
Why CI/CD is important in real-world projects
How it helps automate your deployment process
Different CI/CD tools are available in the industry.
Why are we using GitHub Actions in this course
What happens behind the scenes when you push code to a branch
By the end of this lecture, you will clearly understand how automated deployment works and how GitHub Actions can simplify your workflow.
In modern software development, delivering applications quickly and reliably is essential. This lecture introduces CI/CD (Continuous Integration and Continuous Deployment), a development practice that automates the build, test, and deployment of software. CI/CD pipelines help development teams integrate code changes frequently and deliver updates to users faster with improved reliability.
Students will learn the concept of Continuous Integration, in which developers regularly push code changes to a shared repository, and automated systems run tests to verify the code. The lecture will also cover Continuous Delivery and Continuous Deployment, which automate the process of preparing and releasing applications to production environments.
Through conceptual explanations and workflow examples, learners will understand how CI/CD pipelines streamline the software development lifecycle, reduce manual work, and minimize deployment errors. The session will also introduce common CI/CD tools, including GitHub Actions, Jenkins, GitLab CI/CD, and other automation platforms used in modern DevOps environments.
By the end of this lecture, students will be able to:
Understand the CI/CD concept and its role in modern software development.
Explain the differences between Continuous Integration, Continuous Delivery, and Continuous Deployment.
Understand the stages of a CI/CD pipeline.
Identify common tools used for CI/CD automation.
Understand how CI/CD improves software quality, collaboration, and deployment speed.
This lecture provides foundational knowledge required for DevOps practices and modern application deployment, making CI/CD an essential skill for software developers, backend engineers, and DevOps professionals.
In this lecture, you will learn how to configure a complete CI/CD pipeline using GitHub Actions to automate your build, test, and deployment workflow.
We will start by understanding the structure of a GitHub Actions workflow file and then create a fully functional pipeline from scratch. You’ll learn how to define jobs, configure runners, manage environment variables, use secrets securely, and trigger workflows based on different GitHub events.
By the end of this lecture, you will be able to:
Create and structure a GitHub Actions workflow file.
Automate code build and testing processes
Configure environment variables and repository secrets
Set up deployment steps.
Debug and monitor workflow runs.
This hands-on session will give you practical experience in setting up a real-world CI/CD pipeline using GitHub Actions.
In modern software development, manually deploying applications to servers can be time-consuming and error-prone. This lecture introduces CI/CD (Continuous Integration and Continuous Deployment) using GitHub Actions, demonstrating how developers can automatically deploy a Node.js API to staging and production environments whenever code is pushed to specific branches.
Students will learn how a GitHub Actions workflow can monitor repository changes and trigger automated deployment pipelines. The lecture explains how different branches (such as main and staging) can be used to manage separate environments, ensuring that new features are tested safely before reaching production.
The session also covers how to securely connect to remote servers using SSH keys stored in GitHub Secrets, execute remote commands, update application code from the repository, and restart services using PM2, a Node.js process manager. Through this workflow, students will understand how automated deployment pipelines improve efficiency, reliability, and consistency in software delivery.
By the end of this lecture, students will be able to:
Understand the role of CI/CD in automated application deployment.
Configure GitHub Actions workflows to trigger deployments based on branch updates
Use SSH-based deployment to securely connect to remote servers.
Manage environment-specific deployments for production and staging.
Restart and manage applications using PM2 after deployment.
This lecture provides practical knowledge of automated deployment pipelines used in real-world DevOps workflows, helping developers streamline the process of delivering updates to live servers quickly and securely.
This lecture focuses on verifying that the GitHub CI/CD pipeline is functioning correctly after its configuration is complete. The goal is to ensure that whenever code is pushed to the main branch, the workflow triggers automatically and runs successfully from start to finish.
What We Will Test in This Lecture
In this session, we will test:
Verification that the CI/CD workflow is automatically triggered upon a push to the main branch
Confirmation that the build process completes successfully
Validation that all configured steps (install, build, etc.) execute without errors
Verification that the deployment stage completes successfully
Confirmation that the production environment reflects the latest pushed changes
By the end of this lecture, we will confirm that the CI/CD pipeline is functioning properly and ready for reliable production deployments.
This lecture focuses on verifying that the GitHub CI/CD pipeline is functioning correctly after its configuration is complete. The goal is to ensure that whenever code is pushed to the staging branch, the workflow triggers automatically and runs successfully from start to finish.
What We Will Test in This Lecture
In this session, we will test:
Verification that the CI/CD workflow is automatically triggered upon a push to the staging branch
Confirmation that the build process completes successfully
Validation that all configured steps (install, build, etc.) execute without errors
Verification that the deployment stage completes successfully
Confirmation that the production environment reflects the latest pushed changes
By the end of this lecture, we will confirm that the CI/CD pipeline is functioning properly and ready for reliable production deployments.
In this lecture, we’ll understand how CI/CD pipelines are structured in real-world projects using separate production and staging servers.
You’ll learn why professional projects never deploy changes directly to production and how staging environments help teams test and verify features before going live.
We’ll discuss:
The purpose of staging and production servers
Why are multiple environments (dev, testing, staging, production) used
How branch-based deployment works
How GitHub Secrets store different environment variables like PROD_HOST, STAGING_HOST, PROD_KEY, and STAGING_KEY
How does pushing to different branches trigger deployment to different EC2 instances
By the end of this lecture, you’ll clearly understand how multi-environment CI/CD works in practical, production-level projects.
In this lecture, we will clone a GitHub nextjs project to the EC2 instance using an SSH link. You’ll see how to securely download the project source code from GitHub using SSH, preparing it for deployment.
In this lecture, we will run the project. You’ll learn how to install the required dependencies, start the application, and verify that everything is working correctly on your EC2 Instance.
By the end of this lecture, you’ll start the project and get it up and running, ready to move on to the next steps.
In this lecture, you’ll learn how to run your project using PM2, a popular production process manager for Node.js applications. We’ll cover how to start your app with PM2, keep it running in the background, and manage processes efficiently. By the end of this lecture, you’ll be able to confidently run your project using PM2 in a real-world environment.
In this lecture, you’ll learn how to configure NGINX as a reverse proxy for a Nextjs application. We’ll explore how NGINX routes incoming requests to a Nextjs server, efficiently manages traffic, and improves application performance. You’ll also set up basic NGINX server blocks, configure ports, and run a Nextjs app behind NGINX in a production-style setup.
In this lecture, we explore how Nginx functions as a reverse proxy for a Node.js application, a common architecture used in modern web deployments. You will learn how Nginx sits in front of an application server to handle incoming HTTP requests, improve performance, and enhance security.
The session walks through a real Nginx configuration that forwards requests from port 80 to a backend service running on port 3000. We will break down each directive in the configuration, explain its purpose, and visualize how client requests travel through the system.
By the end of this lecture, you will understand how reverse proxy architecture works, why it is widely used in production environments, and how to configure Nginx to route traffic to your backend applications. This knowledge is essential for deploying Node.js, API services, and modern web applications on scalable, secure infrastructure.
In this lecture, we will test the Nginx configuration file we created in the previous lesson to ensure it is working correctly. You’ll learn how to check the configuration for errors, verify that Nginx loads the new settings properly, and confirm that the server is running as expected. This step ensures your configuration is valid before moving forward.
In this lecture, you’ll learn how to point a custom domain name to an Amazon EC2 instance. We’ll walk through the complete process of connecting your domain to a live server hosted on AWS, including configuring public IP addresses, updating DNS records, and verifying the connection.
By the end of this session, you’ll understand how domain resolution works, how to configure A records properly, and how to make your web application accessible through your own domain name instead of a raw IP address. This is a crucial step in deploying real-world cloud-based applications.
In this lecture, we will configure a domain name in Nginx for a server that is already running and accessible via IP address.
You’ll learn how to update the server_name directive and reload Nginx to apply the changes.
By the end of this lecture, your website will be accessible via your domain name instead of the server’s IP address, preparing your application for a more professional, production-ready setup.
In this lecture, we will verify our Nginx domain name configuration by accessing the application using a custom domain instead of the server’s public IP address.
You will learn how domain-based routing works in Nginx and how DNS resolution allows users to reach your application through a human-readable domain name. We will test the configuration in the browser and ensure that our server block is correctly handling incoming requests.
By the end of this lecture, you will be able to confidently access and validate your web application using a domain name in a real-world setup.
In this lecture, you will learn how to secure your web application with a free SSL certificate using Let’s Encrypt and Certbot.
You will see how to generate and install the SSL certificate, automatically configure Nginx to enable HTTPS, redirect HTTP traffic to HTTPS, and verify that the certificate is working properly.
By the end of this lecture, your web application will be fully secured with HTTPS, enhancing both security and user trust.
In this lecture, we will learn how to redeploy our application after making source code changes.
You’ll see the complete workflow of updating a live project, including pulling the latest code from the repository and deploying it to the server.
By the end of this lesson, you will understand how to safely update your application without affecting your live environment and ensure your latest changes are reflected in production.
In this lecture, you will learn how to configure a complete CI/CD pipeline using GitHub Actions to automate your build, test, and deployment workflow.
We will start by understanding the structure of a GitHub Actions workflow file and then create a fully functional pipeline from scratch. You’ll learn how to define jobs, configure runners, manage environment variables, use secrets securely, and trigger workflows based on different GitHub events.
By the end of this lecture, you will be able to:
Create and structure a GitHub Actions workflow file.
Automate code build and testing processes
Configure environment variables and repository secrets
Set up deployment steps.
Debug and monitor workflow runs.
This hands-on session will give you practical experience in setting up a real-world CI/CD pipeline using GitHub Actions.
This lecture focuses on verifying that the GitHub CI/CD pipeline is functioning correctly after its configuration is complete. The goal is to ensure that whenever code is pushed to the main branch, the workflow triggers automatically and runs successfully from start to finish.
What We Will Test in This Lecture
In this session, we will test:
Verification that the CI/CD workflow is automatically triggered upon a push to the main branch
Confirmation that the build process completes successfully
Validation that all configured steps (install, build, etc.) execute without errors
Verification that the deployment stage completes successfully
Confirmation that the production environment reflects the latest pushed changes
By the end of this lecture, we will confirm that the CI/CD pipeline is functioning properly and ready for reliable production deployments.
This lecture focuses on verifying that the GitHub CI/CD pipeline is functioning correctly after its configuration is complete. The goal is to ensure that whenever code is pushed to the staging branch, the workflow triggers automatically and runs successfully from start to finish.
What We Will Test in This Lecture
In this session, we will test:
Verification that the CI/CD workflow is automatically triggered upon a push to the staging branch
Confirmation that the build process completes successfully
Validation that all configured steps (install, build, etc.) execute without errors
Verification that the deployment stage completes successfully
Confirmation that the production environment reflects the latest pushed changes
By the end of this lecture, we will confirm that the CI/CD pipeline is functioning properly and ready for reliable production deployments.
In modern web development, manually deploying applications to servers can be inefficient and error-prone. This lecture introduces CI/CD (Continuous Integration and Continuous Deployment) using GitHub Actions to automate the deployment of a Next.js application to remote servers.
Students will learn how GitHub Actions workflows can automatically trigger deployment processes whenever code is pushed to specific branches, such as main or staging. The lecture explains how branch-based deployment strategies allow teams to manage production and staging environments, enabling developers to test updates before releasing them to live users.
The session also demonstrates how to securely connect to remote servers using SSH keys stored in GitHub Secrets, pull the latest code from the repository, build the Next.js application, and restart the application using PM2, a process manager that ensures Node.js applications run continuously in production.
By the end of this lecture, students will be able to:
Understand how CI/CD pipelines automate application deployment.
Configure GitHub Actions workflows for Next.js applications
Use branch-based deployment strategies for staging and production environments.
Securely connect to remote servers using SSH and GitHub Secrets.
Build and restart applications using PM2 after deployment.
This lecture provides practical experience with real-world DevOps deployment practices, helping developers streamline the process of delivering Next.js applications to production servers efficiently and securely.
Do you want to take your backend development skills to the next level? Would you like to learn how to deploy applications seamlessly, automate the deployment process, and scale your backend infrastructure in the cloud?
Then Mastering Web Deployment with CI/CD Automation is the course for you!
This is a hands-on course where we will go through the entire process of deploying Web applications, setting up cloud infrastructure, and automating the deployment pipeline using CI/CD. We will start from scratch and progress to a fully automated, scalable production-ready environment. Here's what you'll learn in this course:
Deployment Fundamentals
How Deployment Works: Learn the essential concepts behind deploying applications and the different strategies used in production environments.
AWS Cloud Setup: Set up an AWS account, configure EC2 instances, and set up the necessary resources to host your Web applications.
Security Groups: Understand how to configure AWS security groups to control access and protect your infrastructure.
Nginx as a Reverse Proxy: Learn how to set up Nginx to manage traffic, optimize performance, and serve your Web applications.
Domain and SSL Setup: Configure custom domains and install free SSL certificates for secure HTTPS connections using Let’s Encrypt.
CI/CD Automation with GitHub Actions
Continuous Integration and Deployment (CI/CD): Learn the principles of CI/CD and how to automate deploying your Web applications with GitHub Actions.
GitHub Actions Workflow: Create and configure GitHub Actions workflows for automating deployment from your GitHub repository to AWS.
Deployment to Production: Deploy your application automatically to production every time you push code changes to your GitHub repository.
Hands-on Project
Build and deploy Web applications to AWS with automated CI/CD pipelines using GitHub Actions.
By the end of this course, you'll be equipped with the knowledge and skills to deploy, manage, and scale your applications in a production environment with automated CI/CD pipelines. You'll understand the entire deployment process, from setting up your cloud infrastructure to automating deployment tasks, ensuring a streamlined development workflow.