---
title: Architecture
area: infrastructure
tags: [infrastructure, homelab, assistant, integrations, automation, diagrams]
created: 2026-03-18
updated: 2026-05-27
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.

Operational note: current vault path is `/home/will/lab/swarm/swarm-common/obsidian-vault/will/will-shared-zap` on the host btrfs filesystem. Older notes about a VM `virtiofs` mount and `claw`/`openclaw` ownership are historical unless the VM is re-enabled.

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

## Current deployment

- Atlas/Hermes currently runs from Will's host-side `~/.hermes` checkout on the laptop; older OpenClaw VM notes are historical.
- OpenClaw VM infrastructure is intentionally dormant unless Will re-enables it.
- Shared note workspace lives in `will/will-shared-zap/` inside the Obsidian vault tree.

## Networking

- **Primary host LAN IPs:** `192.168.153.130`, `192.168.153.141`
- **Tailscale IP:** `100.123.88.127`
- **Previous host LAN IPs:** `192.168.153.113`, `192.168.153.117`
- **Separate MinIO endpoint:** `192.168.153.253:9000`

## Diagram set

Primary diagram:
- [[Infrastructure/Architecture - Master.canvas|Architecture - Master]]

Supporting views:
- [[Infrastructure/Architecture - Overview.canvas|Architecture - Overview]]
- [[Infrastructure/Architecture - Service Topology.canvas|Architecture - Service Topology]]
- [[Infrastructure/Architecture - Automation Flow.canvas|Architecture - Automation Flow]]

Recommended reading order:
1. Master for the whole system
2. Overview for a lighter top-level pass
3. Service Topology for runtime and dependencies
4. Automation Flow for messaging, memory, backups, and orchestration

Why Canvas: it gives much better layout control in Obsidian than Mermaid for this kind of infra map, and it avoids the clipping/rendering issues we kept hitting.
## Core service layers

### Memory / search
- **Memory index:** Ollama `nomic-embed-text` via sqlite-vec, hybrid BM25 + vector retrieval
- **Index sources:** workspace `memory/`, session transcripts, `will/will-shared-zap/` vault

### Search / retrieval
- **SearXNG** on `18803` for local-first search
- **Brave MCP** on `18802` for fallback / second opinion
- **Ollama embeddings** on `18807` for memory search

### Automation / orchestration
- **Atlas/Hermes runtime:** default Hermes profile, host-side `~/.hermes` checkout; Telegram/Discord gateway active.
- **Current main interactive session model:** `gpt-5.5` via `openai-codex`.
- **Local LLM runtime:** llama.cpp on `18806` serving `gemma-4-26B-A4B-it-UD-IQ2_M.gguf` (Gemma 4 26B GGUF, ctx 32768).
- **n8n-agent:** `18808` for scheduled/API-native workflows

### Speech / media
- **Whisper server:** `18801`
- **Kokoro TTS:** `18805`

## Storage / repos

### MinIO
- Bucket: `atlas` for current Atlas/Hermes laptop backups; legacy `zap` bucket still exists for older OpenClaw-era artifacts.
- Purpose: daily `~/.hermes`/Atlas backup snapshots via Hermes cron script `atlas-backup-to-minio-cron.sh`
- Accessed at `192.168.153.253:9000`

### Gitea
- Repo host: `gitea-gitea-ssh.taildb3494.ts.net`
- Swarm repo: `will/swarm-master.git`
- Atlas/Hermes repo: Gitea `will/atlas-code` (authoritative) with upstream GitHub mirror/backup as documented in Hermes memory.

## Kubernetes

- Small Raspberry Pi cluster
- Shared namespace: `swarm`
- Keep workloads lightweight and scoped

## Key integrations

- **Telegram:** primary interrupt / reminder / mobile channel
- **Discord:** deeper technical work and scoped threads
- **Obsidian:** shared vault `will/will-shared-zap/` at `/home/will/lab/swarm/swarm-common/obsidian-vault/will/will-shared-zap`; currently on host btrfs, not a VM `virtiofs` mount.
- **Google Workspace:** Gmail / Calendar / Drive via Hermes/Google Workspace tooling; old `gog`/OpenClaw paths in historical notes may be stale.

## Operating decisions worth keeping

- Search: SearXNG first, then Brave-backed fallback only when needed
- n8n vs cron: use n8n when it has the right native node or API path, keep shell-heavy local tasks in OpenClaw or OS cron
- Shared vault is human-readable layer; workspace memory remains source of truth

## Local model provider notes
- Date checked: 2026-05-27
- Current direct local model endpoint: `http://127.0.0.1:18806/v1` / `http://192.168.153.130:18806/v1`.
- Current served model id from `/v1/models`: `gemma-4-26B-A4B-it-UD-IQ2_M.gguf`.
- Ollama on `18807` is for embeddings (`nomic-embed-text`) and also has older chat models installed; do not describe the direct local LLM as Gemma 3.
- The 2026-04-15 OpenClaw `local/gemma-3-12b-local` migration was historical and should not be used as current Atlas/Hermes config guidance.
- Verify with: `curl -s http://127.0.0.1:18806/v1/models`.
