It’s almost been a year to the day since I last wrote any line of code that I committed to a git repo on GitHub.

My Github Commit graph is looking awfully bare…

Burnout’s definitely been a real thing, and it’s been a real struggle to get back into the joy I had from tinkering and building things (no matter how jank the code) online.

In between fixing my health and personal life, and the challenges of being a cafe owner, I finally managed to push out some code to a new repo for a website.

I was surprised at how much I struggled using my simple docker container for php-apache, and getting it to interact with Caddy reverse proxy for my little project(s).

I’m glad I pushed through and finally did something about it!

It’s been a frantic 3 months or so since getting the cafe and the learning curve has been steep and once again, I turn to organising my home lab and home services to try and keep my technical skills going (and boy have they fallen short since leaving tech).

NPM has served me pretty faithfully all these years – but it wasn’t ever properly “configured” (API tests and connectivity checks would never work due to API failures somehow).

Containing all the sites

Every website that NPM used to point to was routed through a php-fpm container that had virtual hosts configured for it – this meant each time I had a site to have additional advanced nginx config parameters put in for every entry in it. This was a pain to do and prone to a lot of issues and errors.

It looked a lot like this:

This served my purposes quite well. But it WAS clunky to configure and add new sites to it.

Even more so, the biggest drawback was adding something like uptime-kuma or any other app to my server. Adding it as a subdomain in NGINX Proxy Manager was a muck around for some bizarre reason, and adding additional apps that worked on arbitrary ports through the web UI was troublesome. I suppose my biggest complaint at the end of the day was the webUI was somehow easy to use yet cumbersome ๐Ÿ˜ฑ

I’ve been out of the tech game long enough to be able to claim ignorance to best practices now I think, but Caddy’s straightforward “chuck everything in a Caddyfile” approach simplified a lot of things for me – and made it straightforward routing traffic to apps, or different website domains as I needed.

None of this is new, and all of this is what I used to do in my dev environments back in the day. But I hadn’t touched it in so long it feels nice to be doing something so close to the “good old days”.

Baby steps…

Well… my last post mentioned the numerous domains I own – all “jtiong” themed – and one particular site was jtiong.games

This particular domain and its purpose was more to act as a nice set of subdomains for connecting to whatever various game servers I’d be hosting (most notably Minecraft). And really, that’s all I did. I built the boilerplate code for the jtiong.games website

I suppose one thing at a time. I’ll try to find more time to put down some more commits and enjoy the process of building up my little corner of the web with no timelimits or deadlines ๐Ÿ™‚

I’d been craving the old community of Minecrafters we had during the COVID lockdowns a few years back; so I’ve decided to re-launch the Minecraft server for my community. It’s been a long long time and I hope everyone joins the server or at least leaves their mark on it in whatever little way!

I want to keep the server as low maintenance as possible by trying to stick to just Mojang official releases of Minecraft’s Server – no PaperMC or Spigot or any other modded servers. This will also reduce the temptation to make Minecraft into some weird modded dystopia where people have to install a half dozen java packages just to join.

It’s been a while since the last update!

I think it’s no surprise to a lot of people that the cost of living is making things like streaming services, media and general online services a little bit more unaffordable in this day and age. We’re all trapped by them though, and require them to some degree.

To that end, I’ve spent the last little while during my down-time running several services and resources for my family and friends. This is all well and good – everything works fine, and there’s minimal issues really. But in the spirit of homelabbing, would it really be a hobby if I didn’t set up some hyper-intricate domain name scheme that would let my family and friends access said services?

What’s changed since 2024?

Newly Deployed Apps & Services

App & Service Changes

  • Caddy replaced Nginx Proxy Manager for locally hosted stuff

Infrastructure Changes

  • DOMAIN NAMES – I’ve now updated a whole bunch of domain names
    • jtiong.com
    • jtiong.com
    • jtiong.dev
    • jtiong.media
    • jtiong.network
    • jtiong.games

As you can see there’s a whole network of domains now ๐Ÿ˜œ

Each domain has it’s own set of subdomains which of course, expose various services and software for my family and friends to use ๐Ÿ™‚

Previously I ran a server rack on a 1000/1000mbps symmetrical service to my home (Ethernet provisioned from an ISP) to provide a number of personal media services to myself, friends and family.

Having had to relocate across 3 properties in the last 12 months however, drastically changed things – and I’ve since fallen back to a single 4RU server that’s packed to the gills with storage, and uses generic off-the-shelf consumer parts to keep going. There’s been a lot of benefits to this actually.

  • It’s simple to get replacement parts
  • Noise is kept to a minimum
  • Reliability and up-time is a little less than enterprise hardware, but otherwise acceptably usable

With my recent trip to Japan and return – I’ve found the need to actually back up all my photos and media into a singular place that’s much easier to manage. So now I just run a single monolithic server called JT-SERVER which provides all the services I need.

Services I’ve built up to use nowadays are:

That’s it – nowadays there’s very little I do in the way of other things. A game server is still desirable but it’s not the highest priority for now. Maybe in the near future I might run:

  • Minecraft (resuming previous efforts)
  • Satisfactory (occasional)
  • Factorio (occasional)

