RSS Amplifier

Blog

Home on inherent site

Recent content in Home on inherent site

inherently.xyzRSS feed ↗36 posts

Latest posts

My dweet.io replacement ended up in production

A story about datayoinker , a personal side project that I started nearly 5 years ago because I didn’t like free service limits ended up in production.
I don’t know when or how but I guess I’m an accomplished Go developer with code running in (someone’s) production environment now.
The story is amusing to me so I want to write about it. 
 Background 
 At…

One Billion Rows Challenge

A couple of years ago I found an interesting programming challenge that includes reading a lot of data and calculating aggregates on them.
It’s called the “One Billion Rows Challenge” or 1brc for short.
I decided to take on the challenge to see how far I could get and I’d like to introduce others to it because I had fun participating. 
 The challenge 
 As…

Home Assistant

I recently set up Home Assistant as a way of getting into home automation.
It’s a really cool piece of software and took a bit of time to set up so I’d like to document everything I’ve changed here. 
 Getting started 
 Home Assistant is an open-source home automation solution, possibly the most well-known in its category.
It’s a great DIY and self-hosted…

Remote Access Homelab

One of the remaining things for my homelab to have is remote access.
I set up a couple options and faced some issues during the process which I want to document here. 
 Tailscale 
 Tailscale is wireguard-based VPN solution.
Its main idea is that you run it alongside whatever you want to be accessible in your tailscale virtual network and then you can get to it.
My primary…

Talos Linux Setup and Configuration

After about two weeks since the first time I installed Talos, I think I’ve figured out a good setup.
In the previous post I went over the PXE setup more than the kubernetes part of it so now I’ll cover the other half. 
 How the Talos configuration works 
 Following the getting started guide tells us that to generate the configuration files we need to run something like…

PXE setup for Talos Linux with Matchbox

Join my campaign of hate against installing operating systems interactively.
I usually wipe my homelab virtualization hosts every week or two.
This might sound insane but I’ve been working on automating their setup.
As explained in the previous post, friendship ended with ProxMox and kubernetes will take its place.
Specifically Talos Linux, a linux distro you can’t even…

Homelab 2025 Plans

Intro 
 After recapping the state of my homelab and writing down how it was in the end of 2024, I think it’s time to look towards the future.
Having finally finished my thesis, I now have less constant stress to deal with and a bit more time than I’ve had in the last 2 and a half years.
The main goal of rebuilding my homelab is to make it an actual production…

State of Homelab 2024

When operating a homelab there is always something new to do or something waiting to be fixed.
This post’s aim is to detail the state of my homelab at the end of 2024 and beginning of 2025. 
 Router 
 The previous post was about virtualizing pfSense inside ProxMox but this setup is no longer in use.
In its place, there is a new system running OPNSense on bare-metal.
This…

Virtualized pfSense on ProxMox

Recently I went down the path of running my router inside a virtual machine.
This is far from the first time I’ve tried it but it is the first time I have a solid long-term plan.
Keep reading if you’re interested in doing something similar, this should be fun. 
 Background 
 Last time I ran my router inside of a virtual machine was in 2017 and it was documented in this…

New Gentoo

As the summer is coming to a close and before the exam period starts I decided to reinstall gentoo on my university laptop.
I don’t plan on doing an ordinary follow the handbook and whabam you’re up and running thing so I wanted to document it. 
 WARNING: this is an incomplete draft but I wanted to publish it just so it exists as a resource. 
 Background 
 The laptop I…

QEMU Guest Agent for Terraform on ProxMox

In a previous post I talked about how I set up proxmox in order to be able to provision virtual machines on it using terraform.
Since then, I’ve improved the setup by adding qemu-guest-agent to the template images without needing to create them myself from scratch and I’d like to share it here. 
 The Problem 
 A lot images intended for openstack or cloud use, be they debian…

Network Design Document

I recently started remaking my network at home and decided to publish some of the design documentation here 
 Network Layout 
 VDSL Internet comes in through an RJ11 port to a Vodafone H300s modem-router.
LAN port 2 of the H300s is plugged into port 2 (untagged VLAN 10) of the Netgear GS724Tv4 switch.
Switch port 23 (untagged VLAN 1, tagged in all other VLANs) is plugged into the…

