Hutchie

Hutchie dot Scot

This post is about the development of Hutchie.scot over the years and the experimentation I’ve used it for.


History

I created my first personal website when I was in high school - probably around 2016/17. I taught myself PHP, managed to implement some basic database-backed authentication and somehow hacked together a blog-posting interface. I remember learning about SQL injection attacks, prepared queries and cross-site scripting. At the time I didn’t know much about domains and it was never, actually, public.

In 2018 - 2nd year of uni - I moved into my own flat. My friend had recommended Plusnet as a decent ISP, and they are one of the few which offer a static IP to residential customers (at the time it was a one-off £5). I really wanted to get with Hyperoptic but they don’t come to my property - and their static IP costs £5 per month. I set up a Raspberry Pi 3 in the standard LAMP config and hosted a new PHP website at hutchie.scot.

Front and back

Whenever I would get bored in university lectures I would fiddle with the website. It was a great tool for procrastinating. It went through many, many iterations: from a retro terminal with 3D wireframe planets made using three.js, to a sleek, modern design (which I found boring), to a static theme based on the GOV.UK principles and eventually the Hugo Bear blog I use now.

Although I was smart enough to use SSH keys and non-standard ports, I was also lazy enough to edit the live site. I still used GitHub, but just… for… backups.

I used many different back-end techs. Most of the time I just used Apache and PHP, but I also put a lot of effort into a Node.js implementation where I was determined to use as few libraries as possible and had fun logging requests and doing super basic analysis. I also dabbled with Python and Jekyll, eventually settling with Hugo. I always used Apache VirtualHosts as proxies for these, making it easier to configure SSL/TLS certificates (which I got from Let’s Encrypt).

 ~/Dev  ls -ls | grep -i hutchie
 0 drwxr-xr-x. 1 sam sam   396 Aug  8  2020 hutchie-dot-scot
 0 drwxr-xr-x. 1 sam sam   302 May 28 09:32 hutchie-dot-scot-php
 0 drwxr-xr-x. 1 sam sam   188 Jun 13 01:49 hutchie-hugo
 0 drwxr-xr-x. 1 sam sam   408 May 22 00:35 Hutchie-Jekyll
 0 drwxr-xr-x. 1 sam sam   378 Aug  8  2020 Hutchie-NodeJS-Rewrite
 0 drwxr-xr-x. 1 sam sam   262 Aug  8  2020 Hutchie-Python-Rewrite

I also hosted the website on different devices. Initially a RPi3 which moved between my flat and Edinburgh Hacklab, then a VM using Google Cloud (which was meant to be free but I configured it wrong, I think) and finally to using Netlify which builds and deploys the website straight from GitHub. I think there was also a time I hosted it on a ThinkPad T440p, because…

Minecraft, etc.

…I have hosted so many Minecraft servers over the years. Vanilla, Tekkit, FTB, or just a bunch of mis-matched mods. I stopped playing the game back in 2016 or so, but sometimes it’s fun just to hop back in with friends for a bit.

I had fun writing a Bukkit plugin which started up a Spark webserver within MC as an API for getting player information, which was then saved to a database and displayed on my website. I made use of Minecraft’s API to get UUIDs and skins. I like database-driven content and being able to see that my friend had spend 12 of the last 24 hours playing on my server was good material. Using the API I was also able to record experience, health, location… anything the Bukkit API exposed. Good stuff.

I hosted most of these servers on a T440p which had an i7-4700MQ from an even older gaming laptop (that I forgot to re-paste). Laptops as servers are not a good idea, generally: batteries are not supposed to be constantly charging, and laptops vent heat through their keyboards - so you shouldn’t use a laptop closed. If you can, you should disconnect the battery entirely.

I also abused the T440p by hosting a Space Engineers server for some time, using their API to store and display similar data on the website.

Domains and DNS

Gosh, picking a domain. I’m pretty proud of my country, so when .scot became available in 2014 I was already pretty sure I wanted that TLD. As for domain names, well, I had been going as Hutchie for a number of years, so… hutchie.scot it was.

I used Crazydomains because they were cheap. I have also since registered hutchie.gay via Porkbun because they’re a smaller and cuter company. I use Cloudflare for DNS because they’re very flexible and reliable.

E… E-… Email

I set up my own email server, once, in 2018/19. It… worked. It ran off of the same RPi3 as my website and used Courier Mail Server. I could send and receive emails by routing through my ISP’s SMTP server to avoid getting blacklisted by literally every other mail server, but I never worked out encryption.

That’s when I discovered that email is just fancy telnet and the entire internet is based on decade old technology, no matter how much we innovate.

I now use Migadu for email hosting and they’re really, really cool. They’re very chill and handy for personal inboxes.

#website #cloudflare #dns #domain #email #netlify #minecraft #php #let's encrypt #node.js #google cloud #ssl