As you may have noticed, this website can be displayed in either light or dark mode (toggle with sun/moon top left of page or with Alt+T ). An issue is that images and diagrams are perfectly visible in light mode, but when flipping over to dark mode they either are surrounded by a big white box or lost all contrast if the background is transparent, or vice versa.
This is part 2 on the topic of a short series about setting up DNS hosting with Cloudflare and using DNS-01 challenges to get TLS certificates from Let’s Encrypt See part 1: Moving DNS hosting from Namecheap to Cloudflare In this post I am sharing my experience setting up a reverse proxy that acts as a frontend for my internal self-hosted web services. What and why? A reverse proxy is a…
I use Obsidian extensively for both personal use and work. Today I’m sharing a trick using the Templater plugin that makes it possible to create daily and weekly notes that based on their file names can auto-generate links in-between them. Super handy! Install Templater and in the template directory of your vault, we will create two files, “Daily Template” and “Weekly…
This is part 1 of a short series about setting up DNS hosting with Cloudflare and using DNS-01 challenges to get TLS certificates from Let’s Encrypt for locally hosted web services in a homelab. See part 2: Setting up a local reverse proxy with Nginx Proxy Manager and Let’s Encrypt I bought this domain via Namecheap a few years back. Namecheap’s services has been working fine.…
Say you have an executable that will be shipped to target machines and you don’t want to include any debug symbols, but at the same time if an annoying bug occurs you’d like to debug the executable with symbols. Is it possible to have both ways? As a matter of fact, yes! GNU Debugger (GDB) has a feature where it can load a separate symbols file to make it easier to debug stripped…
In this post we’re going to explore how to set up Tailscale in pfSense to be able to both route all traffic through pfSense for secure browsing and how to route traffic to local subnets with split DNS to resolve local hostnames. My history with VPNs I’ve had a pfSense box now for a few years and been relying on its OpenVPN integration to access my internal network from the outside.…
I strive to be efficient on the command line, and some of my favourite keyboard shortcuts in Bash are the ones that allows me to navigate and execute previous commands easily. Some of which are back and forward through the command history with Ctrl+P and Ctrl+N combined with Ctrl+J for executing the command. The problem This is all well and good until you jump in to a Docker container and suddenly…
Update (2026-04-07): The Todoist API used in the post has been deprecated. It is now updated to use the newer /api/v1 path. See https://developer.todoist.com/api/v1/ for more information. Introduction Your Bitwarden vault contains (hopefully) all of your passwords and other sensitive data, so it would be good to have a backup of it in case something goes wrong.
jq is a very powerful command-line tool designed to manipulate JSON data. One of its great features is that it automatically formats JSON output for better readability: $ echo '{'is_jq_awesome': true}' | jq { 'is_jq_awesome' : true } But in Vim? Can we utilize this inside of Vim? Of course! In Vim, there’s a feature called filter commands that enables us to use external applications to…
Alright, here’s a quick trick that I use at least a few times a week. Problem Let’s say we have a file that we want to make a copy of for whatever reason. In this example we’re creating a backup of the SSH server config before modifying it: $ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak This is fine and dandy, but a bit verbose… We’re writing the same string two…
Suppose you’re connected to a remote host with SSH and after a while the SSH session goes stale. The terminal is unresponsive and no keypress seem to take effect. There might be something with the network, the remote host is restarting or maybe your machine has been in hibernation, there could be multiple reasons for a stale session. The first solution that might come to mind is to just…
Problem I recently needed to download an artifact from a Jenkins build to my remote dev machine. The remote machine has access to the Jenkins controller, so I just ran wget with the link. $ wget https://jenkins.local/job/.../artifact/my_artifact.tar.gz I got this back: HTTP request sent, awaiting response... 403 Forbidden 2023-04-02 17:43:27 ERROR 403: Forbidden. Jenkins required…
About me Hi, David here. I’m a software engineer, homelabber, Linux enthusiast and security advocate. If you want to reach out to me, message me somewhere. If you want to do it securely, you can get my PGP public key here🔑 . Email me at david.av.isaksson at protonmail dot com
Nix: Bottom Up Knowit Tech Talk, Jönköping, March 2026 Från IDE till PDE (Personal Development Environment) Knowit Tech Talk, Jönköping, March 2025 Memory safety in Rust vs C Knowit Tech Talk, Umeå, May 2024 Recreateing Arpwatch and learning Go with AI Knowit Tech Talk, Jönköping, Feb 2023