Welcome to the Café

Explore the world of Linux with clear, approachable guides. Whether you’re just starting out or looking to sharpen your skills, you’ll find something to brew your interest here.

Troubleshooting DNS Resolution Issues in My Homelab with Unbound and dnsmasq

Introduction to DNS Resolution Issues

I’ve had my fair share of DNS resolution issues in my homelab over the years. Recently, I switched from using a single DNS resolver to a combination of Unbound and dnsmasq. This setup has been working well for me, but I’ve still encountered some issues that required troubleshooting. The real trick is identifying the root cause of the problem, which can be tricky.

Understanding Unbound and dnsmasq

Unbound is a recursive DNS resolver that provides a secure and private way to resolve domain names. It’s designed to be fast, efficient, and highly configurable. Dnsmasq, on the other hand, is a lightweight DNS forwarder and DHCP server. I’ve seen this go wrong when people don’t configure them correctly, so it’s essential to understand how they work together. In practice, using Unbound and dnsmasq together provides a good balance between security and performance.

[Read More]

Taming Systemd Services that Cause Slow Boot Times on My Linux Desktop

Introduction to Slow Boot Times

I’ve had my fair share of slow boot times on Linux. When I upgraded my desktop to the latest version of my distribution in 2025, I noticed some new systemd services that were slowing down my boot process. The real trick is identifying which services are causing the issue. After digging around, I found that some of these services weren’t essential for my daily usage, and disabling them made a significant difference.

[Read More]

Recovering from a Failed Btrfs Send Receive Operation with Rsync as a Safety Net

Introduction to Btrfs Send and Receive

I’ve been working with Btrfs for a while now, and I have to say, its send and receive functionality is one of my favorite features. It makes efficient backups and data replication across systems a breeze. However, like any complex operation, things can go wrong, and you’re left with incomplete or corrupted data. That’s where having a safety net like rsync comes in handy.

[Read More]

Taming Container Logs with Podman and systemd-journald

Introduction to Container Logs

I’ve been running a homelab with various self-hosted services for a while now, and managing container logs has been a challenge. With containerization making it easy to spin up multiple containers, keeping track of their logs can be overwhelming. In my experience, using Podman and systemd-journald has been a game-changer for taming container logs.

What are Container Logs?

Container logs are essentially the output of a container’s stdout and stderr streams. They contain valuable information about the container’s execution, such as errors, warnings, and debug messages. By default, container logs are stored in the container’s filesystem, which can lead to log rotation issues and make it difficult to manage logs across multiple containers. I’ve seen this go wrong when logs start filling up the container’s disk space, causing all sorts of issues.

[Read More]

Troubleshooting Podman Container Networking Issues with ss and nftables

Introduction to Podman Container Networking

I’ve been working with Podman for a while now, and I’ve found that networking issues can be a real pain point. When containers can’t communicate with each other or the host machine, it’s frustrating and can cause downtime. In this article, I’ll show you how to use the ss and nftables commands to troubleshoot Podman container networking issues.

Understanding Podman Networking

Before we dive into troubleshooting, it’s essential to understand how Podman handles networking. By default, Podman uses a bridge network, which allows containers to communicate with each other and the host machine. You can verify this by running podman network ls, which lists all available networks.

[Read More]

Taming Disk Space Usage on My Homelab Server with btrfs Snapshots and Quotas

Introduction to Disk Space Management

I’ve been running a homelab server for a while now, and one thing that’s always been a challenge is managing disk space. With multiple services and projects running on my server, it’s easy to lose track of disk usage. I’ve seen this go wrong when you’re not paying attention, and suddenly you’re scrambling to free up space. Recently, I started exploring ways to better manage my disk space, and I stumbled upon btrfs snapshots and quotas. In practice, these features have been a game-changer for me.

[Read More]

Taming the Terminal Chaos: My Favorite tmux Config Tweaks for a Productive Workflow

Introduction to tmux

I’ve been using Linux for years, and one thing that’s made a huge difference in my productivity is being able to manage multiple terminal sessions efficiently. For me, tmux has been a game-changer. If you’re not familiar with it, tmux is a terminal multiplexer that lets you create and manage multiple terminal sessions from a single window. In this article, I’ll share some of my favorite tmux config tweaks that have helped me streamline my workflow.

[Read More]

Resolving DNS Troubles at Home: A systemd-resolved and dnsmasq Setup Gone Wrong

Introduction to DNS Troubles

I’ve been running my homelab for years, and one thing that still gets me is DNS troubles. Last year, I decided to set up systemd-resolved and dnsmasq to manage my home network’s DNS. The idea was to use systemd-resolved as the primary resolver and dnsmasq as a caching layer to improve performance. Sounds simple, but it didn’t quite work out that way.

Setting Up systemd-resolved

To start, I enabled systemd-resolved on my Ubuntu-based server. This involved editing the /etc/systemd/resolved.conf file to set the DNS servers and domains. I opted for Cloudflare’s DNS servers - they’re known for being fast and secure.

[Read More]

Troubleshooting Slow System Boot Times with systemd-analyze and ps eoq

Introduction to Slow System Boot Times

I’ve seen this go wrong when a slow system boot time brings your entire workflow to a crawl. Whether you’re running a homelab server or a desktop Linux installation, a slow boot can be frustrating. In this article, we’ll explore how to troubleshoot slow system boot times using systemd-analyze and other practical tools.

Understanding systemd-analyze

The real trick is to use systemd-analyze to get a detailed breakdown of the boot process. This powerful tool provides insights into the time spent on each service and the overall boot time. To use systemd-analyze, simply run:

[Read More]

Taming Systemd Boot Times with systemd-analyze and a Little Patience

Introduction to Systemd Boot Times

I’ve seen my fair share of slow-booting Linux systems over the years, and it’s frustrating when you’re waiting for your system to start up. With modern hardware and Linux distributions, boot times should be relatively fast, but misconfigured services, unnecessary dependencies, and inefficient system initialization can still cause issues. That’s where systemd-analyze comes in - it’s an invaluable tool for identifying bottlenecks and optimizing your system’s performance.

[Read More]