Murdoch ICT171 Cloud Project · 2026 S1

Vantage

A cloud-hosted monitoring and server-status project for ICT171. Vantage runs on a DigitalOcean Ubuntu droplet, performs scheduled checks on the host and its own webpage — uptime, response headers, certificate handling, and content integrity — and displays the latest results in a live status dashboard.

Live server · 134.199.167.21
Student Name
Sahil Bawa
Student Number
35734862
Cloud Provider
DigitalOcean (IaaS)
Server
Ubuntu 24.04 LTS · Nginx

Project Description

Vantage is a cloud-hosted monitoring and server-status project built for Murdoch ICT171. It runs on a DigitalOcean Ubuntu droplet behind Nginx and uses a single Bash script, scheduled by cron, to perform recurring checks on the host and the project's own webpage. Results are written to a JSON file in the web root and read by the live dashboard above.

The checks fall into three plain groups. Server self-health samples CPU, memory, disk, and uptime from the host so the project can report on the state of its own environment. Response checks make an HTTP request to the project's own webpage and record the status code and response time. Basic web security checks audit the response headers for common recommendations (HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy) and SHA-256 hash the homepage to detect content changes against a stored baseline. A TLS certificate-expiry check is scoped for the next stage, once HTTPS is enabled via Let's Encrypt.

The first stage of delivery focuses on the cloud-deployment fundamentals required by ICT171: provisioning the server, connecting via SSH using key-based authentication, installing and configuring Nginx by hand, publishing a webpage, and writing a check script that runs on a five-minute cron schedule. The remaining stages cover DNS, HTTPS, and consolidating the project's documentation so another student could rebuild it end to end.

Scope: Vantage performs checks only against the host server it runs on. It is not configured to target other systems.

What Vantage Monitors

The script performs the following checks on every run. The four Stage 1 checks are live now; the TLS expiry check is scoped for Stage 2 once HTTPS is enabled.

CHK-01

Uptime & Response

Sends an HTTP request to the project's webpage every five minutes via cron. Records the status code and response time in milliseconds.

Stage 1 · live
CHK-02

TLS Certificate Expiry

Reads the server certificate via openssl and reports days until expiry. Activates once HTTPS is enabled via Let's Encrypt.

Stage 2 · planned
CHK-03

Security Headers

Checks for HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy. Scored A–F based on how many are present.

Stage 1 · live
CHK-04

Content Integrity

Calculates a SHA-256 hash of the homepage and compares it to a stored baseline. Flags when the hash changes between runs.

Stage 1 · live
CHK-07

Server Self-Check

Collects CPU usage, memory usage, disk usage, and uptime from the host using top, free, df, and uptime.

Stage 1 · live

Live Status Dashboard

Shows the most recent run of vantage_check.sh against this server. The dashboard refreshes when the page reloads by reading /status.json, which the cron-driven check script regenerates every five minutes. If the JSON is not present (or fails to load), example values are shown — clearly flagged as a sample.

Vantage · Findings Preview · sample data
Check
Grade
Detail
Severity
CHK-01 · Uptime
A
HTTP 200 in 41 ms (sample)
Low
CHK-02 · TLS expiry
HTTP-only host. HTTPS pending Stage 2. (sample)
Low
CHK-03 · Security headers
C
Missing: HSTS, CSP, X-Frame-Options (sample)
Medium
CHK-04 · Content integrity
A
Hash matches baseline. No drift. (sample)
Low
CHK-07 · Server self-check
A
CPU 4.2% · Mem 38% · Disk 13% (sample)
Low

Development Roadmap

Vantage is delivered in three stages across the semester. Stage 1 is live now; Stage 2 and Stage 3 are scheduled for completion before end of unit.

Stage 1

Cloud foundation and live checks

Provision the Ubuntu droplet, configure Nginx, set up SSH key authentication, publish this project page on the public IP, and write a Bash check script run every five minutes by cron. The script performs uptime, security-headers, content-integrity, and server self-health checks and writes the results to /var/www/html/status.json which the page reads above.

Current
Stage 2

DNS, HTTPS, and real TLS check

Register a domain and point an A record at the droplet. Update Nginx server_name to respond to the domain. Install Certbot to obtain and auto-renew a Let's Encrypt certificate. Update the check script's CHK-02 block to query the live certificate via openssl s_client and report days until expiry.

Planned
Stage 3

Documentation, verification, and small improvements

Finalise README.md and SETUP.md on GitHub so another student could rebuild the project end to end. Add a "How to verify" section the marker can run. Tidy the check script with small improvements such as logrotate for /var/log/vantage.log. Produce the final PDF report.

Planned

Technical Stack

Cloud ProviderDigitalOcean (IaaS)
Operating SystemUbuntu 24.04 LTS
Web ServerNginx
AutomationBash via cron
Tools used in checkscurl · openssl · sha256sum
Data file/var/www/html/status.json
Log file/var/log/vantage.log
Source ControlGit · GitHub (public)
LicenseMIT

Why DigitalOcean Was Chosen

DigitalOcean was selected because it is a clean Infrastructure as a Service environment with full root SSH access, which matches the technical requirements of the unit. It allows the server to be configured manually rather than relying on a managed platform, making it well suited for demonstrating Linux administration, software installation, web hosting, and cloud deployment in a hands-on way. That level of control is necessary for Vantage — the check script reads system tools such as top, free, df, and openssl directly on the host, which is straightforward on IaaS but restricted on managed platforms.

Beyond technical fit, DigitalOcean has clear documentation, a well-organised control panel, and a straightforward droplet creation flow that lets attention go to the monitoring work rather than the provisioning ceremony. It also integrates with the GitHub Student Developer Pack, which reduces cost and makes it realistic to keep running the project after the unit ends.

Project License

This project is released under the MIT License. MIT was chosen because it is simple, widely used, and well suited for a student software project that may continue to develop over time. It allows other people to view, use, modify, and share the code, as long as the original copyright notice and license terms remain with the project. This is a practical choice for work that may later be expanded into a public cybersecurity portfolio piece. The license is reproduced in the project's GitHub repository as LICENSE, and is marked in the footer of this page and in the repository README.md.