Ansible, Terraform and Proxmox

In the continuing quest to improve my homelab I’ve written a few ansible playbooks as well as terraform configuration to automate a lot of tasks.
The initial setup of proxmox is handled by ansible, the provisioning of virtual machines is handled by terraform and the installation of k3s on the VMs is done by ansible. 
 Proxmox Setup with Ansible 
 Before getting to use all the…

Cisco SR2024C Repair

One of my friends at university gave me a broken switch that seemed broken and I decided to fix it.
Join me on a pretty entertaining troubleshooting path that was not entirely necessary. 
 Backstory 
 This semester in university I am taking a CCNA class.
The learning path is split across two semesters, next semester I’ll take CCNA 2 to be ready to get the certification.
A…

How This Website Is Made

Intro 
 A significant part of having my own site is the way it’s made behind the scenes.
This has changed in a couple different ways for the duration of its existence and in this post I’ll try to explain how and why. 
 Beginning 
 When I first bought inherently.xyz to host my own website I wanted my site to be built in the way that I’d like other sites to be…

GK61 Review

Intro 
 A little less than a month ago I bought a new keyboard, the HK Gaming GK61.
It’s a 60% mechanical keyboard with RGB backlighting and a few different switch options.
I’ve been using full-size membrane keyboards up until now so this was quite a bit different. 
 Overview 
 The GK61 comes in black, white, red or pink colors.
It can be outfitted with gateron…

Flux Update

I wrote about my journey of choosing a continuous deployment tool and why I ultimately ended up using flux for my homelab in this post .
It took quite a bit of reasearch and if you’re in a similar position as I was it might prove to be helpful. 
 Long(ish)-term experience 
 I’ve been using it for about 5 months now, the first post was written about one month of use.
At…

Docker Multi-Binary Images

Problems in deploying distributed applications 
 If you read my background in the front page, you know I’m not a prolific programmer by any definition.
This isn’t going to be a gigantic revalation and if you’ve worked with deploying your own applications to kubernetes you’ll already know most of the following things.
With that said, what are the problems with…

Go API Part 3

Previous relevant tutorial 
 The development of the CRUD REST API was described in part 2 
and the introduction to the series can be found in part 1 so read those first if you’re new. 
 Intro 
 After creating a minimally functional API, we’re going to add persistent storage to it in the form of a database.
In this case it is going to be postgres running inside…

The Power of the Library Example

While considering what kind of example I could use for a service that was supposed to be a tech demo, I settled on a catalog/library of books.
I think it’s a powerful example because it includes the basic CRUD operations and also allows for a lot of flexibility and detail of implementation.
Below I’ll try to explain the most important ones and maybe help convince you to rethink…

Topackage