But otherwise most gaming requirements and needs for my “village” of friends and family aren’t necessary.

I think over the course of 2024, I’ve had to be much leaner, out of necessity. And I’ve come to find that some things just aren’t that necessary for “me and mine”. As I go into 2025, I head in with the goal of not buying any new technology, but rather just maintaining the status quo of what I have, and building a necessary platform of services for myself and my loved ones. It’ll be minimal, and a lot more wallet friendly, I think.

The branding & theme was named by my partner, Annie ๐Ÿ™‚

I actually started this specific post as an addendum to my previous post; but realised that there’s enough in here that I want to talk about on both a personal and technical level that it should warrant its own entry.

Why “Minty Charmander”?

Well, Annie thought the colour scheme reminded her of a Charmander, and combined with the light green highlights – “Mint” ๐Ÿ™‚

The colour scheme uses a number of my favourite colours in a limited palette – purposefully, as I recall from some old design course literally a couple decades ago now, that in UX a small number of colours that can be interchanged and not conflict with each other, was better than a large dynamic swatch of colour for getting information across.

I am using the ol’ trusty Bootstrap framework for the UI and layout of everything. I don’t have any real special rationale for using Bootstrap – it’s just what I’m most familiar with; I think as I ease myself back into coding from a long break, it’s nice to just crawl before I can walk, before I can run ๐Ÿ˜…

Planetscale?!

Laziness and the idea that I needed a stable service to run a DB for my little projects convinced me to continue with Planetscale – yes, it costs $47 USD a month, but it’s more stable, and more nicely managed than I could ever do with a random self hosted solution.

I decided to continue paying it for the time being, pending further efforts to make things self hosted down the track, but for the time being – it’s nice to have a DB that is:

  • highly available;
  • able to spawn itself into a main, and dev branch

I could probably implement this without a paid system – but I feel like the DB service works as a backend for multiple systems (as it would if I were to self-host) – and that’s a single point of failure that I couldn’t upkeep like a service that is designed to stay online professionally.

End of the day, it’s actually pretty easy to justify the cost of this database for myself; and I’ve spent more on dumber stuff in the past. At least this is a sensible subscription ๐Ÿ˜œ

So, what’s next?

Well, the branding is mostly done, but there’s a few missing things like Search results statistics, and category browsing callouts, to name a couple of things. I’ll be taking my time fixing everything, and eventually hope to start using this blog a lot more to diary more things that I get up to on a more personal level, as opposed to just dumping whatever pseudo-technical stuff comes across my mind!

We have a new look for the blog! I hope you all like it ๐Ÿ™‚

For those that are curious, below is how things used to look (not too long ago!)…

How my blog originally looked

I’ve been using a theme called Independent Publisher now for about 7 years or so. And while I am indeed retired; I didn’t want to let my technical skills (as little as they are) go to waste nowadays. So I updated the look to both jtiong.dev, and jtiong.com to match similarly in branding now ๐Ÿ™‚

It’s been more than a moment since I last touched a WordPress Theme, and so I’ve no doubt that there’s bugs and issues with the new theme you see now (built from scratch lovingly over a day or so, as you’ll be able to see from the Commits on jtiong.dev!). But this change will give me plenty of things to do to fix and maintain for the future with this blog.

And now finally after most of a day’s work, my domains are starting to be a little bit more on-brand! โ™ฅ

I previously posted about jtiong.dev – keeping my commit logs going and making things presentable for future collaborators and colleagues, as well as my own little bit of self promotion on the internet.

With my recent break in work and taking the time to both sharpen and upskill myself – I thought I’d bring this into the new future with the site pulling from my Github account instead of a now defunct GitLab installation.

In the current “1.0” version:

  • Commits are automatically fed through via CURL request
  • There’s no censorship for any potentially sensitive information
  • There’s no authentication for management of commits/repos
  • There’s no filtering you can do
  • The date/commit times are inconsistent

Not to mention it’s GitLab powered and as I’m currently working through some property changes – I’m bouncing between two properties and the server hardware hosting GitLab is currently turned off.

Queue, my move to using Planetscale as my core DB service for my personal online stuff, and moving my code to Github where possible (because it’s where everyone else is).

For version 1.1 which upgrades this, I’d like to add:

  • A system with Auth that lets me hide a repo, or a given commit hash for any potentially sensitive info from being revealed
  • A filtering system by repo so you can see, per repo, the commits to that repository
  • More accurate representation of the commits/date/timeline

Implementation Logic

Just a couple of loops to go through Repos โ†’ Commits is all I really need for my personal scale. Below is a very simplified diagram:

This’ll all be included into some cron tasks that run maybe hourly or so to avoid spamming GitHub.

It’s just simple little pleasurable busywork to be honest, but after about 6 months of not really touching any code and taking my time with stuff, it’s nice to get back into the groove!

Very recently my time at MindArc sadly came to an end; so I’ve been working to skill up with some of the things I’ve gleaned from my time there. Even though it was a short time, it was a great learning experience coming into an eCommerce agency.

