RSSAmplifier

Blog

The DevOps Blog

Recent content on The DevOps Blog

blog.lazkani.ioRSS feed ↗48 posts

Latest posts

Multi-Stage Docker container Build

One of the hidden gems of Docker containers is multi-stage builds. If it never made any sense to you, you’ve heard of it but have no clue what it is or just passing along… We’re going to use it in a practical example.

Environment Variables Made Easy

If you’ve written software in the last decade, then you’re probably familiar with the current technologies at play. You write your code, locally, in your IDE, build and test it. You’ve made your commit and pushed it to the revision control system server and created a pull request . Pipelines started, code built, unit tests ran, magic all over and now it’s deployed in…

What 2025 blog question challenge ?

A few weeks ago, Jason sneakily slipped me a link to a blog post of his. He knows that I already subscribe to his blog but you cannot be as wise without meddling with the forces of nature. Well, long story short, his meddling worked so… here we go ? Why did you make the blog in the first place?

Deploying Traefik and Pihole on the Swarm home cluster

In the previous post , we setup a Swarm cluster. That’s fine and dandy but that cluster, as far as we’re concerned, is useless. Let’s change that.

Raspberry Pi, Container Orchestration and Swarm right at home

When I started looking into solutions for my home container orchestration, I wanted a solution that runs on my 2 Raspberry Pis. These beasts have 4 virtual CPUs and a whoping 1GB of memory each. In other words, not a lot of resources to go around. What can I run on these? I wonder!

NixOS on encrypted ZFS

I wouldn’t call myself a distro hopper. The decision of distribution is solely based on requirements. I have requirements and I want the distribution to fulfill them as much as possible. After 15 years, I know what I want and I go and find it. In this case, an unexpected project caught my eye. The idea is so radically different that I wasn’t actually searching for it this time. It is…

QMK Firmware

Over the years, I have owned a few mechanical keyboards. I’m quite fond of them. I’ve also built my own keyboard from scratch years ago. Hot-swappable back then was still in its easy stages and the sockets weren’t that good. Alas, we’re in 2021 and I’ve recently purchased the Keychron Q1 keyboard. I’ve chosen this keyboard for many reasons, but the one you most…

Upgrade your monitoring setup with Prometheus

After running simple monitoring for quite a while, I decided to upgrade my setup. It is about time to get some real metric gathering to see what’s going on. It’s also time to get some proper monitoring setup. There are a lot of options in this field and I should, probably, write a blog post on my views on the topic. For this experiment, on the other hand, the solution is already…

When is Gitea for you ?

As a platform engineer , you aim to choose the best tool for the job. Your goal is to minimize complexity as much as possible to minimize breakages and make it easier to recover. And when you think it’s that simple, you get hit by the fact that the best tool for the job is determined out of a list of requirements. Dive down with me on a thought experiment that made me choose the hidden…

Time to deploy our static blog

In the previous post, entitled “ Let’s play with Traefik ”, we deployed Traefik and configured it. We left it in a running state but we haven’t really used it properly yet. Let’s put it to some good use this time around.

FAQ

What is this ? This is my humble blog where I post things related to DevOps in hope that I or someone else might benefit from it. Wait what ? What is DevOps ? Duckduckgo defines DevOps as: DevOps is a software engineering culture and practice that aims at unifying software development and software operation. The main characteristic of the DevOps movement is to strongly advocate automation and…

Let's play with Traefik

I’ve been playing around with containers for a few years now. I find them very useful. If you host your own, like I do, you probably write a lot of nginx configurations, maybe apache . If that’s the case, then you have your own solution to get certificates. I’m also assuming that you are using let’s encrypt with certbot or something. Well, I didn’t want to anymore. It…

Playing with containers and Tor

As my followers well know, by now, I am a tinkerer at heart. Why do I do things ? No one knows ! I don’t even know. All I know, all I can tell you is that I like to see what can I do with the tools I have at hand. How can I bend them to my will. Why, you may ask. The answer is a bit complicated; part of who I am, part of what I do as a DevOps. End line is, this time I was curious. I went…

A Python Environment Setup

I’ve been told that python package management is bad. I have seen some really bad practices online, asking you to run commands here and there without an understanding of the bigger picture, what they do and sometimes with escalated privileges. Along the years, I have compiled a list of practices I follow, and a list of tools I use. I hope to be able to share some of the knowledge I’ve…

Calendar Organization with Org

I have been having some issues with my calendar. Recurring stuff have been going out of wack for some reason. In general, the setup I’ve had for the past few years have now become a problem I need to fix. I decided to turn to my trusted emacs , like I usually do. Doom comes bundled with something. Let’s figure out what it is and how to configure it together.