Software I’d like to package for Gentoo 
 
 ghostwriter (GH wereturtle/ghostwriter) 
 tizonia (GH tizonia/tizonia-openmax-li) 
 x16-emulator (GH commanderx16/x16-emulator) 
 xcp (GH tarka/xcp) 
 pyshelf (GH th3r00t/pyShelf) 
 snake-go (GH tristangoossens/snake-go) 
 getsum (GH getsumio/getsum) 
 mangl (GH zigalenarcic/mangl) 
 telnet-games (GH…

Software

Interesting Software 
 
 https://github.com/joshuarli/srv 
 https://github.com/sqlancer/sqlancer 
 https://github.com/go-delve/delve 
 https://github.com/89luca89/pakkero 
 https://github.com/josias-r/wpds-scripts 
 https://github.com/josias-r/wp-theme-boilerplate 
 https://github.com/josias-r/wp-plugin-boilerplate 
 https://github.com/gerbera/gerbera 
…

Droning On

I described previously how the deployment of applications is automated in my homelab but didn’t touch upon how I test my own code.
The topic came up when I started trying to simulate a development pipeline who’s first step after committing code is to be run through the continuous integration system.
What should that system be though?
In this post, I’ll take you…

Fluxing My Cluster

It’s no secret that I’m a fan of automation and making life easier (even if I made it harder in the first place).
One of the issues I’ve been having in my homelab is dealing with deploying stuff to kubernetes.
Initially I wanted to just add a plugin to drone and be done with it.
However, that didn’t really pan out which ended up being to my benefit since I…

Go API Part 2

Previous relevant tutorial 
 The introduction, setup and explanation of basic concepts and operations was covered in part 1 so make sure to read that first. 
 Intro 
 In this part we will be developing a full CRUD REST API in Go except without a real database because I realize that it’s too much to go over at once.
The rest of what I promised is true though, we’ll use…

REST Is Over

Web APIs are terrible 
 After watching a talk a few months back about REST vs GraphQL and the history of APIs, I agreed with the speaker that the API is supposed to be a way of communication, a language of sorts.
In programming languages this codified way of communication is enforced by the compiler or the interpreter or the runtime.
If you write invalid code in the programming…

Go API Part 1

Intro 
 This is going to be a simple tutorial about creating a backend web service that can be accessed over a REST API.
The application is going to be able to do something very basic just to make everyone familiar with the basics.
There will eventually be a part 2 where we will make an application that performs the basic CRUD(Create Read Update Delete) actions, it will include…

Golang Is Fucking Rad

Radical Gopherism 
 I’ve been using Go for the better part of a year at this point and I’m loving most things about it.
You know the typical stuff, types, compiled, fast, portable, easy to cross-compile and the rest of the goodness.
However that’s not what made me stick with it although those things helped.
The main things I liked were mostly that it was in many…

Reinstalling Gentoo

Why 
 This gentoo install has lasted a good long couple of years.
There is nothing really wrong with it, the SSD it’s installed on is a bit full and it’s a good opportunity to make a change.
However I’m looking to shake things up a bit.
The big change is installing on ZFS this time.
It’s fairly well-known that I’m a big fan of ZFS, my storage…

Homelab Current Form

The first part of the software changes I made was covered in the first part where I explained how and why I started going down this path. 
 Software choices 
 This whole journey was about making my home infrastructure better.
Part of that was about having a way to more easily create the foundation on which kubernetes would run on, as well as describing my setup as code.
Proxmox is…

Homelab Evolved

The hardware side of the changes made to my homelab were covered in a previous post where I also alluded to some software changes. 
 What came before 
 This is the first part explaining more in-depth the issues that I had and how I dealt with them.
Let’s set the stage first, my homelab was working fine in many ways.
It was nice and stable debian install running kvm virtual…

Hardware Updates 2020

Getting a real storage server 
 During 2020 I got a few upgrades to my setup but I don’t remember the exact order of them.
The most exciting was a 4U rackmount case that I could use to put up to 6×3.5″ hard drives by default and up to 9 with a 2×5.25″ to 3×3.5″ hotswap bay.
Also I bought 3x4TB ironwolf hard drives to put in it initially because my 2x2TB mirror was regularly reaching…

Computers Were Faster

I own 3 operational 32-bit computers and I find them fun to play with and useful for software projects.
Two of them are socket 475 and one of them is for slot form factor intel cpus.
For the slot form factor one, I have a Celeron, a Pentium II and a Pentium III.
The socket 478 based ones are much closer to usable for most of my use cases and the other one is fun to tinker with.
How…

Background

This used to be the about page but I felt the navbar was cluttered and the content is outdated so I moved it here.
I also removed references to the following outdated pages: 
 
 todo 
 links 
 
 What I do 
 Most of the time I’m tinkering with something technology-related that is interesting to me.
I started playing around with setting up servers when I was…

Beyond Docker

Preamble 
 (Warning: the examples haven’t been fully validated so they’re not guaranteed to work) 
 On the first part I only talked about docker and functionality included with it by default. This time we are going to look at a few extras. The list includes but is not limited to: 
 
 docker-compose since it’s often the next step after standalone docker 
 a…

Docker

Preamble 
 Docker is quite popular and has a lot of benefits if used appropriately.
This tutorial will hopefully help readers become more familiar with it.
You snooze, you lose so let’s get into it. 
 Prerequisites 
 
 MUST:
 
 Have Linux installed 
 Have docker installed 
 Internet connection to download images 
 Some Linux knowledge 
 
…