ICT171 – Introduction to Server Environments and Architectures

Personal Portfolio & CV Website

Student ID: 35890724  ·  Sonam Dema  ·  Murdoch University  ·  2026 S1

Project Description

This project is the design and deployment of a personal portfolio and CV website hosted on AWS EC2 running Ubuntu 24.04 LTS with Apache as the web server. The website serves as a professional online presence presenting my background, technical skills, project work, and academic achievements.

The infrastructure uses an Amazon EC2 t2.micro instance through the AWS Free Tier in US East (N. Virginia). The server was configured via SSH, with Apache installed to serve static HTML files. A custom domain was registered via DuckDNS and HTTPS was enabled using Let's Encrypt via Certbot.

The goal is to understand the full stack of decisions involved in taking a web project from local development to a live cloud server with a real domain name and SSL certificate — core competencies aligned with ICT171 learning outcomes.

☁️
Cloud Provider
AWS EC2
🖥️
Server OS
Ubuntu 24.04
⚙️
Web Server
Apache 2
🌐
Domain
DuckDNS
🔒
SSL/TLS
Let's Encrypt
📁
Instance
t2.micro Free

Infrastructure Details

Public IP13.221.45.102
Domainict171sonam.duckdns.org
HTTPS URLhttps://ict171sonam.duckdns.org
Instance Typet2.micro — Free Tier
RegionUS East (N. Virginia) us-east-1
OSUbuntu Server 24.04 LTS
Web ServerApache 2
SSL ProviderLet's Encrypt via Certbot

Step by Step Setup

1

Launch EC2 Instance

Created t2.micro Ubuntu 24.04 LTS on AWS Free Tier in US East (N. Virginia). Security groups: SSH (22), HTTP (80), HTTPS (443).

2

Connect via SSH

Connected from Mac Terminal:

chmod 400 ~/Downloads/ict171-key.pem
ssh -i ~/Downloads/ict171-key.pem ubuntu@13.221.45.102
3

Update and Install Apache

sudo apt update
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2
4

Upload Website

scp -i ~/Downloads/ict171-key.pem ~/Downloads/index.html ubuntu@13.221.45.102:/home/ubuntu/
sudo cp /home/ubuntu/index.html /var/www/html/index.html
5

Domain — DuckDNS

Registered free domain at duckdns.org pointing to 13.221.45.102. Domain: ict171sonam.duckdns.org

6

SSL — Let's Encrypt

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d ict171sonam.duckdns.org

Server Health Check Script

This script automates server health monitoring. It checks whether Apache is running and if not, automatically starts it. It then displays server uptime, disk usage, memory usage, and current date and time.

Script location: ~/server_check.sh

#!/bin/bash
# ICT171 Server Check Script
# Student: Sonam Dema — 35890724
# Purpose: Check Apache status and display server info

echo "================================"
echo " ICT171 Server Status Check"
echo " Sonam Dema (35890724)"
echo "================================"

if systemctl is-active --quiet apache2; then
  echo "Apache is RUNNING"
else
  sudo systemctl start apache2
fi

uptime && df -h / && free -h && date

To run:

chmod +x ~/server_check.sh
./server_check.sh

Chosen License

This website and its original content are published under the Creative Commons Attribution 4.0 International (CC BY 4.0) licence. It allows anyone to share, copy, or adapt the content for any purpose provided appropriate credit is given.

As a student building a public portfolio, sharing knowledge openly is consistent with the open-source culture of the web and Linux communities. Using open-source software such as Ubuntu and Apache does not prevent the content from being separately licensed.

Licence applied to this work:

Creative Commons Attribution 4.0 International (CC BY 4.0)

You are free to share and adapt this material for any purpose, provided appropriate credit is given.

CC BY 4.0