Articles

systemd

Let's imagine the file server.js which, when executed by Node.js, serves web pages to connecting clients. A trivial way to execute server.js using NodeJS would be to run the following bash command in a terminal:
LinuxTutorials

Self hosted Docker registry

When using the <code>docker pull</code> command, container images are by default downloaded from docker hub, the official public registry for container images. However, for some projects, images are better stored on a private platform. This can be achieved by hosting one's own docker registry.
DockerTutorialsDevOps

Callbacks in Javascript

Here is a simple javascript function that is designed to print its argument in the console:
TutorialsJavascript

A GUI for ChartMuseum

A GUI for ChartMuseum thumbnail
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.
ProjectsHelmSvelte

SONOFF Firmware

<a href="https://www.itead.cc/" rel="noopener noreferrer nofollow">ITEAD</a>'s&nbsp;<a href="https://sonoff.itead.cc/en/" rel="noopener noreferrer nofollow">SONOFF</a>s are Wi-Fi enabled relays that can be used to turn applicances on and off remotely.
ProjectsIoT

Bathroom occupancy monitor

Bathroom occupancy monitor thumbnail
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.
ESP8266IoTElectronicsProjects

HDD preparation

Here are the steps to prepare a brand new hard drive and install a file system on it.
Linux

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.
ProjectsSecurityNPMExpressNode.js

Generic Kubernetes manifest for web application deployment

Deployment name, container registry and service port are externalized, making this manifest general-purpose
KubernetesDevOps

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.
WIPDevOpsTutorials