I’m looking at using the following tech stack to resurrect my currently dead jtiong.com site!

  • Cloudflare Workers
  • Cloudflare Pages
  • PlanetScale DB
  • Remix.js
  • Tailwind CSS

I’m adding on to the PHP skillset (although not abandoning it!) – with a few of my other tools I build still using PHP (such as this repo for one of my Rust game servers)

After my time at Padua learning Angular (which I found really confusing); and struggling for a bit – I think I’m ready to dive into using typescript with Remix to do a lot of stuff. This’ll be interesting…!

January and the start of February also brought on a look at better brain dumping knowledge from inside my head, into something tangible. Sort of a legacy thing, I think.

Obsidian has been a note taking app that’s based around the markdown plaintext format that’s been around for years. A lot of my friends with a hyper technical background have been huge advocates of Obsidian and in an effort to find something that’ll let me brain dump with an intelligent linking method that is code friendly — Obsidian came up time and time again.

Obsidian’s Graph View links Notes and provides a visual representation of these Notes to show how they relate to each other! It’s really interesting to navigate around!

This blog post is generally just me rationalizing why I’m switching to it, over the two existing services I use (and pay for) – Notion and Clickup – both of which are fantastic apps for people who need something a little more fancy. But up front, I think it’s best to talk about the cost of these apps. Both of these apps are wonderful; they cost money however, at $5 USD and $12 USD respectively, and this adds up to a little over $200 USD per year. More than one might think to affect one’s finances in these trying times!

And soโ€ฆ! In a bid to move towards reducing my overheads, I thought I’d look into DIY solutions that I can integrate or piggy back on more critical services. In this case, Obsidian – which can use iCloud Drive to store itself works well. iCloud isn’t a service I can easily get rid of – my mobile phone, my tablet are both rooted deep in the Apple ecosystem, as there’s health related devices and apps that are better on iOS than in Android or Windows for my situation (your mileage may vary of course). Lucky for me though, that this is still usable across Windows – meaning I technically don’t need to worry about something like the paid Obsidian Sync service.

Security is also another thing I find myself concerned a little bit about. There’s not much I can do about state level bad actors gaining access to my data (and I don’t think anyone’d find use for it) – but your typical cyber criminal is still a concern because they’re on an interpersonal level. Last thing I need is sensitive data (like health records) getting compromised and having them leveraged against me. But to make things worse, it turns out that Notion isn’t encrypted on any level – which kind of explains why it’s so easy to publish something directly to the web.

Scary.

Clickup is also web based and doesn’t do much better. I feel like Notion and Clickup don’t have the resources to build privacy on a level that Apple does with its iCloud services. Having been subject to some very public breaches of customers data (not Apple’s fault – they got socially engineered) – Apple has no doubt more than doubled down to make sure it never gets the blame for any cyber security breaches.

So, all in all – I’ve moved to Obsidian and as of the time of this post, it’s been almost 2 weeks. So far I’ve started to slowly port across the knowledge dumped in Notion into it. It’s a long, slow and tedious process, but the beauty of the way Obsidian draws links between articles (Wiki-esque) means that I don’t have duplicate style documents, unless I make them forcibly within the file structure of the Vault itself.

It’s also nice that I can write SQL-esque “Dataview” queries that can generate lists of pages within things. It feels a lot more like a programmer’s knowledge assistant than a “Note taking” application.

It feels natural using Obsidian now, and I keep improving how I use it as I go along, it’s still got that shiny new “Learning new hacks all the time” feel to a new application.

It feels like The Right Moveโ„ข

I’ve been back into coding this month, on my own projects and not just for work. The passion isn’t “burning bright” anymore, but I’m working towards reigniting it by finding coding little bits of things doing what I want, etc.

https://jtiong.dev is a bit of a commit msg logging script that I had written and integrated with my local GitLab installation; but as you’ll see if you visit the site – October’s my highest number of commits in recent memory on personal projects.

The reason for the skewed figure is because up until about August 2022, I had most of my projects stored in GitHub. Some part of me still thinks I should keep things in GitHub – but I’m looking into using that as more of a backup style system.

The Code Backup Project

I know GitLab has a “mirror repository” feature – but unfortunately it doesn’t seem to be working very well for me (too fiddly).

So to get around that I’ll be looking at building my own little automated flow:

It’s not an ideal setup – but I think it will work for my needs. Because of how nagging it is, I may well end up writing the automation script entirely in PHP (this way, I can integrate notifications to myself over Discord and other things).

Other Projects

This month though, I also worked on:

  • snackpack.gg – integrating it with my Snack Pack discord server which’ll let friends and family login with their Discord accounts, and see private content on the domain (members only areas)
  • topdownshooter – my first sort of game project, name is self explanatory, written in Godot Engine, sort of to prove to myself that I can make a game that’s more than just a random prototype. It should have levels, a menu, and be packable as a real release
  • Private Broadcasting System – a private broadcasting system for a friend – she’s an online radio DJ and runs a virtual club which people can tune in and listen to/participate in a talkback radio show

All-in-all, it’s pretty cool to get back into doing some tinkering things, and having the time and wherewithal to do them.