I Pulled /etc/passwd Off My Own Server

An nginx 400 felt like a fix. send_from_directory felt like a fix. Then a different endpoint handed me /etc/passwd, and the real question was how bad that actually is.

June 29, 2026 · 6 min · phinguin

What the Four SSL Files Actually Do

cert.crt, chain_cert.crt, root_cert.crt and a .key. I’d installed them a dozen times without knowing why there were four, so I finally sat down and worked it out on my own server.

March 26, 2026 · 8 min · phinguin

Dev and Prod on One Server

Running dev and prod side by side on one AWS box. Compose project names fixed the collisions, and made it really easy to forget everything Docker doesn’t own.

February 5, 2026 · 11 min · phinguin

What the Upstream Image Was Hiding

Splitting an all-in-one Docker image into separate services broke a bunch of assumptions I didn’t know existed. Every “how did this work before?” had the same answer.

December 5, 2025 · 10 min · phinguin

Who Actually Visited the Landing Page?

Answering a marketing question with grep and awk on nginx access logs: requests vs. visitors, bots, timezones, and why the log can’t tell you what the browser never sent.

November 24, 2025 · 7 min · phinguin