Technical insights and best practices for DevOps & Infrastructure
Official Supabase Docker stack on a clean Ubuntu sandbox: the pooler and Edge Functions crash-looped. Why, and a compose override that fixed both, with tests.
Dokku's nginx templates listen on [::] by default. Here is why nginx refuses to start on a host without IPv6, and how to fix it, including notes forβ¦
How to set up a single-node edge MQTT aggregator with K3s and WireGuard, and how to fix the faulty flags, units and sysctls that edge guides often repeat.
Pods lose DNS after an egress NetworkPolicy is applied. This article covers the wrong namespace label, the missing TCP port 53 rule and a tested-in-theory fix.
How to replace hand-run kubectl apply with a pull-based GitOps flow: Argo CD, Kustomize overlays, Sealed Secrets and a CI job that only edits an image tag.
How to link a hyperscaler workload to a database on a Norwegian VPS with WireGuard, what the tunnel does not fix, and the common mistakes in such setups.
Control planes built on etcd or Raft fail on slow disks. How to test fsync latency, pick between Kubernetes, K3s and Nomad, and prepare a K3s node.
Why Kubernetes, Docker Swarm and Nomad clusters turn flaky on slow disks or stolen CPU, how to measure it with fio and vmstat, and what to change.
Why a Prometheus stack stalls under load, and how to fix it: federation, a lean node_exporter, recording rules, WAL-friendly storage and a locked-down firewall.
How an Nginx API gateway with rate limiting and upstream keepalive, plus an opossum circuit breaker, limits cascading failures between microservices (2022β¦
How to run a three-node NATS JetStream cluster (server 2.6, nats.go 1.13) with replicated streams, authentication, correct acks and sane OS limits.
How to measure request latency, CPU steal and disk trends on your own server with Nginx timing logs, Prometheus 2.28 and Grafana 8, without a third-party APM.
Slow or timing-out Jenkins builds are often caused by iowait, swapping and a badly sized JVM heap. How to diagnose and tune each on a 2014-era Linux server.
How to keep a local HAProxy in step with a ZooKeeper service registry: ephemeral znodes, a watcher that regenerates the config, and a graceful reload.
How to keep slow jobs out of the web request path with RabbitMQ, Celery 3.0 and Nginx 1.2 on Debian 7, with corrected configuration and the limits of the setup.
Put HAProxy 1.4 in front of web nodes on CentOS 6, tune the kernel and use Keepalived VRRP so the balancer itself is no single point of failure.
How to run a private, key-only Git server with Gitolite 2.x on CentOS 6, with access rules kept in a Git repository. Covers latency, I/O, and backups.