AJ's Blog

This is a personal blog focused on computer software and hardware. Most projects are implementing software and hardware for a homelab. What is a homelab? I would say a homelab could be a single computer or dozens of computers connected in a network. You can also integrate with computers in the Cloud.

Continue reading...

Recent Posts

k3os kubernetes cluster

05-14-2022

Note: I drafted this in January 2022 but I did not realize that this distro seems to be no longer maintained after SUSE acquired Rancher in 2021. I am going to upload this post because I enjoyed how flexible this distro was for running k3s.


k3OS is a Linux distribution designed to remove as much OS maintenance as possible in a Kubernetes cluster. It is specifically designed to only have what is needed to run k3s. Nodes only need to join a cluster and then all aspects of the OS can be managed from Kubernetes. Both k3OS and k3s upgrades are handled by the k3OS operator.

Rancher Desktop Kubernetes

04-03-2022

rancher_desktop
rancher_desktop

Rancher Desktop is an open-source project to bring Kubernetes and container management to your workstation.

For more information about installing Rancher Desktop or containers, check out a previous post.

If you are not familiar with Kubernetes, check out a previous post about getting started.

Installation is trivial on most platforms, I will briefly touch on installation on Linux as I happen to be using openSUSE at the time of this post.

Monitor IP services with prometheus blackbox exporter

03-26-2022

updated: 2025-02-09

Blackbox exporter is used by Prometheus to monitor HTTP(S), TCP, DNS, and ICMP endpoints. If you are not familiar with prometheus, check out a previous post. The blackbox program will collect metrics and make them available on a http server. Prometheus needs to be configured to collect metrics from the blackbox exporter and then grafana can be used to visualize those metrics.

Configure blackbox

Blackbox is configured with a .yml file. The file below should be mounted inside the container. This example will monitor a HTTPS site, fail if there is no SSL/TLS encryption, using a HTTP GET request, using ipv4 protocol, allowing status codes 200 and 204, using the blackbox http prober, and will timeout after 15 seconds. This file will be in the same directory as the main prometheus config if you follow from the previous post.

Kubernetes

03-19-2022

Kubernetes, also known as k8s, is an open-source system for automating deployment, scaling, and managment of containerized applications. The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the “K” and the “s”. Kubernetes builds on 15 years of development powering the largest search engine Google with contributions from the open-source community. Kubernetes is focused on scalability from running to to a billion containers. K8s is open source and can be run on your own computer or in public cloud infrastructure.

Configuring a status page in the cloud with uptime kuma

03-13-2022

Uptime kuma is an open-source tool for monitoring uptime for

  • HTTP(s)
  • TCP
  • HTTP(s) Keyword
  • Ping
  • DNS Record
  • Push
  • Steam Game Server

Updated 2023-05-14

This is one of my more popular posts according to Google and I still use Uptime Kuma. I am going to recreate my own instance and go over how to deploy the app and how to deploy a secure reverse proxy in front of the app.

Install with Docker

Prerequisites

Originally I had set up a virtual machine in the Amazon Web Services Cloud (AWS) but for the purposes of this monitoring app, AWS is too expensive. All you need is a small virtual machine running in a cloud provider with a public IP address and you can host your own web app and secure gateway using containers running in your virtual machine.

Homelab prometheus & grafana dashboard

02-27-2022

updated: 2025-02-08 : update post with slug prometheus-homelab updated: 2023-10-01 : updated container image tags, updated proxmox exporter, replaced deprecated ansible role for node_exporter

Note

This is an older post. I have different approaches to running an observability stack for metrics. Check out a new post for monitoring prometheus metrics in a homelab with opentelemetry.


Prometheus is an open-source systems monitoring and alerting software. Prometheus collects and stores metrics as time series data, so one dimension of the data is always based on the time that the metric was recorded. Metrics are pulled over HTTP into the prometheus system. Each data monitoring source will need a data exporter that presents the metrics on a http server that prometheus can pull from.