• For a while I’ve been intending to set up a second ‘send only’ mail service for this site to handle my automated notifications and status messages. I had been using a different TLD thus far, but wanted to have a [email protected] style email going out. I was keen to not use my primary email accounts for these notices. Leveraging a second mail delivery service turned out to be pretty easy.

    The following is how to do this with your primary domain, and without resorting to subdomains. The intention is to be sending email in such a way that it has a high likelihood of reaching its destination, which means not just spoofing the address, and leveraging SPF and DKIM, to reduce the likelihood mail is treated as spam.

    (Continue reading…)
  • Recently my personal site passed 20 years. I’m not 100% sure on the exact date it went online, but Smigit.com looks to have gone live sometime around January 2024. Over that time I’ve had multiple iterations of the page, and in recent years have more recently changed the domain to courtenay.net after a short stint as courtenay.io.

    I thought it’d be interesting to go back and look at some of the designs over the years with Archive.org’s Wayback Machine. In many cases I didn’t even recall having used certain designs. Over time the site has certainly evolved from a more journal (stream of conscious) like platform with initially a forum attached, to something I’ve used more sparingly for blogging. The shift potentially has aligned with the rise of other social media platforms that I increasingly used around 2010. By 2020 I had de-emphasised the blog aspect entirely and had just a bit of a portfolio/cv style page in a design that never fully got fleshed out, before bringing blogging back more recently.

    The Internet of January 2024

    Before I jump into the screenshots I’ve taken, I thought it’d be fun to note what 20 years of the internet looked like.

    • In January 2004, MySpace was 5 months old. Facebook would not arrive for another 13 months as “TheFacebook”, and it wouldn’t be until September 2006 that just anyone could sign up (initially Facebook was limited to people with select college email addresses).
    • Gmail would not be announced until 3 months later, on April 1 2024, as an invite only beta. It would launch with a 1GB mailbox that would spend several years expanding its capacity daily. It was not until Feb 2007 that signups without an invite were possible. Microsoft responded to the initial Gmail announcement in 2004 by itself announcing in June that it would increase their Hotmail services mailbox from 2MB to 250MB.
    • YouTube would not launch until December 2015, almost two years later.
    • Twitter, Instagram, Google Maps and most other common platforms did not exist.
    • Internet Explorer had 80% of the browser market, with version 6.0 being around 55% of that.
    • Lastly, WordPress was at the time 8 months old. It would go on to become a dominant platform online for hosting sites with reportedly around 43.1% of sites in 2024 using it. While I wouldn’t use it day one, I did move to the platform relatively early on in its life (during the 1.x period).
    (Continue reading…)
  • A key driver for me blogging these tech guides is to allow me to recall things down the lane that I may need to do again. I’m using the blog as the platform to do that instead of say a bookmarks manager, in case it’s of interest to anyone else. This one’s a short and sweet set of steps required to install Docker Compose. Well documented and very standard stuff, but for some reason I’ve come across needlessly convoluted instructions a few time in the past, especially for Compose.

    (Continue reading…)
  • I’ve been keen to give Nextcloud a spin after hearing the products name come up quite often in discussions concerning open source solutions that people find to be absolute game changers. For those unaware, Nextcloud is a platform not unlike Google Workspace or O365, and allows admin to make various productivity tools available such as email or calendar clients, file management, and document editing. Being self hosted, it’s a way to break away from the big players in the space and deploy a solution where you solely own the data. I haven’t used Nextcloud enough to say whether it is actually worth your time or something I can replace those other commercial suites with, but did feel compelled to document the steps required to set the product up.

    In this guide I’ll be deploying Nextcloud using the All-In-One (AIO) install method, which is a newer docker based approach that is presented nowadays as the recommended means to install Nextcloud. Direct install to the OS is still available. Nextcloud is being setup to be externally accessible and not just limited to a local network.

    Along with the installation of Nextcloud, I’ll be looking at the steps taken to secure aspects of the administrative interface. The AIO installer will install Nextcloud itself as well as an Admin UI for managing containers etc that I believe to be unique to this deployment method. It’s this secondary interface that many recommend not be published to the internet (it allows changing of some low level stuff), however it was a bit of a struggle to find information on how to achieve this in a manner where the frontend could be accessed from anywhere and the backend on demand without relaxing firewalls constantly. I ultimately added a Wireguard VPN to the setup and then restricted the admin UI to access via the VPN. I’ll go over that here.

    (Continue reading…)
  • Chances are you’ll know your VPS IPv4 address if your plan has one as your provider will email it to you on signup and it’ll feature prominently in your accounts control panel. Identifying your servers IPv6 address can be a bit more involved, but necessary if you’d like to configure an AAAA record for your domain’s DNS to allow connectivity by IPv6.

    The quick answer is to run the following command and then select the output on ETH0 (or ETHn), with a ‘global’ scope that is valid (valid_lft) ‘forever’.

    Bash
    ip -6 a

    The above command, while filtering out those without the correct scope or validity period, will get you the IPv6 address for public access.

    (Continue reading…)