Is This Thing On? (Yes, it is!)
This post is a little late, but as of writing this, the website is now live and accessible from the internet. To commemorate this, I figured I would talk about how I went about making it so, and what plans I have for it.
The idea to make my own website started around October. I had been browsing the decentralised network Freenet, and seeing the number of personal sites there made me want to create my own. I did so, actually. The first iteration of this website was plain black text in a light-grey box with a dark-grey background. The core layout was very similar to what it is now, with a box 800-1000 pixels in size containing the main body of the site, and the rest being reserved for a background. The main difference was that Freenet encourages the use of as few individual files, and so both the style information, the “about” page and all the posts were contained in a single HTML document. I wrote one article for that website, about Free and Open Source Software, and uploaded it on the network.
Soon after, I decided that the hassle of keeping everything on one page, and making the page actually findable wasn’t worth it, so I dropped that idea. I kept writing articles, though, with hopes of finding a place for them someday. About two months later, starting in late December, I decided to approach the topic again. I followed the same design formula, this time opting for separate HTML and CSS files, as well as a more colourful appearance with an actual background image (it was a photo of a lake) and a proper logo made in GIMP. Satisfied with the site, I looked for ways to get it online. I got myself a domain, and looked for guides on setting up a web server.
Initially, I wanted to utilize a “dedicated” server in the form of a virtual machine. Really, it would just increase my resource consumption, but I felt like restricting a server to a VM would prove beneficial security-wise. Plus, VMs are just plain cool, so if I can use one, I want to use one. I never got to test that theory, as the server ended up being inaccessible. I could visit the site from the computer running the VM, and the VM could ping any other device on the local network, but these devices could not ping the VM or visit the website. A lot of attempts at troubleshooting later, I finally gave up and just used the main system of the computer as the host. I worry about potential attackers somehow using the server to breach into my system, but as far as I only use HTML and CSS, and avoid databases, PHP and other such things, I reckon I’m safe enough.
I got my IP hooked up to the domain I bought, and at long last, I had a website on the internet. But right then, I also decided to redesign it. The old design wasn’t bad, but there were some things that were on the edge between cool and tacky. Furthermore, as I was writing the Blu-Ray article, I became aware of how unoptimized the “back end” was. By that, I mean that all my CSS was contained in a single document, and as my posts evolved from being purely text-based to including images additional compartments and the like, the amount of new classes and IDs was quickly becoming a hassle to keep track of and use meaningfully. Additionally, inspired by the Low Tech Magazine, I sought to make my website as small as reasonably possible. And so, I set to work. I created additional CSS files and sorted all the tags accordingly, I replaced the PNG logo with ASCII art to save space and look more retro, I replaced the big, 1920x1080 background image with a simple pattern that can be repeated indefinitely and still look good. I resized all the images and experimented between PNGs and JPGs to find what resulted in the lowest file sizes. All in all, after I was done, I got the look that you see currently, and reduced the total size of the website’s files from 4,8 MB to 3,0 MB. 1,8 MB may not seem meaningful, but I’d rather start with good practice now than decide to do it a year from now and have a huge back-catalogue to deal with.
It was time to announce it to the world. Or, really, to my Mastodon instance. I wrote about it and got some responses and suggestions. With helpful comments from Werwolf, Anonymous kun and BrightNeighbor, I set about tinkering with the site further – mostly changing hardcoded pixel values to percentages – to make it much more appealing to look at on mobile. I only really tested how it looked on desktop resolutions, before. With helpful information from Phate6660, I also implemented HTTPS, with a certificate from EFF’s Let’s Encrypt.
So that’s where I am today. What about tomorrow? Well, like I mentioned, the server is hosted on my computer. Thankfully, the traffic (both number of visits and amount of data transferred) is so small that there is no impact on the usability of either my PC or my internet. Still, I need to either keep the computer turned on all the time, or turn it off for the night like I usually do and end up with a website that’s not functional 30% of the time. Neither of which is ideal. I am not sure which option I’ll go with for the time being, but my end goal is to get a separate device, like a Raspberry Pi, and use that as the server.
A web server is only my first step into “server stuff”. On a list of things I want to do is a personal Mastodon instance, a personal e-mail server and a network-attached storage. The last one probably wouldn’t go well with the rest and would need a dedicated device. All of these can already be gotten either freely or rather cheaply online, but my reason for wanting to do them isn’t necessity, but curiosity. I want to get experience in setting up servers because I find it interesting, and if I get some extra privacy while I’m at it, all the better.
So, about those articles. At the moment there is seven of them. I have already noted down ideas for at least five more, but they’ll take time to write (one will require a fair bit of research and likely end up 10-20 thousand words long). Thankfully, I’m not starved for content just yet.