Blogs
A space for thoughts, observations, and things worth documenting. Covering technology, creativity, workflows, ideas, and everything in between.
24 posts · page 3 of 3
What automatic HTTPS actually does under the hood, the Caddyfile syntax that matters, reverse proxy recipes for real applications, the gotchas that cost me time - and an honest account of where Nginx is still the better tool.
A practical guide to Quadlet - where unit files go, what every section does, how networks and volumes are wired, building images declaratively, auto-updates, and the specific errors that waste the most time. Includes the rootless requirements nobody mentions.
A practical comparison after actually running both - the daemon versus fork-exec model, what rootless containers really protect you from, why systemd integration mattered more than I expected, and the cases where Docker is still the right answer.
The final part of setting up my first VPS on Debian 13 Minimal. Containerizing a SvelteKit app with adapter-node, running it as a Quadlet service behind Caddy with no published ports, a one-command redeploy script, and the failures that cost me the most time.
Part 4 of a journey learning how I set up my first VPS on Debian 13 Minimal. Putting Caddy in front as a reverse proxy with automatic HTTPS - a private container network, persistent certificate storage, and a Quadlet unit that survives reboots.
Part 3 of a journey learning how I set up my first VPS on Debian 13 Minimal. Getting rootless Podman working properly - the packages Debian Minimal leaves out, UID mapping, lingering, privileged ports, and running a first container as a systemd Quadlet service.
Part 2 of a journey learning how I set up my first VPS on Debian 13 Minimal. Fixing the Debian 13 SSH port gotcha, adding swap, closing every port with ufw, banning repeat offenders with fail2ban, and letting security patches apply themselves.
Part 1 of a journey learning how I set up my first VPS on Debian 13 Minimal. This part focuses on initial access, system updates, SSH keys, user separation, and SSH hardening to secure the base system before any services are deployed.