Past Entries...

101 posts since April, 2016!
posted this in: Servers, Software, Technology
217 Words

With the implementation of my JT-LAB homelab; it stands to reason I should probably self-host whatever I can to try and get a decent use out of the stupid amount of money I’ve poured into the project. Being able to ensure I’m only sharing the data that I want to share as well (for whatever reason) – is pretty important to me as well.

Normally, the majority of my code to-date, has been stored on Github (which is fine, it’s fantastic and it’s an amazing free resource for the world). But my workplace had an implementation of Gitlab that I thought was done pretty well.

So, I’m going to take it upon myself to implement GitLab into JT-LAB, and make sure there is a version of my work that runs from GitLab. Github will essentially become my backup for code (Github being way more reliable in uptime than anything I’d run like GitLab etc.)

Why is this so important?

GitLab is going to work as my core repository and project management system; with it, I’ll be able to store and update my code for various projects as previously mentioned

What’s the challenge?

Well, after some wrestling it’s implemented – however the one area that I’m most unsure with, is the AutoDevOps feature of GitLab.

Lots to learn!

posted this in: General, Personal, Software, Technology
400 Words

So, I’ve got a “main” website – https://jtiong.com (which is currently Error 500’ing)

Which runs on a fairly old version of Laravel. Since it’s inception; the site was used mainly as a central one-stop shop for everything about my presence on the internet. Oh how times have changed.

Nowadays, it makes more sense with a number of domains I own, to split up the content and footprint of my stuff on the internet from a singular jtiong.com website, into a number of different sites based upon what people trying to find me for, or to categorise the activities I do.

Domains I have include:

  • jtiong.blog (this site) – my personal blog, which is strictly just personal, non-professional stuff
  • jtiong.dev – where I hope to eventually host some sort of software development info about myself
  • jtiong.network – currently a serverless site experiment, however I hope to change this
  • jtiong.com – a central landing page from which people click through to the other domains

So what does this mean?

Two new projects! The .com and .dev domains which will be important as part of my “online resume” so, I really should get them done sooner rather than later…!

However, this also means I need to really look into how I implement these!

Laravel will be driving:

  • jtiong.com – a landing page/gateway system
  • jtiong.network – services and resources for friends & family

I’m looking at using the Socialite package for Laravel to integrate login via Discord, this’ll mean that certain links and features will only be visible based off friends & family that have certain roles in my Discord server; or at least, that’s been the original intent.

My Own Framework (which I call Spark) – will be driving:

  • jtiong.dev – dev blogs, resources

This dev site will be more of a technical dump to keep me consistently working on my coding skills. The setup of this site is a traditional website that’ll ride on the tails of my intended GitLab installation. The fallback of course, is to just use the GitHub API, but I’ll only start looking at that later.

The site should just start listing out my commits and on what projects they’re made on to try and keep things accountable and interesting. It’s just a cool little showcase project.

More features might be added later relevant to doing development work in the future!

posted this in: Hardware, Servers, Software, Technology
157 Words

I recently chose to go the Unraid route with my media storage server; I was lucky enough to be given a license for Unraid Pro, and straight up, let me say:

  1. It’s easy to use
  2. It’s beautiful to look at
  3. It’s stupid simple to get working

BUT

My server uses an old spare desktop I had lying around:

  • AMD Ryzen 7 1700 (1st generation Ryzen)
  • 32GB DDR4 RAM
  • B450 based motherboard

But therein lies the problem. It turns out that Ryzens crash and burn with Unraid by default. You need to go into your BIOS settings, and turn off the Global C States power management states settings. Insane.

Why am I writing about this?

Because it took me 2 weeks to reach this point, wrestling with Windows storage, wrestling with shoddy backplanes in my ancient server chassis (which I then ordered a replacement case which set me back a pretty penny); new SAS controller; new SAS cables…

This is an expensive hobby, homelabs.

posted this in: Hardware, Servers, Software, Technology
238 Words

Local media storage. Yeah.

That’s right, I’m running Windows 10 Pro for a home server 😂

It’s been good so far, the machine is pretty old, but it is there for running things like local media storage, maybe a few other things that aren’t GPU reliant. It has an ancient PCIe 1x GPU in it (a GT 610 haha) that can’t really do anything more than let me remote in and work on the PC.

Although I do definitely want to run:

  • Core Keeper
  • V Rising

