How to run your own server
Posted on 2023-03-18
(Last modified on 2025-08-28)
There are many ways to run your own server, from setting up a Raspberry Pi on your desk to renting a physical server at a provider.
In this post, we will focus on setting up a virtual server with DigitalOcean, which is one of the easiest ways to get started.
[Read More]
Benefits of running your own server
Posted on 2023-03-17
(Last modified on 2025-08-28)
In the world of technology, we are moving further and further away from operating directly on servers,
but there are still significant benefits to be gained from running a personal server.
I have been running some kind of personal server for many years now and I strongly believe anyone working in technology can benefit greatly from doing so.
Here’s why:
[Read More]
The (MVP) making of Honeypot Login
Posted on 2023-03-12
(Last modified on 2025-08-28)
In this post I will go over the MVP building phase of Honeypot Login,
from idea to launched product and what my next steps will be.
[Read More]
1Password CLI Cheatsheet
Posted on 2023-02-01
(Last modified on 2024-05-16)
The 1Password CLI op
works either in connection with a client app, like on the Mac,
or standalone, useful on a server.
# Login
eval $(op signin)
# Get favorites
op item list --vault "Private" --favorite
# Get a specific item
op item get <ID>
# !! Important: Sign out at the end
op signout
Some helper functions
Helpers to more easily work with the op
cli.
1login() {
eval $(op signin)
}
alias 1signout="op signout"
1search() {
term=$1
if [ -n "$2" ]
then
vault="$2"
else
vault="Private"
fi
echo "Searching for '$term' in vaut '$vault'"
op item list --vault "$vault" --long | grep "$term" --ignore-case
}
1get() {
op item get $*
}
Being a good code reviewee
Posted on 2023-01-13
(Last modified on 2023-10-18)
Things I do to be a good code reviewee.
[Read More]
yamllint error: "invalid config: ignore should contain file patterns"
Posted on 2023-01-12
(Last modified on 2023-05-16)
Setting up a new repository for YAML linting today I was running in a bit of an issue with yamllint.
I was using a YAML list to specify ingores, as mentioned in the documentation:
ignore: - "*.dont-lint-me.yaml" - "/bin/" - "!/bin/*.lint-me-anyway.yaml" This however did not work with the above mentioned error message. After a lot of debugging I found that they released a new version recently which introduced this feature.
[Read More]
ArgoCD Python Client
Posted on 2023-01-01
(Last modified on 2023-05-10)
A simple Python client to interact with ArgoCD.
[Read More]
WSL2 & Keychain
Posted on 2022-12-08
The problem
If you use ssh-agent with an encrypted ssh key it does not persist when you open a new terminal window.
The solution
Use keychain
instead.
- Install
sudo apt install keychain
- Add to your shells rc file, eg.
.bashrc
or .zshrc
# Repeat this line for all keys you want to unlock and use this way
/usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa
source $HOME/.keychain/wsl-sh
- Unlock your keys on shell startup and enjoy
Self-hosted notifications
Posted on 2022-11-01
(Last modified on 2025-08-28)
Running any kind of personal infrastructure sometimes requires your attention based on certain events or failure states,
no matter how much you automate tasks.
Over the years I have used E-Mail, Telegram bots and a variety of other tools for this purpose.
However all of them have the drawback that they mix with other kinds of information and are not easilly usable in scripts.
[Read More]
Git: Add only changed files
Posted on 2022-09-29
(Last modified on 2023-08-23)
Sometimes you may want to commit only the files you have changed and not any newly created files,
this can easily be achieved by this command: git commit -a
[Read More]
Post Mortems
Learning from incidents
Posted on 2022-08-22
(Last modified on 2025-08-28)
Incidents happen, and we can and should always learn from them, to be better prepared for the next time things go wrong.
A great tool to do that is the post-mortem, it is a process designed to recap the incident, learn from mistakes and improve the system as a result.
Basic principles There are some basic principles that can help achieve a good post-mortem process. They are only guidelines and I recommend adapting them to what works best in your organization.
[Read More]
GitLab: User owned projects report
Posted on 2022-08-17
(Last modified on 2024-06-19)
Export a CSV formatted report of projects in user-namespace on a GitLab instance.
This is especially useful if you think about limiting or disabling this feature.
[Read More]
Monoliths & Microservices
An opinionated overview
Posted on 2022-07-18
(Last modified on 2025-08-28)
Ever since diving into the software development world I was troubled by a duality:
On the one hand I have built and operated many services described as monolithic with relative ease, on the other hand I’m always told I, and others, should build microservices because they are better in a variety of ways.
With this post I’m going to compare both software architectures by looking at the key benefits often associated with microservices and additional considerations I think are important.
[Read More]
Simple git changelog
Posted on 2022-07-08
(Last modified on 2023-09-19)
A simple changelog system on top of git commit messages.
The main idea is to generate “release notes” from a diff in commits before a release. It can easily be run manually or as part of a merge/pull CI pipeline.
In this case it looks for commit messages starting with one of these [ADD], [REMOVE], [INFO] and just outputs those, but those patters can be adjusted to fit any existing commit schema.
[Read More]
The WSL Onion
Calling powershell.exe from PowerShell inside WSL
Posted on 2022-04-06
(Last modified on 2025-08-28)
The other day I was playing around in WSL with a colleague of mine and we did this:
[Read More]
Windows Subsystem For Linux 2: Debian+Podman
Posted on 2022-04-04
(Last modified on 2025-08-28)
The problem: Docker itself can’t be run in WSL2 as it requires the docker daemon, usually run though systemd.
The solution: Podman works just fine and can easily be installed,
although we will need to configure some things to make it work properly.
[Read More]
Going Part Time
(Re)starting my indie journey
Posted on 2022-04-03
(Last modified on 2025-08-28)
Starting on the first of March 2022 I no longer work full-time in my day job.
That sentence has been about a year in the making and makes me both happy and a bit scared about the future.
I have been doing some side-hustle and projects since I’ve been 16 building websites with my dad, so you could say it has been a long time coming.
Right now I have set myself three mid-term goals to build up something that brings me joy and financial independence.
[Read More]
Simple HTTP Status Monitor Using Curl
Posted on 2022-03-16
(Last modified on 2025-08-28)
yamllint: Ignore exisiting errors
Posted on 2022-01-14
(Last modified on 2023-05-17)
When adding yamllint to an existing project it can be hard to fix all the errors at once.
I wrote a simple script to create a rules block that simply ignores all rules that currently trigger for a file.
This works by generating a rules block ignoring paths.
[Read More]
Local User Management Polyfill
Posted on 2022-01-13
(Last modified on 2022-07-01)
Older Versions of Windows 10 and all Windows Server 2012 systems have no local user management commandlets.
This is a working polyfill to allow scripts using local user management to run on old systems.
Source code
PSGallery package