nginx Active Health Checks Send Pod IPs as Host Headers — Here’s Why Your Backend Returns 502s

nginx active health checks pod IPs host headers 502 errors

The Symptom: Intermittent 502s That Only Appear on Health-Check Traffic The maddening part of this failure mode is that your backend looks healthy by every obvious metric. You curl the pod directly, you hit the service endpoint, everything returns 200. Real user traffic flows through fine — until nginx quietly decides the upstream is down … Read more

Modularized Workflow Toggles in GitHub Actions: Cutting CI/CD Run Time Without Losing Control

Modularized Workflow Toggles in GitHub Actions

The Problem: Every Push Runs Everything, and It’s Killing Your Feedback Loop The most expensive CI failure isn’t a flaky test — it’s running the full pipeline on a commit that changed two lines in README.md. A typical monolithic .github/workflows/ci.yml queues lint, unit tests, integration tests, Docker build, push to registry, deploy to staging, and … Read more

Self-Hosted Log Fingerprinting Pipelines: Catching Anomalies Without Sending Logs to the Cloud

self-hosted log fingerprinting

The Problem: Your Logs Are Noisy and Your Alerting Is Dumb Threshold-based alerting has a fundamental blind spot: it measures magnitude, not behavior. A sudden flood of HTTP 200s looks healthy to every rule you’ve probably written — no error rate spike, no latency breach, nothing trips. But if those 200s are all hitting /api/export … Read more

Building a Local Dashboard with Homepage: One Config File to Rule Your Self-Hosted Stack

self-hosted stack dashboard

The Problem: Thirty Services, Zero Visibility The moment you cross about a dozen self-hosted services, browser bookmarks stop working as an ops strategy. You end up with a mental map that looks something like this: Ollama is on :11434, n8n is on :5678, Grafana on :3000, Portainer on :9000, your WordPress instance somewhere behind an … Read more

Monitoring Kubernetes Clusters with OpenTelemetry Collector: The Agent + Gateway Pattern Explained

Monitoring Kubernetes Clusters with OpenTelemetry Collector

The Problem: Per-Node Chaos Without a Collection Strategy The failure mode nobody talks about until it’s happening in production: every pod opens a direct gRPC connection to your Tempo or Loki ingest endpoint, and the backend starts dropping spans not because it’s overloaded on CPU, but because it hits its concurrent connection limit. gRPC connections … Read more

Vaultwarden 1.36.0: What Changed, What to Patch, and How to Upgrade Without Losing Your Vault

Vaultwarden 1.36.0 update

Why This Update Isn’t Optional The self-hosted threat model inverts the SaaS assumption entirely. With Bitwarden’s cloud offering, a dedicated security team monitors infrastructure, rotates credentials on breach indicators, and deploys patches before most users notice a CVE dropped. With Vaultwarden, you are that team — one person, one instance, zero on-call rotation. Every credential … Read more

Monitoring a Kubernetes Cluster with OpenTelemetry Collector: Agent + Gateway Pattern That Actually Works

OpenTelemetry Collector Kubernetes

The Problem: One Collector Per Cluster Is a Reliability Trap The single-collector setup is almost always how this starts: one DaemonSet or Deployment running a monolithic OpenTelemetry Collector that scrapes node metrics, receives traces from instrumented apps, and ships everything to your backend. It works fine right up until it doesn’t. One pipeline misconfiguration — … Read more

FileRun, OnlyOffice, and Pangolin for a Self-Hosted Web Calendar: Which One Actually Fits Your Stack

self-hosted web calendar

The Problem: You Want a Web Calendar Without Renting Someone Else’s Server The setup sounds simple until you actually try to build it: a calendar you can open in a browser, sync to your phone over CalDAV, host on your own hardware, and never pay a per-seat bill for. That constraint eliminates almost every polished … Read more