🧩 Overview
This task involves setting up a GitHub workflow, deploying and configuring an NGINX web server, and serving a custom webpage accessible via a public IP or domain on port 80. The README.md in the main branch must include personal and project details, and the deployed index.html should display specified custom content. The server must be publicly accessible and remain live until grading is complete. The task is currently in progress.
The goal is to deploy a simple NGINX web server on a cloud platform and host a custom web page that displays:
- The name and Slack username
- The cloud platform used
- The date of deployment
Prerequisites
Platform: Microsoft Azure
Date Deployed: 18/10/2025
Server IP: http://172.191.198.160/
🪜 Step 1 — Forking the Repository
The first step was to fork the official repository:
👉 hng13-stage0-devops
✅ Steps:
- Go to the GitHub repo.
- Click Fork (top-right corner).
- The forked repo now appears under your own GitHub account.
🪜 Step 2 — Creating and Editing the README.md
After forking, add a README.md file to the main branch.
This file contains my name, Slack username, a brief project description, and the server IP.
# HNG13 Stage 0 - DevOps Project
## 👤 Author
**Name:** Justice Obioha
**Slack Username:** @JIC
---
## 🧠 Project Description
This project demonstrates the setup and deployment of an NGINX web server on **Microsoft Azure**.
The server hosts a custom HTML page that confirms successful deployment and is publicly accessible on port 80.
---
## 🌐 Deployment Information
**Platform:** Microsoft Azure
**Server IP:** http://172.191.198.160/
**Deployed:** October 18, 2025.
🪜 Step 3 — Creating and Configuring the Virtual Machine (Azure)
I deployed a Linux Virtual Machine using Azure Portal.
⚙️ Configuration:
- OS: Ubuntu 22.04 LTS
- Authentication: SSH key
- Port Allowed: 80 (HTTP)
Public IP:
172.191.198.160
First Open login in to you Azure Portal and click Virtual Machine then Create
Fill in the details
Click Review + Create
After review and accepting price cost click on **Create**
If successful Then Click on Go to Resource
Go to Overview and copy you Public IP
🪜 Step 4 — Connecting to the Server via SSH
Using the Azure-provided SSH command, I connected to my VM:
ssh jic-hng@172.191.198.160
🪜 Step 5 — Installing and Running NGINX
Once connected, I installed and enabled NGINX using the commands below:
sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
To verify that NGINX was running:
systemctl status nginx
Then, I visited http://172.191.198.160/
and saw the default “Welcome to nginx!” page.
🪜 Step 6 — Replacing the Default HTML Page
Next, I replaced the default file located at /var/www/html/index.nginx-debian.html
with my custom index.html
.
cd /var/www/html
sudo rm index.nginx-debian.html
sudo nano index.html
Then I added this HTML content:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to DevOps Stage 0</title>
</head>
<body>
<h1>Welcome to DevOps Stage 0 - Justice Obioha / @JIC</h1>
<p>Successfully deployed on Azure</p>
<p>Deployed: 18/10/2025</p>
</body>
</html>
After saving with Ctrl + O
, Enter
, and Ctrl + X
, I verified my page:
cat index.html
🧠 Lessons Learned
- Cloud deployment is simple when broken into clear steps.
- NGINX serves as an excellent lightweight web server for testing deployments.
- Small details (like date format) matter in automated validation environments.
- Proper documentation makes future tasks easier and more professional.
🧾 Summary of Commands
# Update system
sudo apt update
# Install NGINX
sudo apt install nginx -y
# Start and enable the service
sudo systemctl start nginx
sudo systemctl enable nginx
# Replace default HTML
cd /var/www/html
sudo rm index.nginx-debian.html
sudo nano index.html
✅ Final Output
Visit: http://172.191.198.160/
You’ll see:
“Welcome to DevOps Stage 0 - Justice Obioha / @jic
Successfully deployed on Azure
Deployed: 18/10/2025”
🏁 Conclusion
This project helped me understand how to deploy and manage a simple web server using Azure and NGINX.
It’s a solid foundation for more advanced DevOps tasks like CI/CD, monitoring, and containerization in my cloud computing journey
Top comments (0)