Continuous Deploy Of Gopher Site

Wed, Sep 18, 2019 | 700 Words

A few months back I built a tool to cross-compile my Hugo blog into one that can be accessed via the Gopher protocol. More recently, I built a CI/CD pipeline on my GitLab* instance which automatically compiled and uploaded my website to AWS. I won’t cover that here, but I found a wonderful and perfect guide for it. Sometime yesterday I decided to take this all one step further and integrate my hugogopher into that CI/CD pipeline.

GNU Terry Pratchett on CloudFront

Mon, Sep 9, 2019 | 800 Words

Not long after the passing of Terry Pratchett, revered author of the Discworld series (and many other excellent works!), people everywhere wanted to find ways of memorialising him in their own ways. One great solution was based around adding headers to web requests. The “clacks” sempahore system in Terry Pratchett is a form of low-tech, distributed, packet-switched network much like the internet and so it seemed fair to modify our systems to carry on his legacy.

BitBucket Ends Mercurial Support

Wed, Aug 21, 2019 | 500 Words

An announcement went out today from BitBucket, one of the largest players in the version control platform market. They let the world know that due to declining popularity, they were going to stop allowing Mercurial repositories to be hosted with them. But not only will they stop allowing new repositories and new commits, they will completely delete all existing repositories by the middle of next year. Of course, a private company such as Atlassian is allowed to make their own decisions about their web presence and what they do with it, it is within their rights.

New Server

Wed, Jul 10, 2019 | 500 Words

As a reward to myself for 6 months of regular posts - no mean feat given my previous history of blogging - I have allowed myself to splurge and purchase parts for a new ‘server’. In this case I didn’t use proper server components like my NAS re-re build, deciding that for the bang-for-buck I wanted wouldn’t be found trying to source Intel Xeon processors. I also wanted to avoid the sort of over-sized rackmount or workstation monolith that comes with powerful SME machinations and go for something meatier than the small business builds you find in things like the HP N40L MicroServer (one of which I already have from years ago).

TCP Proxying

Wed, Jul 10, 2019 | 400 Words

Problem I recently purchased a new ‘server’ and started setting up a bunch of services including GitLab and Taiga. I also want these services available outside my home network but I also want to meet at least the bare modicum of security by having my sites secured via TLS. This isn’t too much of a problem if they’re all hosted on the same IP address or each service has a dedicated IP address like you’ll find in many public scenarios.

OpenNebula miniONE Networking Issues

Sun, Jun 30, 2019 | 200 Words

Running OpenNebula or miniONE on a single host with one NIC? Watch out! OpenNebula/miniONE creates a “dummy” interface with an address like and then attaches the bridge to that directly. While this is probably useful for trialling and not having your virtual machines visible/attackable from the outside world, you might want to make them visible to other hosts on your LAN. What you’ll need to do is go into /etc/netplan/minione.

Playing Around With Gopher

Tue, May 14, 2019 | 400 Words

Released in 1991, Gopher was a protocol designed for retrieving documents over the internet and a direct competitor/predecessor to the World Wide Web. The system of hierarchical menus and documents made it excellent for information organisation and allowed digital libraries and interconnected directories, bridging gaps between research campuses. It’s simple protocol was also well suited to text-only output devices, but the rise of graphical user interfaces probably assisted in it’s slow demise compared with the lurid layout and formatting capabilities of HTML.

Multiple Containers With docker-compose

Sun, Apr 21, 2019 | 300 Words

For my game project, I want to have multiple Docker containers started up at once which are all linked together by easy-to-use hostnames (not terrible auto-generated Docker hashes). The solution to this arrived to me pretty easily thanks to my friend @will2bill on Twitter who pointed out that Docker Compose is a thing! By declaring a YAML manifest file called docker-compose.yml and filling it appropriately you can have a series of linked containers come up easily with a single command, sudo docker-compose up -d.

Elasticsearch Blog Search

Sat, Jan 12, 2019 | 1000 Words

One of the main drawbacks I can think of to a static blog is the lack of easy search function. Because all the files are pre-generated HTML, CSS, and JS, there’s no server-side interpreted language that can perform actions and no database of posts which can be filtered. I decided to change this and did a little proof-of-concept on my local machine for how it would work. If you’re running a Hugo blog, you can repeat my little experiment yourself!

SSH Permissions

Fri, Jan 11, 2019 | 200 Words

When you’re setting up SSH on a new Linux install you need to be aware of the right permissions for your files - especially if you’re manually importing files from another installation. Below you’ll find a list of what permissions are required for what files/directories. To set these permissions, just run chmod XXX FILENAME where you replace XXX with the permission number and FILENAME with the file/path. .ssh directory - 700 - this makes it not writeable by other users.
First - 1 - 2 - 3 - 4 - Last