Notes from the Terminal

Jani Karlsson By Jani Karlsson

Freetime writing about DevOps, self-hosting, server security, the IT industry, and whatever else catches my attention. 20+ years in Linux and infrastructure, currently working as a Managing Delivery/Solution Architect.

jani@raatti.net — zsh — 80×24
jani@raatti:~ $ whoami
jani
jani@raatti:~ $ cat tagline.txt
A DevOps Architect writing about IT, travel, and the outdoors he rarely sees
jani@raatti:~ $ cat disclaimer.txt
These are my opinions and mine alone — they don't belong to any overlord, human or otherwise.
jani@raatti:~ $ ls blog/
shouting-into-the-void-of-discord-ssh-login-notifications-with-pam_exec.md 314-votes-against-and-chat-control-still-moved-forward.md scanning-everyone-protects-no-one-chat-control-returns-for-its-final-trilogue.md code-is-the-end-vision-first-development-with-ai-agents.md self-hosted-ai-a-local-coding-agent-on-a-gtx-1080-ti.md
jani@raatti:~ $

$ ls -la ~/blog/ --sort=date

|Shouting Into the Void (of Discord): SSH Login Notifications with pam_exec
|314 Votes Against – and Chat Control Still Moved Forward
|Scanning Everyone Protects No One: Chat Control Returns for Its Final Trilogue
|Code Is the End: Vision-First Development with AI Agents|
|Self-Hosted AI: A Local Coding Agent on a GTX 1080 Ti|
|AI Capacity Is Getting Full|
|Headscale vs Tailscale vs NetBird vs Cloudflare Mesh for Private Networking|
|Self-hosted Git with Forgejo on RHEL|
|Simplicity is a Feature: Migrating to Cloudflare Tunnel on Red Hat Linux
|From Bandwidth Mystery to Hardened Origin: A Day of Server Security