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 ...
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 ...