How I created this website?
A web page
A website is basically a collection of files. A web server then serves these files over the internet to the client web browser.
This site
This is a simple static website that could be done fairly quickly with some guidance by even a complete beginner. In the course “Introduction to Digital Services” we did just that, the main assignment was to create your own website by only using html, css, and even JavaScript if you know how to use it.
I was not completely satisfied with the website I had created and it was a mess to update. So I came up with the idea of a blog website where I could easily make updates and do posts like this one.
Jekyll
This site is made with Jekyll. Jekyll is a static website generator with focus on easy blogging. You can write content with MarkDown, which Jekyll then generates in to .html files. This is the standard “minima” theme with only few minor modifications. I like how easily I can create new content, and all the links are done automatically. Jekyll also has a nice built-in feature to serve the website locally in real time, so testing is easy.
VSCode
I am using Visual Studio Code to write everything in to this site. VSCode is pretty nice, since it shows the folder structure always.
To write a website on your local computer doesn’t get you anywhere, so you’ll have to find a way to publish it. You will need a name service and a server to serve the files on internet + an SSL certificate to be able to use HTTPS protocol. On top of that, you need a pathway to send those files to the server.
Name service and cloud server
I use Namecheap name service, which was recommended by Tero Karvinen. My cloud server is rented from UpCloud. I chose UpCloud, because they have fairly good prices for the cheapest servers, and the server is located near me, so the traffic works very quickly, especially with a low resource static site like this. The domain name service needs to be configured to translate santerivauramo.com to the IP-address of the web server.
Next step is to set up your server to serve files with a web server daemon, and for safety, configure a firewall to only accept connections from ports:
- 22/tcp (SSH)
- 80/tcp (HTTP)
- 443/tcp (HTTPS)
Now we have a website, domain name, and web server. We still need a way to send the web page files to the server. For that I configured SSH connection from my home PC, to my cloud server. I am using Git version control system to force push my files to the server.
SSL Certificate
We are almost there! We still need an SSL certificate for secure HTTPS. I got my certificate from Let’s Encrypt which is a free of charge SSL certificate provider. I also configured the certificate to be automatically renewed, so I don’t have to worry about SSL certificate expiration.
Costs
- Server: 3€/month
- Name service: 12€/year
- Total: 48€/year
Not totally free, but not very expensive either. Anyway, this is a great playground for my own little projects.