Linux Containers

Our story dates all the way back to 2006, believe it or not. The first steps were taken towards what we know today as containers . We’ll discuss their history, how to build them and how to use them. Stick around! you might enjoy the ride.

Email IMAP Setup with isync

The blog post “ Email Setup with isync, notmuch, afew, msmtp and Emacs ” prompted a few questions. The questions were around synchronizing email in general. I did promise to write up more blog posts to explain the pieces I brushed over quickly for brevity and ease of understanding. Or so I thought !

Email Setup with isync, notmuch, afew, msmtp and Emacs

I was asked recently about how I have my email client setup. As I naturally do, I replied with something along the lines of the following. I use isync, notmuch, afew and msmtp with emacs as an interface, let me get you a link on how I did my setup from my blog. To my surprise, I never wrote about the topic. I guess this is as better time as any to do so. Let’s dig in.

Dotfiles with Chezmoi

A few months ago, I went on a search for a solution for my dotfiles . I tried projects likes GNU Stow , dotbot and a bare git repository . Each one of these solutions has its advantages and its advantages, but I found mine in Chezmoi . Chezmoi ? That’s French right ? How is learning French going to help me ?

Bookmark with Org-capture

I was reading, and watching, Mike Zamansky ’s blog post series about org-capture and how he manages his bookmarks. His blog and video series are a big recommendation from me, he is teaching me tons every time I watch his videos. His inspirational videos were what made me dig down on how I could do what he’s doing but… my way… I stumbled across this blog post that…

Yet Another RSS Reader Move ?

The more I get comfortable with emacs and doom , the more I tend to move things to it. This means that I am getting things done faster, without the need to get bogged down in the weeds of things. This also means that, sometimes, I get to decommission a service that I host for my own personal use. If I can do it with a text file in git , why would I host a full-on service to do it for me ? You…

Literate Programming Emacs Configuration

I was working on a project that required a lot of manual steps. I generally lean towards automating everything but in some cases that is, unfortunately, not possible. Documenting such project is not an easy task to accomplish, especially with so many moving parts and different outputs. Since I have been using org-mode more frequently for documentation and organization in general, I gravitated…

Weechat and Emacs

In the last few blog posts, I mentioned a few migrations caused by my VSCode discovery a few weeks ago Emacs and Org-mode . As I was configuring Doom , I noticed that there was a configuration for weechat in there. I checked it out very briefly and found that it was a weechat.el package for Emacs .

Git binary clean up

When I first started this blog, I simply started with experiments. The first iteration was a wordpress which was followed, very fast, by joomla . Neither of them lasted long. They are simply not for me. I am lucky to be a part of a small group started in #dgplug on Freenode . In mentioned group, I have access to a lot of cool and awesome people who can put me to shame in development. On the flip…

Modifying a Nikola theme

After publishing my blog in new form yesterday night, I have received some suggestions for changes to the theme. First off, I noticed that the footer is not showing after the blog was deployed. That reminded me that I have made changes to the original theme on disk. The pipeline, though, install the theme fresh before deploying the website. I needed to fix that. Here’s how I did it.

Welcome back to the old world

I have recently blogged about moving to emacs and the reasons behind it. Since then, I have used Orgmode a lot more. And I have begun to like it even more. I had a plan to move the blog to Hugo . After giving it a try, I had inconsistent results. I must’ve been doing something wrong. I’ve spend a lot more time than I anticipated on it. At some point, it becomes an endeavor with…

Emacs and Org-mode

I have recently found out, late I know, that the VSCode distribution of the so called Code - OSS is exactly that; a distribution. Let me make it clear, the VSCode binaries you download from Microsoft has an upstream the GitHub repository named VSCode but in fact is not exactly the same code. Microsoft has already added a few gifts for you, including telemetry , not cool huh ?! Well, they tell you…

Building k3s on a Pi

I have had a Pi laying around used for a simple task for a while now. A few days ago, I was browsing the web, learning more about privacy, when I stumbled upon AdGuard Home . I have been using it as my internal DNS on top of the security and privacy layers I add to my machine. Its benefits can be argued but it is a DNS after all and I wanted to see what else it can do for me. Anyway, I digress. I…

Forbidden

403 Forbidden Naughty naughty ! What brought you to a forbidden page ? Take this 403 Forbidden and head over the main site .

Building up simple monitoring on Healthchecks

I talked previously in “ Simple cron monitoring with HealthChecks ” about deploying my own simple monitoring system. Now that it’s up, I’m only using it for my backups. That’s a good use, for sure, but I know I can do better. So I went digging.

Simple cron monitoring with HealthChecks