On the PC for friends and family to check out 🙂

Storage is a bit interesting; I forked out for StableBit Drive Pool and StableBit Scanner (there’s a bundle you can get) and it’s a simple GUI to just click +add to expand my storage drive with whatever randomly sized hard drives I have.

Why’d I do this instead of the usual zfs or linux based solution?

Mostly to keep my options open; it’s nice seeing a GUI and if Windows can handle my needs for my local network, I’m not doing anything extremely complicated, and the “server” it’s on is going to act as a staging ground for anything pre-gdrive archive.

I could just as (probably more) easily achieve the same results doing this over something like Ubuntu Server; except for the game servers mentioned above. There are some games that just require a Windows host much better, so this is what this machine is for.

posted this in: General, Servers, Software, Technology
564 Words

April and May’s been a busy time for both technically for work, and at home with JT-LAB stuff. Work’s been crazy with me working through 3 consecutive weekends to get a software release out the door, and on top of that working to some pretty crazy requests recently from clients.

I had the opportunity to partially implement a one-node version of my previous plans, and ran some personal tests with one server running as a singular node, and a similarly configured server with just docker instances.

I think I can confidently say that for my personal needs, until I get something incredibly complicated going, sticking to a dockerised format for hosting all my sites is my preferred method to go. I thought I’d write out some of the pros and cons I felt applied here:

The Pros of using HA Proxmox

  • Uptime
  • Security (everyone is fenced off into their own VM)

The Cons of using HA Proxmox

  • Hardware requirements – I need at least 3 nodes or an odd number of nodes to maintain quorum. Otherwise I need a QDevice.
    • My servers idle at something between 300 and 500 watts of power;
    • this equates to approximately about $150 per quarter on my power bill, per server.
  • Speed – it’s just not as responsive as I’d like, and to hop between sites to do maintenance (as I’m a one-man shop) requires me to log out and in to various VMs.
  • Backup processes – I can backup the entire image. It’s not as quick as I’d hoped it to be when I backup and restore a VM in case of critical failure.

The Pros of using Docker

  • Speed – it’s all on the one machine, nothing required to move between various VMs
  • IP range is not eaten up by various VMs
  • Containers use as much or as little as they need to operate
  • Backup Processes are simple, I literally can just do a directory copy of the docker mount as I see fit
  • Hardware requirements – I have the one node, which should be powerful enough to run all the sites;
    • I’ve acquired newer Dell R330 servers which idle at around 90 watts of power
    • this would literally cut my power bill per server down by 66% per quarter

The Cons of using Docker

  • Uptime is not as guaranteed – with a single point of failure, the server going down would take down ALL sites that I host
  • Security – yes I can jail users as needed; but if someone breaks out, they’ve got access to all sites and the server itself

All in all, the pros of docker kind of outweigh everything. The cons can be fairly easily mitigated; based off how fast I file copy things or can flick configurations across to another server (of which I will have some spare sitting around)

I’ve been a little bit burnt out from life over May and April, not to mention I caught COVID during the end of April into the start of May; I ended up taking a week unpaid leave, and combined with a fresh PC upgrade – so the finances have been a bit stretched in the budget.

Time to start building up that momentum again and get things rolling. Acquiring dual Dell R330 servers means I have some 1RU newer gen hardware machines to move to; freeing up some of the older hardware, and the new PC build also frees up some other resources.

Exciting Times 😂

posted this in: General, Ramblings, Software, Technology
97 Words

For some bizarre reason; WordPress has decided to start hyphenating my posts. I don’t recall it ever doing this originally when I used to use WordPress all those years ago, but it’s ridiculous now. It’s not really a great way to present readable content (at all!)

Luckily it’s also much easier nowadays than having to hack apart the style.css in the theme files editor in the Settings section.

Now, I can just customize stuff > add additional custom CSS and paste in…


.entry-content,
.entry-summary,
.widget-area .widget,
.comment {
	-webkit-hyphens: none;
	-moz-hyphens: none;
	hyphens: none;
	word-wrap: normal;
}

et voila!

346 Words

I think, it’s quite safe to say that 2020, has been an insane year.

I didn’t do my usual post at the end of 2019; and I didn’t do much for the start of this year either with my blog. There’s a lot of reasons for it; but on both a personal level, and indeed a global level – I think 2020 is a year that my generation will remember for quite a while.

