Skip to main content

Posts

Showing posts from May, 2026

Falco Runtime Detection for Vault-Mounted Secrets - Mirecloud Homelab Part 9

Kubernetes vLLM Open WebUI Keycloak SSO GitOps Blackwell GPU A private ChatGPT, self-hosted: a real 14B model served on my own GPU, behind company SSO, with data that never leaves the house. This is the first article in a sub-series and it covers the two foundations — serving the model (vLLM) and logging in (Open WebUI + Keycloak). The war stories: a Blackwell GPU that OOM-killed on every boot, and five silent traps in the SSO wiring. Groups, RBAC and RAG come next. Why do it yourself? The goal was simple: a private ChatGPT . A modern chat interface wired to a real LLM, but with inference running on my own hardware — no data leaving for a cloud provider. All of it on my home Kubernetes cluster (MireCloud), deployed cleanly via GitOps . Two building blocks are enough for the core: vLLM — the inference engine. It exposes an OpenAI-compatible API ( /v1/chat/completions ), it's fast, and it serves quantized models. Open WebUI — the front end. A chat UI that ...

Hachicop vault Dynamic Secret - Mirecloud Homelab Part 8

MireCloud Homelab Series — Part 8 May 8, 2026 · Emmanuel Steven Catin · 12 min read Kubernetes HashiCorp Vault Cilium Tetragon DevSecOps Zero Trust TL;DR — Vault dynamic secrets give every pod a unique, time-limited PostgreSQL credential that rotates automatically every 5 minutes — without restarting the pod, without touching the application. That credential is gone before an attacker can do anything with it. And yet, an attacker with a shell inside the pod can read the current one in under a second. This article proves the gap on a live cluster, then closes it at the kernel level. Where We Left Off Part 7 was about proving, with raw bytes from etcdctl , that the industry-default Kubernetes setup stores every secret as plaintext on disk — and then closing that gap with two controls: Encryption at Rest — defeated the adversary who steals a disk or exfiltra...