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:
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.
Callbacks in Javascript
Here is a simple javascript function that is designed to print its argument in the console:
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.
SONOFF Firmware
<a href="https://www.itead.cc/" rel="noopener noreferrer nofollow">ITEAD</a>'s <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.
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.
HDD preparation
Here are the steps to prepare a brand new hard drive and install a file system on it.
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.
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.