---
title: Architecture
area: infrastructure
tags: [infrastructure, homelab, assistant, integrations, automation]
created: 2026-03-18
updated: 2026-03-25
status: active
related: [[Infrastructure/Services/Docker Services]], [[Infrastructure/Automation/Cron Jobs]], [[Infrastructure/Automation/n8n Workflows]]
---

# Architecture

High-level map of Will's homelab + assistant stack. For operational details (IPs, credential paths, commands), see TOOLS.md in the assistant workspace.

See sub-notes for details:
- [[Infrastructure/Services/Docker Services]]
- [[Infrastructure/Automation/Cron Jobs]]
- [[Infrastructure/Automation/n8n Workflows]]

---

## Overview

Will's stack runs on a laptop VM (moving to main host post April 1st). The assistant ([[zap ⚡]]) is an OpenClaw instance with memory, skills, and automation layered on top of local Docker services and a small Raspberry Pi Kubernetes cluster.

---

## Networking

| Layer | Detail |
|---|---|
| Primary LAN IP | `192.168.153.113` |
| Secondary LAN IP | `192.168.153.117` (eth0) |
| Tailscale IP | `100.123.88.127` |

---

## Core Docker Services

See [[Infrastructure/Services/Docker Services]] for full details.

| Service | Port | Role |
|---|---|---|
| SearXNG | `18803` | Local-first web search |
| LiteLLM proxy | `18804` | Model gateway (all providers) |
| Whisper server | `18801` | Local audio transcription |
| Brave MCP | `18802` | Brave Search fallback |
| n8n-agent | `18808` | Automation workflows |
| Ollama | `18807` | Local embeddings |
| llama.cpp | `18806` | Local LLM (Gemma 3 12B) |
| MinIO | `9000` | Object storage (`192.168.153.253`) |

---

## Storage & Git

| System | Detail |
|---|---|
| **MinIO** | Bucket `zap` — full `~/.openclaw` backups every 6h. Versioned, 90-day retention. |
| **Gitea** | `gitea-http.taildb3494.ts.net` — `will/swarm-zap.git` — workspace backup/review |

---

## Kubernetes

- Small Raspberry Pi cluster
- Shared namespace: `swarm`
- Lightweight workloads only
- Safe scoped operations via `swarm-kubectl-safe` skill

---

## Assistant Layer

| Component | Detail |
|---|---|
| Runtime | OpenClaw `2026.3.23-2` |
| Identity | zap ⚡ |
| Default model | `github-copilot/gpt-4o` + fallback chain |
| Memory | Ollama embeddings + markdown workspace files |
| Council | Pragmatist / Visionary / Skeptic (GLM 4.7) + Referee (Claude Sonnet 4.6) |

### Model Tiers

| Tier | Model |
|---|---|
| Fast/cheap | `litellm/zai-glm-4.7` |
| Default | `litellm/copilot-claude-sonnet-4.6` |
| Strongest | `litellm/copilot-claude-opus-4.6` |

---

## Integrations

| Integration | Detail |
|---|---|
| **Telegram** | Primary notification + interaction channel for reminders, alerts, and quick mobile interaction |
| **Discord** | Preferred surface for deep technical work, brainstorming, experiments, and scoped threads |
| **Obsidian** | Shared vault + zap's memory vault at `/mnt/swarm-common/obsidian-vault/` |
| **Google Workspace** | Gmail, Calendar, Drive, Tasks via `gog` CLI |
| **Search** | SearXNG first → Brave MCP fallback |

---

## Automation

See [[Infrastructure/Automation/Cron Jobs]] and [[Infrastructure/Automation/n8n Workflows]].

---

## Key Decisions

- Search: SearXNG first → Brave fallback. Brave free plan rate-limited; no parallel bursts.
- n8n vs cron: n8n for native-node tasks. OpenClaw/OS cron for shell tasks. No SSH bridge.
- Kubernetes: scoped to `swarm` namespace, Pi-friendly resource limits.
- Daily schedule goes live April 7, 2026. See [[Plans/Daily Schedule]].
