Basic DevOps & Application Deployment with Virtualmin & GitLab
Basic DevOps & Application Deployment with Virtualmin & Gitlab is a hands-on, two-day workshop designed to introduce participants to the foundational practices of DevOps through practical server management and automated deployment workflows.
Participants will learn how to set up a secure Linux server with the LAMP stack (Linux, Apache, MySQL, PHP), manage web hosting environments using Virtualmin, and deploy web applications using GitLab CI/CD pipelines. The course also covers essential topics like DNS and domain configuration, SSL setup, and troubleshooting deployment issues.
Learning Outcomes
By the end of this training, participants will be able to:
- Provision and Secure a Linux Server Set up and harden a virtual private server (VPS) using SSH, firewalls, and essential system tools.
- Install and Configure a Full LAMP Stack Deploy and test Apache, MySQL/MariaDB, and PHP to support web applications.
- Manage Web Hosting Environments with Virtualmin Create and manage virtual servers/domains, configure SSL, and perform file/database management using the Virtualmin control panel.
- Understand and Configure Domain Name System (DNS) Register and point domains, manage DNS records, and troubleshoot domain resolution issues.
- Implement Continuous Deployment with GitLab CI/CD Set up GitLab repositories, create pipelines using .gitlab-ci.yml, and automate application deployments to the server.
6. Deploy and Maintain PHP Web Applications Use Git-based workflows to deploy and update real-world PHP applications in a structured and repeatable way. - Troubleshoot and Resolve Common Deployment Issues Diagnose and fix common issues related to permissions, directory structure, DNS, or CI/CD failures.
- Apply DevOps Best Practices for Small-Scale Web Projects Build a working knowledge of DevOps principles that can be applied to real client or team-based projects.
Prerequisites
Participants are expected to have basic web development knowledge
Course Outline
Day 1
LAMP + Virtualmin
-
- Course goals
- DevOps overview
- LAMP stack
- Virtualmin
- GitLab basics
- Linux Server Preparation
- Provision server
- Secure SSH
- Firewall setup with ufw and basic hardening
- LAMP Stack Installation & Manual Configuration
- Apache
- MySQL
- PHP installation and testing with a sample app
- Installing and Excploring Virtualmin
- Auto-install Virtualmin
- Access dashboard
- Create virtual server
- Enable SSL
- DNS & Domain Configuration
- Domain records (A, CNAME)
- Point domain to server
- Use Virtualmin for DNS zone management
- Virtualmin Admin: DBs, Files, Logs, Backups FTP/file manager
- Create DB, logs, simple backup strategies
Day 2
GitLab CI/CD & Deployment
- Git & GitLab Basics
- Git commands review
- GitLab UI tour
- Repo creation
- Pushing sample PHP app
- GitLab Runner & CI/CD Pipeline Setup
- Install GitLab Runner
- Register it, write .gitlab-ci.yml for deployment
- Automating Deployment to Virtualmin
- CI deploys to correct directory, manages DB, permissions, service reloads
- Final Project - Full end-to-end setup: repo → GitLab → CI/CD → deployed to Virtualmin
About This Course
Basic DevOps & Application Deployment with Virtualmin & Gitlab is a hands-on, two-day workshop designed to introduce participants to the foundational practices of DevOps through practical server management and automated deployment workflows.
Participants will learn how to set up a secure Linux server with the LAMP stack (Linux, Apache, MySQL, PHP), manage web hosting environments using Virtualmin, and deploy web applications using GitLab CI/CD pipelines. The course also covers essential topics like DNS and domain configuration, SSL setup, and troubleshooting deployment issues.
Learning Outcomes
By the end of this training, participants will be able to:
- Provision and Secure a Linux Server Set up and harden a virtual private server (VPS) using SSH, firewalls, and essential system tools.
- Install and Configure a Full LAMP Stack Deploy and test Apache, MySQL/MariaDB, and PHP to support web applications.
- Manage Web Hosting Environments with Virtualmin Create and manage virtual servers/domains, configure SSL, and perform file/database management using the Virtualmin control panel.
- Understand and Configure Domain Name System (DNS) Register and point domains, manage DNS records, and troubleshoot domain resolution issues.
- Implement Continuous Deployment with GitLab CI/CD Set up GitLab repositories, create pipelines using .gitlab-ci.yml, and automate application deployments to the server.
6. Deploy and Maintain PHP Web Applications Use Git-based workflows to deploy and update real-world PHP applications in a structured and repeatable way. - Troubleshoot and Resolve Common Deployment Issues Diagnose and fix common issues related to permissions, directory structure, DNS, or CI/CD failures.
- Apply DevOps Best Practices for Small-Scale Web Projects Build a working knowledge of DevOps principles that can be applied to real client or team-based projects.
Prerequisites
Participants are expected to have basic web development knowledge
Course Outline
Day 1
LAMP + Virtualmin
-
- Course goals
- DevOps overview
- LAMP stack
- Virtualmin
- GitLab basics
- Linux Server Preparation
- Provision server
- Secure SSH
- Firewall setup with ufw and basic hardening
- LAMP Stack Installation & Manual Configuration
- Apache
- MySQL
- PHP installation and testing with a sample app
- Installing and Excploring Virtualmin
- Auto-install Virtualmin
- Access dashboard
- Create virtual server
- Enable SSL
- DNS & Domain Configuration
- Domain records (A, CNAME)
- Point domain to server
- Use Virtualmin for DNS zone management
- Virtualmin Admin: DBs, Files, Logs, Backups FTP/file manager
- Create DB, logs, simple backup strategies
Day 2
GitLab CI/CD & Deployment
- Git & GitLab Basics
- Git commands review
- GitLab UI tour
- Repo creation
- Pushing sample PHP app
- GitLab Runner & CI/CD Pipeline Setup
- Install GitLab Runner
- Register it, write .gitlab-ci.yml for deployment
- Automating Deployment to Virtualmin
- CI deploys to correct directory, manages DB, permissions, service reloads
- Final Project - Full end-to-end setup: repo → GitLab → CI/CD → deployed to Virtualmin
Upcoming Sessions
There are currently no scheduled sessions for this course.
We'll notify you when new sessions are scheduled
Your Instructor
Graduated from Universiti Teknologi Malaysia with a bachelor’s degree in computer science in 2001, Kharil Iszuddin Is...
Upcoming Sessions
There are currently no scheduled sessions for this course.
We'll notify you when new sessions are scheduled
Course Information
Your Instructor
Khairil-Iszuddin bin Ismail
Professional Experience
Graduated from Universiti Teknologi Malaysia with a bachelor’s degree in computer science in 2001, Kharil Iszuddin Is...
View Profile