service.spec.externalIPs. If you’re running a bare-metal or self-hosted cluster with public IPs tied to specific nodes, here’s how I migrated to Cilium Node IPAM with minimal changes.
The Death of
Building an IPv6-Only Kubernetes Cluster with Talos and talhelper
Unlocking the Radxa E52C: Installing a Clean Armbian image
Automating Blog Deployment with Hugo, GitHub Actions, and MinIO
The State of My Homelab 2023
It’s been almost seven years since I started self-hosting. This became a hobby of mine from the beginning and I found myself dedicating a lot of my afternoons (and whole days) to experiment with new technologies, hardware configurations, networking, automation, and many many more things. I never took the chance to talk about this in my blog, so now I want to finally open up and give you a glimpse into my homelab setup, sharing what I’ve been using, hosting and what are some of my thoughts about the future. I will present my setup using the layers (as many as they make sense) of the OSI model as an analogy, adjusted to presenting my homelab.
Create Virtual Machines in Seconds
Breaking Up with Ghost: My Move to Hugo
When I started this blog, I chose Ghost as the backend because it appeared to be a fresher alternative to the bloated WordPress. I didn’t need all the features offered by WordPress, and a simpler platform seemed like the obvious choice.
I installed it, created a couple of posts and I was pretty happy. I made sure to keep the backend up-to-date by installing the latest security patches and reviewing the release notes to avoid any compatibility issues with newer versions. A couple of times the updates broke the theme I used so I had to wait for the maintainer to release a fix.
Getting an iOS device MAC Address with Swift
Both Android and iOS don’t allow applications to get the MAC address using their published API. Here, we will see if we can avoid this restriction and get the address using a feature of IPv6.
What is a MAC Address
A MAC address, or physical address, is a 48-bit number that uniquely identifies a device in a network segment. This number is assigned to the device by the manufacturer and usually doesn’t change (but it can be spoofed). Almost every common networking device has a MAC address. As a rule of thumb, if your device connects to a network using Ethernet or WiFi, it has a MAC address.
Introduction to Genetic Algorithms
“A breakthrough in machine learning would be worth ten Microsofts”
Bill Gates, Chairman, Microsoft
We live in the era of machine learning. Scientists and researchers from around the world are using it to improve our lives in ways we never imagined and advertisers to reach the most relevant people to sell their products. It’s not a recent idea but it scaled so much lately due to great breakthroughs in computer hardware. There are many techniques in machine learning field and most of them are based in simple ideas. As an example, the topic we will discuss today is genetic algorithms and how we can create a basic demonstation program that takes advantage of it.
Initial steps on your new server
It was not long ago when I received a message from my friend DaKnOb. He told me “Hey, I found that the domain spanagiot.gr is free. Why don’t you register it and set up your own server?”. In no time, I got the domain and a server running the latest Ubuntu (16.04 at this point). Here is what I learned in my short journey:
First three commands
Let’s say that your server has been up and running and it’s waiting for you to connect and deploy all these amazing services you have thought of. Usually, the infrastructure provider recommends you to specify a public key to use to login in your machine. After you copy and paste it in the website(you can find it here: $HOME/.ssh/id_rsa.pub) SSH to your machine (usually using: ssh root@SERVER-IP)
Once you are in, you should really do this