Why git add . is a trap, what a commit stores, and why a deleted secret is still in your history. The local half of Git, before any remote.
Blog
Writing notes
Notes I want to share and keep around, for me and for whoever finds them useful.
What I actually want to share and keep public: service alternatives, news worth flagging, learning materials, and small notes from the homelab and adjacent spaces.
Half of it is for future me, the next time I forget why I picked something. The other half is for anyone passing through. Hope it's worth the read.
-
-
Why a long job ignores your Ctrl-C, and the handler that fixes it. Signals, the child processes a script leaves running, and the init that inherits them.
-
The same backup script, grown from four lines that look fine to one you can trust to fail without eating your last good backup. Quoting, exit codes, set -euo pipefail and traps, with the reason behind each line.
-
From the universal chmod -R 777 to a directory only the service can touch. Ownership as a number, the rwx bits, and the setgid, sticky and setuid bits the hardened container leans on.
-
A pull-based deploy: CI signs a webhook, an agent on the server pulls the new image and redeploys. Plus the 401 that was never about the signature.
-
A self-hosted file drop with OIDC, invitations and reverse shares. Sits behind my reverse proxy without leaking metadata.