It’s a year in which, the global markets stopped, then through sheer force of will, continued on. The age of the internet and remote services & tools were forced into a level of maturity that up until now, were only something the novel few could dip their toes such waters. Indeed, my own blog post (this post you’re reading now) is all about figuring out being able to work from anywhere, at any time.

2020 brought with it, COVID-19; which brought with it – significant health risks, and significant situations to my life that honestly, I never thought I’d see.

2020 was actually going to be a rough year for me anyway, as I moved towards focusing on caring for my elderly mother. I’d moved back home, and have been deciding what to start discarding in an almost Marie Kondo-esque fugue state. My home has always been filled to the brim with old knick knacks and gadgets, not to the excess you see on Marie Kondo’s show, but still – quite impressively full of old tech, clothes, and furniture.

There’s a lot to keep track of, and I’m in the process of decluttering my life. To do this, I’ve turned to a really interesting application that my friend and colleague, Matt, has pointed me to — Notion (https://notion.so). It’s kind of an all-in-one workspace style data collection application, kind of like Evernote.

It works across iOS, PC, Linux – it’s a web based application that’s very responsive. It provides a great way to take notes and keep organised, especially in the current hellscape of things in life right now.

posted this in: Software, Technology
167 Words

Most of my work nowadays, involves documenting, designing and guiding the team I’m in charge of – and similarly, the importance of documentation has started to become all the more apparent to me. For a while now, I hadn’t been able to find the right system that’d let me create something of a private knowledgebase/wiki that I liked.

Cue in, Wiki.js – a gorgeous looking Wiki package, that while still very much in development – also very much runs with how my online infrastructure is designed. It’s powered through some docker-compose configuration, it has both git and local file backup capabilities, and lets me mount my data as I see fit.

file

It’s not the most complete application right now – still being heavily in development, but it does some things better, and more beautifully than something like BookStack my previous Wiki of choice. And it doesn’t have the fluff of Confluence from Atlassian either.

A winner in my books.

posted this in: Gaming, Software, Technology
312 Words
file

Over the weekend, I wrote a service loading daemon for my Minecraft server that essentially allows me to interact with players to create custom, scripted actions and dynamically run commands – all tied into a Database thanks to the comfort of PHP!

I’ve aptly named the system the Minecraft Assistant Interactive Daemon (MAID for short). So far things have been working wonderfully but we’re still exploring the possibilities with this tool; from gathering player positions, to inventory security, and more! The system is based around a PHP script running in a ‘daemon’ mode that never times out, and monitors the console of the server – it reacts to things that then happen via the console (picks up commands, events, and so forth) – and updates as needed – be it via a website, database, or otherwise.

A big benefit of how I’ve implemented MAID is that I can run a Vanilla based Minecraft server, that still allows for the latest versions released by Microsoft to run – without essentially affecting functionality.

The current plan is to have:

  • Custom vault control – players can protect valuables in a web-managed inventory/delivery system
  • Production of materials – a “maid hiring” system, where players can pay an amount of emeralds for various maids that’ll help them acquire resources

The system is essentially a PHP based plugin wrapper on Minecraft – it doesn’t directly interface or interfere with the Minecraft client’s functionality, but instead runs as a parallel service alongside the server. So the only real drawback is a lack of real-time in-game interaction and even then, some degree of interaction can be created via the command-block system; all the features of Command Blocks are directly accessible to the MAID system.

I’m keeping it in a private repo for the time being; but in the near future I might look into releasing it 🙂

posted this in: General, Software, Technology
113 Words

This blog entry is more of a personal reminder – and now it’s somewhere on the internet in theory it shouldn’t ever disappear.

I do a lot of PHP related coding in my day-to-day. Be it website projects all the way through to browser-based applications, both professionally and personally – I think I’ve hit a point where VS Code – my editor of choice, is finally covering almost all my use cases.

The extensions in question:

  • Alignment by annsk
  • Diff by Fabio Spampinato
  • Docker by Microsoft
  • Format HTML in PHP by rifi2k
  • GitLens by Eric Amodio
  • PHP DocBlocker by Neil Brayfield
  • PHP Symbols by lin yang
  • phpcs by Ioannis Kappas
  • Prettify JSON by Mohsen Azimi
  • TabOut by Albert Romkes