docs: top-10 fixes (PORTMAP, storage truth, banners, AdGuard scrub, zoraxy UCI removed, CT 111 section, Daytona purge)

This commit is contained in:
2026-05-21 00:20:18 +02:00
parent d63e0df647
commit 061f09b2d2
12 changed files with 160 additions and 473 deletions
+18 -11
View File
@@ -10,7 +10,7 @@ across ~23 compose stacks. Principle: **self-host everything**, OIDC SSO,
`rpool/data/subvol-104-disk-0`. Mounts the UNAS NFS at `/mnt/pve/unas`.
- **Proxmox VE** — host **`192.168.1.20:8006`**, single node **`nuc`**
(Intel Core Ultra 7 155H, 22 threads, 64G RAM, PVE 9.1.11). API access via
`root@pam!mcp` token (now `PVEAuditor`, read-only). **7 guests:**
`root@pam!mcp` token (now `PVEAuditor`, read-only). **9 guests (+ 2 planned)** — canonical roster in [`ct-inventory.md`](../ct-inventory.md):
- `100` qemu **haos** — Home Assistant OS VM (4c/16G) → `.60`
- `101` lxc **shepard** — secondary Docker host (12c/16G/107G) → `.49`
- `102` lxc **dns****AdGuard Home** (network DNS + ad/tracker blocking,
@@ -22,6 +22,10 @@ across ~23 compose stacks. Principle: **self-host everything**, OIDC SSO,
- `104` lxc **docker****the primary `/opt/stacks` host** (16c/32G/215G) → `.40`
- `105` lxc **nextcloud** — Nextcloud (4c/8G/107G) → `.41`
- `108` lxc **zoraxy** — reverse proxy (2c/2G) → `.4`
- `110` lxc **id** — Pocket-ID OIDC IdP (1c/1G/4G) → `.5`; migrated off 104 on 2026-05-20
- `111` lxc **dev** — Coder + Gitea (12c/32G/60G) → `.42`; new 2026-05-20
- `109` lxc **observe** *(planned)* — Prometheus/Grafana/Arcane/Dozzle/Homarr/Tinyauth; see §16 of `infra/proxmox-state.md`
- `113` lxc **db** *(planned)* — shared Postgres + pgbouncer once second NVMe lands
- Storages: `local` (dir), `local-zfs` (zfspool, ~1.9T), `unas` (nfs, ~20T).
- **Ubiquiti UniFi** — UDM "Home" (UDMA6A8, UCG Fiber) gateway + 4× U7-series
APs. Controller at **`https://192.168.1.1`** (UniFi OS 5.0.16, SSO + MFA
@@ -133,12 +137,12 @@ across ~23 compose stacks. Principle: **self-host everything**, OIDC SSO,
- **Auth** — **PocketID** (`id.nuclide.systems`, OIDC, SQLite) is the
**universal SSO/IdP for the entire ecosystem** — effectively every service
authenticates via PocketID OIDC (LiteLLM, LobeChat, MCP gateway, Nextcloud,
Daytona via the Keycloak→PocketID OIDC adapter, etc.). Single sign-on
everywhere; one identity source to secure/audit.
Coder, Gitea, Vaultwarden, etc.). Single sign-on everywhere; one identity
source to secure/audit. Vaultwarden remains the lone gap as of 2026-05-20.
## Docker networks
`ai-internal` (AI/MCP plane) · `shared_backend` (cross-stack DB/S3) ·
plus per-stack: `arr-stack_default`, `daytona-minimal_daytona-network`,
plus per-stack: `arr-stack_default`,
`immich_default`, `karakeep_default`, `homepage_default`, `vpn_default`.
The MCP gateway bridges `ai-internal` + `shared_backend`.
@@ -176,12 +180,15 @@ The MCP gateway bridges `ai-internal` + `shared_backend`.
`mcp-gateway/config.json` (servers), `agents.json` + `prompts/` (agents).
- **MCP servers** (gateway-managed): time, home-assistant (exact_upstream to
`.60` ha-mcp), kroki (self-hosted: kroki+mermaid+excalidraw companions),
daytona, fetch, sequential-thinking, ntfy, memos, docling, markitdown,
crawl4ai, context7, wikipedia, papersearch, comfyui, bluesky (brianellin,
rate-limit pending). Groups incl. `shepard-mcp`.
- **Daytona** (`daytona.nuclide.systems`, daytona-minimal stack) — secure
code sandboxes (Agent Operator deep-dives, shepard). Registry fixed to
internal+host `:5000` (was misconfigured at 6000). Snapshot `sciviz-py`.
**coder** (replaced daytona 2026-05-20), fetch, sequential-thinking, ntfy, memos,
docling, markitdown, crawl4ai, context7, wikipedia, papersearch, comfyui,
bluesky (brianellin, rate-limit pending). Groups incl. `shepard-mcp`.
Gaps to close (community MCPs exist): gitea, paperless, karakeep, vaultwarden,
proxmox-ve, audiobookshelf. See [`services/mcp-gateway.md`](mcp-gateway.md).
- **Coder** (`dev.nuclide.systems`, CT 111) — replaced Daytona as the sandbox /
dev-environment runtime. Templates: `python-uv` (persistent, GPU passthrough,
baked LiteLLM env + Claude Code), `mcp-sandbox` (ephemeral, sci stack
pre-baked). See [`services/dev-environment.md`](dev-environment.md).
- **LobeChat** (`chat.nuclide.systems`, :14001) — chat UI; MCP plugins +
agents in `lobechat` DB (lobe-postgres). Agents scriptable via
`scripts/lobe_agent.py`. Native QStash scheduler NOT functional here →
@@ -199,7 +206,7 @@ The MCP gateway bridges `ai-internal` + `shared_backend`.
## Data layer
- **shared-postgres** (pg16, `shared_backend`, data on local ZFS) — the
**primary/standard DB for all deployments**. Tenants: LiteLLM, paperless,
daytona, **memos** (migrated 2026-05-19). Superuser
**memos** (migrated 2026-05-19), n8n (added 2026-05-19). Superuser
`postgres` via unix socket; per-app dedicated role+db (role owns its db,
password in the app stack's `.env`). Tuned 2026-05-19 (3G limit,
shared_buffers 768M, max_conn 200).