WebTechnologies 2E0FWE - HLD

  • home

HLD

HLD
HLD for WebTechnologies site

This section covers the High Level Design of the solution which drives the content of this site. The webserver and public DNS servers are located in London and Sheffield providing a public http/https web service for users from any location to use

All of the backend equipment, such as Radios, Storage Databases and WebCams are in Bournemouth

Public / Private & IPSec

The hosting provider gives virtual ESXi hosted instances. They have managed firewalls allowing the relevant public (http/https) access

For the data to populate the websites, all of this is traversed via an IPSec VPN, whereby further actions via rsync via ssh, git + ssh and private APIs

API & JavaScript

The Server Side API is based on Node.js and Express. This allows API calls directly to the Database which are done via the Nginx Reverse Proxy

The Reverse Proxy uses the IPSec VPN to traverse to the private network and is wrapped in the public https/ssl of the webtechnologies domain

Public WebServer, Private SDR and Weather RSsync

The WebServer sits behind the Nginx proxy allowing SSL termination at NGinx and webcontent to be proxied to the upstream apache service

All the HTML, JavaScript and CSS is hosted on the Webserver. It is populated via CI/CD Feed from Gitlab on premis with commits to 'master'

triggering a full rebuild of the site. Ultimately this should be done to a Kubernetes Blue/Green deployment, but is beyond the scope of the module to complete

The Weather website is rsynced from on-premis where monitoring equipment is and content procdued by WeeWX

Development

All Development is done locally and to a SSH Agent based server, allowing commits across environments and publications on merges to 'master'

This ensures that no content is lost or altered in the Development process and all code is backed up to both on-site and AWS S3 storage

Dynamic Content

All the Content from the WSPR Reports is transmitted from QTH IO90BS at 10 minute intervals, pulled from WSPR then loaded into the backend database

API calls then populate the static HTML and CSS within the WSPR pages to give various top 10 and current/latest/SNR information to assist in the

Antenna performance and propergation charateristics of the 40m WSPR frequency

Monitoring/Alerting

Whilst basic, there is enough components and services to make monitoring essential. Nagios is setup to before basic host and service checks

When a server or location becomes unavailable, an email is sent to the admin

Scripts

Two Python scripts were developed and published on Github to scrape data from WSPR and the Weeatherstation

WSPR Python

Weather Sleuth

World Time
UTC US - Sanfrancisco US - Newyork Spain - Barcelona UK - London Russia - Moscow India - Delhi Japan - Tokyo Australia - Melbourne