Ghostwire: Reading My Own WhatsApp Desktop Without Clicking Through It
How Ghostwire uses a native Windows WebView bridge for local exports and authenticated webhooks, with session, compatibility and queue limits.

Karl Machleidt
Security research, self-hosting, and the things I learn by taking things apart.
Read the blogHow Ghostwire uses a native Windows WebView bridge for local exports and authenticated webhooks, with session, compatibility and queue limits.

How I use self-hosted Infisical, machine identities and selected credential injection for AI tools, with reproducible examples and honest permission boundaries.

Vane, SearXNG and local inference: searchable sources, honest engine failures, document conversion and a reproducible way to check the answers.

The caching setup I used before Astro: anonymous HTML at Cloudflare, an origin page cache, Redis limits and tests for private-content bypass.

A technical tour of my OPNsense nginx reverse proxy, NAXSI policies, Elastic evidence and guarded n8n response, including tuning, tests and current limitations.

Why I built a low-interaction NetScaler honeypot, how its capture-only stack works, and what real payloads and the private evidence console actually show.

How I moved Karl.Fail to Astro and Cloudflare Pages, kept WordPress private, and built automatic publishing, local search and a faster reading…

Stop dealing with expiring hostnames and insecure API tokens. Learn how to deploy KarlDNS, a secure, account-free, self-hosted DynDNS using FastAPI, SQLite…
