Skip to content
Territory Grounder operator console, Command view

Territory Grounder: Governed-Autonomy SRE Platform

Experimental · mode-gated actuation An SRE agent whose proposed infrastructure changes must pass checks outside the model. I set the architecture, governance rules and product direction, direct AI-assisted implementation, and operate the test environment. What works—and the limitsThe public repository reports deployed triage, an operator console and mode-gated actuation in an owner-set Semi-auto mode. Missing or invalid mode state falls back to read-only Shadow. The product landing page still says mutation is off; the newer public README reports it enabled. This review follows the README for implementation status, not a fresh inspection of runtime settings. Operational assurance is still being evaluated. ...

July 17, 2026 · Updated October 29, 2026 · 4 min · Kyriakos Papadopoulos
Agentic ChatOps Platform Architecture v2

Agentic ChatOps: AI-Powered Infrastructure Operations for a Solo Operator

Agentic ChatOps triages infrastructure alerts and predicts the consequences of each proposed fix before it acts — auto-resolving only the remediations a causal world-model can prove safe, behind a fail-closed, machine-verified prediction gate. GitHub: papadopouloskyriakos/agentic-chatops 390 / 1149causal world-model nodes / edges 71active n8n workflows 58SQLite tables · 30 versioned 6,186 · 12% autogoverned decisions 12 / 14agent-guide rubric dims at A 1,561autonomous agent sessions 792alerts auto-resolved 4.10 / 5avg judge score · 1,511 sessions Usage The auto-resolve rate is intentionally conservative. Autonomy is earned per-action-class through the verification contract — an action type may self-resolve only after its predictions have repeatedly matched observed reality — never switched on globally. A low number here is the safety system working, not a ceiling. ...

April 7, 2026 · Updated October 29, 2026 · 30 min · Kyriakos Papadopoulos
GPU Homelab Architecture

Unified GPU Homelab: AI, Media & Gaming

One Dell Precision 3680 with an RTX 3090 Ti passed through to an Ubuntu VM. It runs local LLMs, transcodes media, and streams PC games — all from the same GPU, depending on what I need at the time. Overview Aspect Details Host Dell Precision 3680 CPU Intel Core i9-14900K RAM 128 GB GPU NVIDIA RTX 3090 Ti (PCI-e passthrough) Hypervisor Proxmox VE 8.4.5 VM 16 vCPUs, 40 GB RAM, Ubuntu 24.04.3 LTS Workload Breakdown AI Inference & Language Tasks Ollama - Local LLM inference Whisper / Faster-Whisper - Speech-to-text Piper TTS - Text-to-speech LibreTranslate - Machine translation Stable Diffusion - Image generation Viseron - AI-powered video analysis Immich - AI-powered photo management Ollama API Integrations Open WebUI (ChatGPT-style interface) Nextcloud AI features Perplexica (AI search) n8n workflow automation Home Assistant voice control Media Streaming & Transcoding Jellyfin - Media server with hardware transcoding Viseron - NVR with AI object detection Immich - Photo/video library with ML features Cloud Gaming Stack Sunshine - Game streaming server Xorg - Display server Steam with Proton + Wine Tested: Cyberpunk 2077 Clients: Moonlight (Android TV), Xbox controllers Architecture ┌─────────────────────────────────────────────────────────────────┐ │ Dell Precision 3680 │ │ i9-14900K | 128 GB RAM │ │ Proxmox VE 8.4.5 │ └─────────────────────────────────────────────────────────────────┘ │ │ PCI-e Passthrough ▼ ┌─────────────────────────────────────────────────────────────────┐ │ GPU VM (Ubuntu 24.04.3) │ │ 16 vCPUs | 40 GB RAM │ │ RTX 3090 Ti (24GB VRAM) │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ AI Workloads │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ Ollama │ │ Whisper │ │ Piper │ │ Stable │ │ │ │ │ │ LLM │ │ STT │ │ TTS │ │Diffusion │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Media Services │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ Jellyfin │ │ Viseron │ │ Immich │ │ │ │ │ │ (NVENC) │ │ (NVR) │ │ (Photos) │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Cloud Gaming │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ Sunshine │ │ Steam │ │ Xorg │ │ │ │ │ │(Streamer)│ │ (Proton) │ │(Display) │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ Network ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Clients │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Open WebUI │ │Home Assistant│ │ Moonlight │ │ │ │ (AI Chat) │ │(Voice Control)│ │(Game Stream) │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────────┘ What It Does The GPU is shared across three types of work: ...

February 1, 2025 · 3 min · Kyriakos Papadopoulos
n8n Workflow

Auto-Summarize Blog Posts to Social Media

An n8n workflow that watches my blog RSS feed, summarizes new posts with a local LLM (Gemma on Ollama), and cross-posts to Facebook, LinkedIn, X, and Instagram. I write the post once; the workflow handles the rest. Overview Aspect Details Platform Self-hosted n8n LLM Gemma via Ollama (local GPU) Social APIs Postiz Scheduling Cron trigger (10 min) Hardware RTX 3090 Ti for inference How It Works Fetch - RSS feed polling for new blog posts Dedupe - Hash-based tracking skips already-posted entries before any further work Summarize - Ollama (Gemma) generates platform-specific summaries Extract - Parse HTML for images, download and resize Generate - AI creates relevant hashtags Publish - Postiz API posts to all platforms Architecture ┌─────────────────────────────────────────────────────────────────┐ │ Hugo RSS Feed │ └───────────────────────────┬─────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ n8n Workflow │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ Cron Trigger (10 min) │ │ │ └──────────────────────────┬───────────────────────────────┘ │ │ │ │ │ ┌──────────────────────────▼───────────────────────────────┐ │ │ │ RSS Feed Node (Fetch Latest) │ │ │ └──────────────────────────┬───────────────────────────────┘ │ │ │ │ │ ┌──────────────────────────▼───────────────────────────────┐ │ │ │ Hash Check (Duplicate Prevention) │ │ │ └──────────────────────────┬───────────────────────────────┘ │ │ │ │ │ ┌──────────────────────────▼───────────────────────────────┐ │ │ │ Ollama Node (Gemma LLM) │ │ │ │ • Summarize (platform char limits) │ │ │ │ • Generate hashtags │ │ │ └──────────────────────────┬───────────────────────────────┘ │ │ │ │ │ ┌──────────────────────────▼───────────────────────────────┐ │ │ │ Image Extraction & Processing │ │ │ │ • HTML parsing │ │ │ │ • Download & resize │ │ │ └──────────────────────────┬───────────────────────────────┘ │ │ │ │ │ ┌──────────────────────────▼───────────────────────────────┐ │ │ │ Postiz API │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │Facebook │ │LinkedIn │ │ X │ │Instagram│ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ What Was Harder Than Expected Getting the LLM to respect character limits was the recurring headache. X needs 280 characters, LinkedIn gets more room. The prompt engineering for consistent output length took more iteration than the actual workflow logic. ...

October 1, 2025 · 3 min · Kyriakos Papadopoulos