No description
Find a file
Brendan Golden 1eb7ad2cb7
All checks were successful
On_Push / build (push) Successful in 31s
feat: artifact for demo day
2025-04-22 01:06:36 +01:00
.forgejo/workflows fix: use the proper script for this 2025-04-07 23:42:48 +01:00
src feat: add teh 1996 site as well 2025-04-07 23:54:26 +01:00
.gitattributes git: added base gitignore and attributes files 2024-09-22 20:02:21 +01:00
.gitignore fix: realised that teh build folder was beign ignored 2025-04-07 21:22:22 +01:00
12136891_Demo-Day.mp4 feat: artifact for demo day 2025-04-22 01:06:36 +01:00
LICENSE Initial commit 2024-09-22 18:55:42 +00:00
README.md feat: artifact for demo day 2025-04-22 01:06:36 +01:00

FYP Demo Day artifact

Details

Overview

This repo is for my Demo Day demo.
Its goal was to find a way to showcase work I had done on my FYP/Skynet.
This was challenging since the work is spread across 15+ repos and the (Skynet) cluster itself.
A small (visual) example of this can be found in my atrium video.

On a more practical sense there are a few stages to what was showcased, which I will go into further detail.
The project as a whole is showcasing one segment of my work on Skynet, that being preserving its legacy for future generations. The most tangible aspect being removing our website (skynet.ie) from decades past.

  • Recovery
  • Preservation
  • Infrastructure

Recovery

To be able to pass on a legacy you must first have it in the first place.
Unfortunately for Skynet it has suffered numbers data losses over its 30 year history.
As such we were sorely lacking in archives of what our site used to be.

Fortunately we have hard drives from some of the servers going back 20 years.
Then it was a case of mounting them and examining their contents.

Picture of the hard drive exploration.

Interesting challenges here were:

  • Different locations for key directories/files over time
  • Mounting RAID 1 drives is a hassle.
  • Old drives are prone to not wanting to work.

Preservation

Preservation is not just keeping an item stuck in time, often it can be making slight modifications in order to allow it to function in the modern day.
That is also true for the old archives of the skynet.ie website I found.

In the past 30 years the technology behind a website and hosting it has drastically changed.
When Skynet first started JavaScript (1995) and CSS (1996) had not yet been released.

We have used Apache Webserver for much of our history, which brought its own quirks.
One of these was the tidle host, where users could host their website under skynet.ie/~$username for example https://skynet.ie/~silver.
This format should be familiar to any in computer science, however it has drawbacks when it comes to modern security and as such they will redirect to a subdomain: $username.users.skynet.ie for example https://silver.users.skynet.ie.
The second quirk of note is the use of .htaccess, which allowed the webserver to block access to certain directories in the web root.

Finally what helped immensely was the Internet Archive, specifically the Wayback Machine.
It has copies of the Skynet website going back to 1997.

1996

2003

2006

2016

2023 - now

Infrastructure

Recovery and restoration is a good start, however for it to truly be a legacy it must be accessible to all.
This is where we step outside of the code in this repo and the other linked repos. and talk about the Skynet Cluster.

Cluster

The Skynet cluster runs a fair few services on many VMs (LXC to be exact).
Full list can be found here
Proxmox VMs

These provide many of the underlying services such as DNS, TLS certs and system monitoring.
The git repo host (Forgejo) and the CI/CD runners are also hosted by Skynet itself.
Even this repo (https://forgejo.skynet.ie/silver/user_deploy) is hosted on Skynet and uses the runners to deploy updates to https://silver.users.skynet.ie/fyp.

Redundancy

As outlined up in recovery the main cause of faulues that have happened to the cluster is data loss.
Thanks to being in a proxmox cluster we hae access to its High Availability manager and CEPH.

High Availability

This allows us to designate key services to rollover in case of failure, so if a server goes down the other one will be able to pick up some of its slack.
Currently not fully configure, only in the testing stage.

CEPH

CEPH is network based storage, where each hard drive is able to be independently managed.
We currently have ~120TB of raw HDD capacity.
However due to inbuilt redundancy only ~35TB is usable.
Moreover its spread across multiple (physical) servers, so even if one drive/server dies the others will keep working.
It does come with a tradeoff of requiring a 10gb+ network connection between the servers.