Articles
HDD preparation
Here are the steps to prepare a brand new hard drive and install a file system on it.
Bathroom occupancy monitor
One of the companies I used to work for had a serious bathroom issue: My floor had only three toilet stalls for about 200 employees. There were countless times when I would walk all the way to the bathroom only to find all stalls occupied. I built this simple system to quickly identify whether one or more stall were. It consists of an IoT sensor installed on the bathroom stalls' door and an indicator placed somewhere easily visible.
Generic Kubernetes manifest for web application deployment
Deployment name, container registry and service port are externalized, making this manifest general-purpose
Self-hosted GitLab instance for DevOps on Ubuntu 18.04
GitLab provides a great number of tools needed for the DevOps cycle of an application. In this guide, we'll install a GitLab instance on our own server and configure it to fit our DevOps needs. Here, we will use a fresh install of Ubuntu 18.04 as a base.
Express authorization middleware
Many applications require some form of authorization mechanism to prevent users from accessing restricted content. Authenticated users are commonly in possession of a cookie containing identification data. With the authentication microservice that I designed, this cookie contains a JWT that contains the user's username. This JWT is sent in the authorization header of HTTP requests. Thus, authorization can be performed easily within each application by simply decoding the JWT. To do so, I designed this simple middleware for ExpressJS.
GitLab CI
GitLab CI is a feature of GitLab that allows users to have actions triggered upon pushing a repository to it's remote. For example, it can be used to execute all tests defined in the code, containerize the application and deploy it. A popular alternative to GitLab CI is Jenkins.
A GUI for ChartMuseum
ChartMuseum is an open-source Helm chart repository server which can be used as a self-hosted alternative to Artifact Hub. Although it originally consists of only a server-side application to be interacted with via a REST API, its official UI, ChartMuseumUI, can be deployed to interact with ChartMuseum graphically.
Unfortunately, ChartMuseumUI seems to be broken and the GitHub repository has been inactive for years now. Thus, I decided to make my own GUI for ChartMuseum.
NodeJS app dockerization
NodeJS apps can be containerized using the <code>docker build</code> command. This article is based on <a href="https://nodejs.org/de/docs/guides/nodejs-docker-webapp/" rel="noopener noreferrer nofollow">this guide</a>.
Docker restart container when docker restarts
Simply add the following flag when using docker run
Vue3 Options vs Composition API
This article presents code snippets illustrating how to transition from the Options API to the Composition API in Vue 3.