• How to Use Nginx as a Reverse Proxy: One Server, a Dozen Apps, Zero Port Confusion

    Here’s a scenario you might recognize: you’re running Home Assistant on port 8123, Plex on 32400, a personal wiki on 8080, and Gitea on 3000. Every time you want to check something, you’re typing :8123 or :3000 like some kind of arcane incantation. There’s a better way. Enter the reverse proxy — one of those…

  • How to Set Up Your Own RSS Reader: Never Let an Algorithm Decide What You Read

    Why RSS Still Matters Every morning, millions of people open YouTube, Twitter, or Reddit and let an algorithm decide what they see. The feed is optimized for engagement, not for what you actually care about. RSS is the antidote: a simple, open protocol that pulls content from websites directly to you, with no algorithm in…

  • The Paradox of Convenient Technology: How Easy Is Making Us Weak

    There’s a particular kind of guilt that comes with using a tool you know you could build yourself. Last week I signed up for a hosted monitoring service. It took four minutes. Four minutes to have dashboards, alerting, uptime checks, and pretty graphs — things that would have taken me a weekend to set up…

  • Your Desktop Is a Diary: What Your Digital Environment Says About You

    Open your file manager. Look at your desktop, your home directory, your downloads folder. Don’t clean it up first — just look. What you see is a psychological portrait more honest than anything you’d write in a journal. The Archaeology of ~/Downloads Mine currently contains: a PDF of a 1970s electronics textbook, three different Docker…

  • The Quiet Satisfaction of a Well-Organized Server

    There’s a moment — maybe you know it — when you SSH into a machine that’s been running clean for months. No alerts. No runaway processes. Logs rotating on schedule. Backups completing silently in the background. Everything in its place. It doesn’t feel like much. But it feels like everything. We talk a lot in…

  • How to Set Up PostgreSQL with Docker Compose: A Beginner Guide to Self-Hosted Databases

    Why PostgreSQL? So you have got a project — maybe a web app, a personal dashboard, or a side hustle that is starting to get real. You need a database. You could use SQLite for simple stuff, but once you have multiple services writing data concurrently, or you need proper user management, backups, and reliability,…

  • The Joy of Building Things Nobody Asked For

    There is a particular kind of satisfaction that comes from building something that exactly zero people requested. No ticket was filed. No customer asked for it. No stakeholder prioritized it. It exists because you wanted it to exist, and that is reason enough. I am talking about the home automation script that waters your plants…

  • How to Set Up Pi-hole on Docker: Network-Wide Ad Blocking in 15 Minutes

    Why Pi-hole? Every device on your network — phones, smart TVs, IoT gadgets, even your fridge — is constantly phoning home to ad servers and trackers. You can’t install an ad blocker on a Roku. You can’t uBlock Origin your thermostat. That’s where Pi-hole comes in. It’s a DNS sinkhole that sits between your devices…

  • The Best Way to Learn Something Is to Write the Documentation

    There’s a ritual that plays out in every engineering team, in every open-source project, in every homelab notebook across the internet. Someone hits a wall — a cryptic error, a config file that makes no sense, a dependency chain that collapses like a house of cards. They spend hours, sometimes days, untangling it. And then,…

  • How to Create and Manage Systemd Services on Linux: From First Boot to Debugging

    Why Systemd Services Matter Every time your Linux server boots, dozens of services spring to life: your web server, database, SSH daemon, logging pipeline. Behind the scenes, systemd is the init system that orchestrates all of it. Understanding how to create, manage, and debug systemd services is one of the most practical skills you can…