- Choose and purchase a Domain Name.
- Write website using HTML and CSS. When writing the HTML, make sure addresses to other pages, images etc..,
are addressed using the Domain Name, that is, addresses should start with https://[Domain Name]/. Give consideration
to copyright and provision for multi-device support. Ensure the directory tree to your website files has permissions that allow
access for external users whilst not compromising system security.
- For security, purchase space on a remote server with an Ubuntu instance (or some other operating system) installed.
This will ensure that if your webserver is hacked, your personal machine (e.g., a laptop at home) and data will not be compromised.
- Install the Apache2 webserver on Ubuntu and set up the server for your Domain Name.
It is best to create a new Virtual Host for this, which preserves the default Apache2 server setup,
and provides the possibility of hosting more than one website from the server.
- Link the Domain Name to the Public IP address of the Ubuntu instance by creating a Domain Name record.
I did this using the service provided by the Domain Name provider.
- Set up the Ubuntu Firewall correctly using the UFW (Uncomplicated Firewall) system.
This includes enabling the correct Port Forwarding which forwards traffic contacting the
Ubuntu Public IP address (linked to the Domain Name) to the Ubuntu Private (internal) IP address, giving users access to the website.
- Configure HTTPS, which encrypts traffic between client and the Ubuntu webserver.
This safeguards client data sent to the server, impedes attempts to intercept traffic,
and makes the site look safer and more appealing to users. Google gives priority to secure sites in searches.
Purchasing space on the remote server made steps 3. to 7. easier since the company running the
remote server provided detailed step-by-step guides to help complete the steps.
Basic knowledge of Shell scripting is a pre-requisite. The Domain Name provider I used were helpful in
setting up the correct Domain Name records. Finally, there are near endless online tutorials about writing with HTML and CSS, and Shell scripting.