Photo by [Samantha Gades](https://unsplash.com/@srosinger3997) on [Unsplash](https://unsplash.com/photos/BlIhVfXbi9s)

GitOps with upstream-watch

I’m a fan of automating my personal infrastructure as much as possible. Therefore, I wrote a little utility called upstream-watch, that is well integrated in my existing git-ops workflow. I wrote this tool to support my personal container based infrastructure, which is completely managed via a single git repository. What is GitOps? GitOps upholds the principle that Git is the one and only source of truth. GitOps requires the desired state of the system to be stored in version control such that anyone can view the entire audit trail of changes....

June 23, 2022 · 4 min · 812 words · André Sterba
Photo by [Uta Scholl](https://unsplash.com/@uta_scholl) on [Unsplash](https://unsplash.com/photos/ipUuGGUgR5A)

Go Generics

The latest release of Go (1.18) added generics to the language, besides fuzzing, workspaces and performance improvements. 1 So let’s use them to implement the repository pattern, which is a way to abstract data handling from your business logic. When working on REST-like APIs you want to split handling of data from and into some kind of data store (e.g. a database, a file, …) from business logic. This is where the repository pattern comes in handy....

May 1, 2022 · 5 min · 915 words · André Sterba
Photo by [Adi Goldstein](https://unsplash.com/@adigold1) on [Unsplash](https://unsplash.com/photos/EUsVwEOsblE)

Install Arch Linux

This will be a reminder for myself on how to set up a basic Arch Linux and not a guide with a lot of variety on how to set up arch. I will update this post when I learn something new, while installing arch on one of my machines again. In the past I did some experiments with btrfs, but had some problems while rebalancing, and actually used none of the fancy features like snapshots, btrfs send or other cool things....

April 1, 2022 · 4 min · 648 words · André Sterba
Photo by [Amrut Roul](https://unsplash.com/@amrutroul) on [Unsplash](https://unsplash.com/photos/evNX5mSx6kc)

Neovim LSP

I was (and still am for some parts) a happy vscode user. On the other hand I was always looking up to all these crazy fast vim/neovim users and their keyboard only drive workflows. After hopping on and off the vim train a few times a year something new came around sometime in 2021 - LSP support on neovim core. LSP stands for Language Server Protocol and definies how your IDE communicates with a specific language server to get features like ‘go to definition’, ‘show references’ or ‘rename this variable’....

March 1, 2022 · 7 min · 1482 words · André Sterba
Photo by [Syed F Hashemi](https://unsplash.com/@sfhashemi) on [Unsplash](https://unsplash.com/photos/VqdG9PBB43Q)

Build a simple VPN with WireGuard

As you already know I host most of the services I use on a daily basis myself. Some of these services are hosted on the public Internet, while others are running on my home server. In this post I will cover the basic on how to get a peers-to-site VPN connection with WireGuard. WireGuard uses a simple public/private keypair to set up an encrypted VPN tunnel, therefore there is no need for a complicated certificate authority setup....

February 6, 2022 · 6 min · 1241 words · André Sterba