<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dinesh / Notes</title><link>https://blog.dineshk.me/</link><description>Recent content on Dinesh / Notes</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 02 Sep 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://blog.dineshk.me/feed.xml" rel="self" type="application/rss+xml"/><item><title>Owning the stack, one understandable layer at a time</title><link>https://blog.dineshk.me/posts/owning-the-stack.html</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0200</pubDate><guid>https://blog.dineshk.me/posts/owning-the-stack.html</guid><description>I started with a simple goal: run a few useful services today without making tomorrow&amp;rsquo;s home server a completely different project. That led to a deliberately short chain.
Ansible prepares the host Compose runs the services Caddy handles the web Restic protects the data Every layer needs a reason Ansible exists because a new machine needs one repeatable bootstrap. Compose exists because the applications should move together. Caddy exists because public services need one controlled entrance.</description></item></channel></rss>