In a previous post entitled “ Automating Borg ”, I showed you how you can automate your borg backups with borgmatic . After I started using borgmatic for my backups and hooked it to a cron running every 2 hours, I got interested into knowing what’s happening to my backups at all times. My experience comes handy in here, I know I need a monitoring system. I also know that…

Not Found

404 Not Found Oops… We don’t know how you ended up here. There is nothing here to look at… Head back over home .

Automating Borg

In the previous blog post entitle BorgBackup , I talked about borg . If you read that post, you would’ve noticed that borg has a lot of features. With a lot of features come a lot of automation. If you were thinking about using borg , you should either make a simple cron or you’re gonna have to write an elaborate script to take care of all the different steps. What if I told you…

BorgBackup

I usually lurk around Freenode in a few projects that I use, can learn from and/or help with. This is a great opportunity to learn new things all the time . This story is familiar in that manner, but that’s where similarities diverge. Someone asked around #Weechat a question that caught my attention because it was, sort of, out of topic. The question was around how do you backup your stuff ?

A Quick ZFS Overview on Linux

I have, for years, been interested in file systems . Specifically a file system to run my personal systems on. For most people Ext4 is good enough and that is totally fine. But, as a power user, I like to have more control, more features and more options out of my file system. I have played with most of file sytsems on Linux, and have been using Btrfs for a few years now. I have worked with NAS…

My Path Down The Road of Cloudflare's Redirect Loop

I have used Cloudflare as my DNS manager for years, specifically because it offers API that works with certbot . This setup has worked very well for me so far. The only thing that kept bothering me is that every time I turn on the CDN capability on my Cloudflare , I get a loor error. That’s weird.

The Story Behind cmw

A few days ago, Kushal Das shared a curl command. The command was as follows: $ curl https://wttr.in/ I, obviously, was curious. I ran it and it was interesting. So it returns the weather right ? Pretty cool huh!

Git! Rebase and Strategies

In the previous topic, I talked about git remotes because it felt natural after branching and merging. Now, the time has come to talk a little bit about rebase and some good cases to use it for.

Git! Remotes…

In the previous post, we talked about branching and merging. We will say a few last words on branches in this post and dive into remotes. What are remotes ? What are they for ? How are they used ? Coming right up. Requirements In this post, we will need another requirement. First, you obviously need git . Second, you will need a git repository on a git server. Easier way is to create an account on…

Git! Branching and Merging

In the previous post about git , we had a look at what git is and got our feet wet with a bit of it. In this post, I will be moving forward with the topic, I will be talking about branches, how to work with them and finally what merging is and how it works.

Git! First Steps…

The topic of git came up recently a lot at work. Questions were asked about why I like to do what I do and the reasoning beind. Today, I joined #dgplug on freenode and it turns out it was class time and the topic is git and writing a post on it. Which got me thinking… Why not do that ?

About

Who am I ? I’m currently a Developer in the field of Security learning the ways of Software Development in more details. But, for the first decade or so, I was a DevOps cloud engineer. I have a passion for technology, automation, Linux and OpenSource. I’ve been on Linux since the early 2000’s and have contributed, in some small capacity, to some open source projects along the…

Deploying Helm in your Kubernetes Cluster

In the previous post in the kubernetes series, we deployed a small kubernetes cluster locally on KVM . In future posts we will be deploying more things into the cluster. This will enable us to test different projects, ingresses, service meshes, and more from the open source community, build specifically for kubernetes . To help with this future quest, we will be leveraging a kubernetes package…

Local Kubernetes Cluster on KVM

I wanted to explore kubernetes even more for myself and for this blog. I’ve worked on pieces of this at work but not the totality of the work which I would like to understand for myself. I wanted, also to explore new tools and ways to leverage the power of kubernetes . So far, I have been using minikube to do the deployments but there is an inherit restriction that comes with using a single…

Your First Minikube Helm Deployment

In the last post, we have configured a basic minikube cluster. In this post we will deploy a few items we will need in a cluster and maybe in the future, experiment with it a bit.

Minikube Setup

If you have ever worked with kubernetes , you’d know that minikube out of the box does not give you what you need for a quick setup. I’m sure you can go minikube start , everything’s up… Great… kubectl get pods -n kube-system … It works, let’s move on… But what if it’s not let’s move on to something else. We need to look at this as a…

Ansible testing with Molecule

When I first started using ansible , I did not know about molecule . It was a bit daunting to start a role from scratch and trying to develop it without having the ability to test it. Then a co-worker of mine told me about molecule and everything changed.

Weechat, SSH and Notification

I have been on IRC for as long as I have been using Linux and that is a long time. Throughout the years, I have moved between terminal IRC clients. In this current iteration, I am using Weechat .