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

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.

ReaR linux backup and recover

02-24-2022

Relax-and-Recover is an open-source tool to create computer backup archives and bootable ISO images of a Linux system. ReaR creates a bootable image consisting of the latest state of the system to be backed up. This image can be used for disaster recovery. ReaR was designed to be easy to setup and can be run through a cron job with minimal effort if you have storage somewhere for storing backup images.

Setting up a Raspberry Pi with Ubuntu Linux

02-18-2022

A Raspberry Pi (not pie) is a single-board computer developed in the UK by the Raspberry Pi foundation and Broadcom. The Pi was designed to promote basic computer science education around the world with a low cost computer that is accessible to developing nations. The Pi has been very popular world wide far beyond the original scope of the first product released. The newest single-board unit as of this post is the Raspberry Pi 4 Model B which contains a 64 bit processor, 1,2,4,or 8 GB of memory, 1 Gigabit Ethernet network interface, 2x USB 2 type A ports, 2x USB 3 type A ports, 2x micro HDMI ports, USB type C for power, 3.5mm A/V analog input, Wi-Fi and GPIO pins to connect non-standard devices.

Factorio container game server

02-11-2022

updated: 2024-02-03

Factorio is a game where you crash land on an alien planet and build a factory to create a space ship and escape the dangerous world you landed on.

factorio_logo
factorio_logo

Configuring the server

Someone has already created an amazing container image that will start the game server as a non-root user and supports mods out of the box.

Only one volume/directory is needed to store the persistent data of the game server. In this example, the container will run on a Linux system with docker and the game server files will be stored in /opt/factorio. The game server runs on UDP port 34197 by default. This can be changed but the game client will expect the default port. If you are not familiar with running containers, see a previous post on how to get started with docker.

cockpit

02-05-2022

Cockpit is an open-source and easy to use web-based interface to manage a Linux system. It has features for users who may be new to Linux administration and provides information helpful to experienced administrators. By default, Cockpit will use the same user accounts that are present on the system. If the system is configured to use a directory service, Cockpit will forward the authorization to the directory service.

There are also other software packages supported to integrate with cockpit. It is available in distribution packages for Red Hat distros, Debian based distros, and Arch distros.