I'm Karl Blessing — photographer, sysadmin, and the person who built the server this site runs on. kbeezie.com is where I document what I've learned about Nginx, PHP-FPM, fail2ban, and keeping a server online without losing sleep. Too much server documentation lives at the extremes — beginner tutorials that hand you a config block with no explanation, or expert-level scripts that assume you already know why they work. I try to fill the gap between them. Every article here explains not just what to do, but what the configuration is actually doing and why it's worth your time.
What I do when I'm not staring at access logs
I'm a photographer and videographer. karlblessing.com is my portfolio — client work, event coverage, product photography, and the occasional short film. I've exhibited at the UICA and Kendall College of Art and Design, placed in the Michigan Press Association awards, and my work has appeared in GRCC's Display Magazine more times than I kept track of. I also have an IMDB page which still surprises me.
I collect and restore fountain pens. pbin.be is my pen gallery — before-and-after shots of pens I've repaired, their histories, and the occasional deep dive into a nib that deserved better than a landfill. Fountain pens and photography feed each other: vintage pens make excellent subjects, and good photography captures the craftsmanship. I help moderate /r/fountain_pens, where I share what I've learned about restoration and try to keep history out of the hands of gold scrappers. There's something satisfying about taking a 100-year-old Wahl fountain pen, turning it back into a daily writer, and hopefully giving it another century of life.
How I got here
I've been building websites since the early 2000s — full-stack development when that just meant you knew PHP, MySQL, and how to configure Apache without breaking it. I hold associate degrees in Photography and in Web & Graphic Design from Grand Rapids Community College. I've worked as a software engineer, an e-commerce developer, a photography professor's assistant, and most recently as an e-commerce photographer cataloging donated products for online sales.
The through-line across all of it is that I build things, document what I learn, and publish the parts that might help someone else. That's what this site is.
This site
kbeezie.com runs on a Debian VPS with Nginx, PHP-FPM, and Bludit — a flat-file CMS that doesn't need a database. I write about Nginx configuration, server hardening, rate limiting, fail2ban, and the occasional Python script. The Security Series is the best place to start if you're locking down a server. The Start Here page covers everything else.
I ran with WordPress and static pages for years before switching to Bludit — and long before Bludit, its predecessor Nibbleblog. The appeal was the same then as it is now: a flat-file CMS that doesn't feel like one. No database to maintain, no build step between writing and publishing, and a login page that works the way you'd expect. The tradeoff is that Bludit is not a WordPress replacement for non-technical users. It's a developer's CMS — theme and plugin support is lean, and you'll occasionally need to write your own code or dig into a source file. If you're comfortable on a server, that's a feature. If you're expecting a plugin marketplace and a child-theme customizer, it's not for you… yet.
I mention "yet" because I'm still building for it. The syntax highlighter plugin that uses PrismJS, the WordPress-to-Bludit import plugin, the pagination plugin — I'm hoping that if the PHP side gets covered, more users might adopt it and only need to work up their own HTML and CSS.
Everything published here is something I run myself. No theoretical configurations. No untested advice. If it's on this site, it's running on my server first.