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.
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.
updated: 2025-02-08 : update post with slug prometheus-homelabupdated: 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.
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.
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 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
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 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.