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.
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.
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.
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 · liveReads the server certificate via openssl and reports days until expiry. Activates once HTTPS is enabled via Let's Encrypt.
Stage 2 · plannedChecks 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 · liveCalculates a SHA-256 hash of the homepage and compares it to a stored baseline. Flags when the hash changes between runs.
Stage 1 · liveCollects CPU usage, memory usage, disk usage, and uptime from the host using top, free, df, and uptime.
Stage 1 · live
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 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.
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.
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.
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.
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.
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.