diff --git a/AGENTS.md b/AGENTS.md index ac0e276..70cdbe6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -71,8 +71,8 @@ secret in every agent's context window on every machine that pulls this repo. | box | role | GPU | notes | |-----|------|-----|-------| | Dev workstation | client box, never runs inference | laptop iGPU + dGPU (non-unified) | mainline llama.cpp at `~/GitPackages/llama.cpp/build/bin/`; this repo lives here at `~/.omp` | -| Dankclaw | bench target, runs the large serving model | Strix Halo APU — **unified memory** | ROCmFPX fork at `~/GitPackages/ROCmFPX/build-qwen38/bin/`; prod service `frank-default-large`, port 7770; ssh: `ssh dankclaw` | -| Dankserver | FreeToken box | RTX 3090 dGPU — non-unified | runs `frank-default-small`; ssh: `ssh dankserver` | +| Dankclaw | bench target, secondary models + service stack | Strix Halo APU (**unified memory**) + RTX 3090 (moved over from Dankserver 2026-09) | prod services `frank-dragoon` (halogen-flash-server, :7770, iGPU) and `frank-zealot` (llama.cpp PrismML fork, :7771, 3090); runbooks in the serverAppConfigs vault (`~/Projects/serverAppConfig/serverAppConfigs-docs/LLM/`); ssh: `ssh dankclaw` | +| Dankserver | main-model box | 2× Radeon AI PRO R9700 — non-unified (was RTX 3090 until 2026-09) | runs `frank-archon` (radiance, TP=2, :7770) — **this repo's operator session runs on it**; ssh: `ssh dankserver` | ## Environment gotchas @@ -84,9 +84,10 @@ secret in every agent's context window on every machine that pulls this repo. - SSH into both servers is BatchMode-capable from here: `ssh -o BatchMode=yes dankclaw ''` — read-only probes are always allowed; state changes on remote boxes are not, without a per-run OK. -- `frank-default-large` on Dankclaw is a **production service** shared with this - repo's operator: never stop, mask, or restart it (or any production service on - any box) without an explicit, current, per-run OK from Frank. +- `frank-archon` (Dankserver), `frank-dragoon`, and `frank-zealot` (Dankclaw) + are **production services** shared with this repo's operator: never stop, + mask, or restart them (or any production service on any box) without an + explicit, current, per-run OK from Frank. ## File-organization doctrine (why this repo stays readable) diff --git a/omp-docs/core/index.md b/omp-docs/core/index.md index 4748631..c6c375e 100644 --- a/omp-docs/core/index.md +++ b/omp-docs/core/index.md @@ -1,12 +1,18 @@ # Core Documentation -These files define the structural conventions that govern the pi agent system itself. They are the grammar rules — boring until you break them, then devastating. +These files define the structural conventions that govern the agent system itself. They are the grammar rules — boring until you break them, then devastating. + +> **Archive note (2026-10-18).** The settings pages (`settings.md`, `settings.json`) +> capture the retired **pi** harness configuration (`frank-default-*` endpoints, +> RTX 3090-era hardware) and are historical records. The live config is +> `agent/config.yml` + `agent/models.yml` in this repo; current fleet endpoints +> are on [System hosts](/system/index.md). The AGENTS.md format pages remain current. ## Concept Files * [AGENTS.md Format Specification](agents-md-format.md) — Canonical structure and conventions for the system-level instruction file that governs agent behavior. * [AGENTS.md Index](index-doc.md) — Overview of the cached tool documentation system and how to add new entries. -* [Pi Settings System](settings.md) — Current system configuration: providers, models, packages, subagent overrides, and runtime options. +* [Pi Settings System](settings.md) — pi-era `settings.json` record (archive): providers, models, packages, subagent overrides. ## Change Tracking diff --git a/omp-docs/log.md b/omp-docs/log.md index d8846bd..f844714 100644 --- a/omp-docs/log.md +++ b/omp-docs/log.md @@ -11,6 +11,16 @@ timestamp: 2026-08-28 # Bundle Change Log +## 2026-10-18 — Sibling-vault overlap census; system docs realigned to live ground truth + +Census of `omp-docs/` against `~/Projects/serverAppConfig/serverAppConfigs-docs/` (subagent + live-ssh verification) found four contradicting pairs; all OURS-side stale pages corrected, THEIRS side flagged only (their repo, their PR flow). Ground truth from read-only probes on both boxes 2026-10-18. + +* **Hardware drift corrected** (`system/dankserver.md`, `system/dankclaw.md` rewritten, `AGENTS.md` machine table): RTX 3090 moved Dankserver→Dankclaw 2026-09; dankserver now 2× Radeon AI PRO R9700 (7700X stays — the "board swap" story is false), 246 GiB RAM, no swap; dankclaw 121 GiB RAM + 64 GiB swap. Served models per live units: frank-archon (:7770 dankserver, radiance TP=2 iq4r), frank-dragoon (:7770 dankclaw, halogen NATIVE v2, iGPU), frank-zealot (:7771 dankclaw, llama.cpp PrismML, Ternary-Bonsai-2-27B PQ2_0, 3090). Both kernels 7.0.0-38-generic; dankclaw :7770 needs no auth. +* **Gitea pages corrected** (`tools/gitea/` index + 3 subpages): `gitea-caddy` quadlet retired — fleet Caddy fronts the domain; data tree is `/home/dank/Containers/gitea/{data,postgres,env}` (2026-09-01 standard), `/opt/gitea/` is a do-not-use leftover; LAN IP, live domain, no WAN address. +* **Pi-era pages demarcated as archive** (`pi/index.md`, `core/index.md` banners; `core/index.md` said settings.md was "Current"): `frank-default-small/large` endpoints, role tables, and 3090/4070 hardware rows now read as pi-era records. `tools/llama-cpp/index.md` fleet note modernized to the one remaining llama.cpp endpoint (zealot :7771). +* **Their-side staleness flagged, NOT edited** (for operator clarification): `Agent/OMP Harness.md` still says thresholdPercent 70 — live config is **95** (`agent/config.yml:84`); `index.md:18` says Dankserver Ubuntu 24.04 vs their own specs page 26.04; `Dankclaw/Stack.md` "current mapping (2026-09-03)" predates the ACTIVE dragoon/zealot runbooks it links beside; `index.md:548` links the superseded pi-era KB at `~/.pi/agent/docs/`. +* Consistent duplicates (no action): niri/noctalia desktop pages, Caddy reference. Divergence clarified: their "composer" = OpenWebUI chat box; ours = omp composer shape — unrelated subjects. + ## 2026-10-18 — Status line docs truth audit (full-source re-verification) Exhaustive claim-by-claim re-audit of [OMP Status Line Customization](/pi/statusline.md) against the minified `dist/cli.js` bundle plus a live screenshot matrix (band × {off, percentage, embedded}, claude × off). Page carries an **Audit log** section; four first-pass claims were false and are corrected (see there): claude's rule is *not* the context meter (meter is `box`/`band` only; the "red rule" was the session-accent filler), the "Tern-only" composer-bar claim was bogus (the readout is `composer.tokenRate`, default off), `segmentOptions` are **not** gated to `preset: custom` (only the segment arrays are), and the `mode` segment's states are Plan/Prewalk/Goal/Vibe/Loop (no yolo). Page expanded with: the 7-preset defaults table, per-shape `statusAttachment`/`bottomBar` model (8 built-ins + plugin shape registry), `contextLine` per-value behavior, the 27-segment catalog with triggers/options, `segmentOptions` schema, and the full `statusLine.*`/`composer.*` knob registry. The bundle's own "(box composer only)" knob description for `contextLine` is upstream-wrong — band honors it. diff --git a/omp-docs/pi/index.md b/omp-docs/pi/index.md index 9d40d9f..a444c85 100644 --- a/omp-docs/pi/index.md +++ b/omp-docs/pi/index.md @@ -1,8 +1,12 @@ # Pi Configuration -Documentation for the pi coding agent installation on ](../system/index.md). -Everything here is configured locally on the workstation; the LLM providers are the -two llama.cpp servers (Dankserver, Dankclaw). +> **Archive note (2026-10-18).** Most pages in this directory document the retired +> **pi** harness (settings.json / models.json, `frank-default-*` endpoints, verified +> 2026-08-28). The live harness is **omp** — its config is `agent/config.yml` + +> `agent/models.yml` in this repo, the current fleet endpoints are on +> [System hosts](/system/index.md), and omp-specific knowledge lands in pages like +> [OMP Status Line Customization](/pi/statusline.md) below. Read pi pages as +> historical records, not current state. ## Configuration Files diff --git a/omp-docs/system/dankclaw.md b/omp-docs/system/dankclaw.md index 91e9f69..5601937 100644 --- a/omp-docs/system/dankclaw.md +++ b/omp-docs/system/dankclaw.md @@ -1,83 +1,79 @@ --- type: reference title: Dankclaw -description: Secondary inference server at 192.168.0.143. Runs llama.cpp (frank-default-large). +description: Inference and services box at 192.168.0.143 — frank-dragoon (halogen-flash-server, Strix Halo iGPU, :7770) and frank-zealot (llama.cpp on the RTX 3090, :7771), plus Gitea/Caddy/OpenWebUI services. tags: - network - llamacpp - inference - server - comfyui - - unverified generated: by: chief-designer/agent at: 2026-08-26T00:00:00Z -verified: 2026-08-28 +verified: 2026-10-18 --- # Dankclaw -Secondary llama.cpp inference server for the Frank Program. Serves larger models used by planner, worker, reviewer, oracle, and context-builder subagents. +Strix Halo mini-PC carrying the fleet's secondary models and most of the +service stack (Gitea, Caddy, OpenWebUI, SearXNG). Two GPU-class devices: the +Radeon 8060S iGPU with 119 GiB unified memory, and the RTX 3090 moved over +from Dankserver in September 2026. ## Connection Details | Property | Value | |----------|-------| | **Hostname** | dankclaw | -| **IP Address** | 192.168.0.143 | -| **Port** | 7770 | -| **Base URL** | `http://192.168.0.143:7770/v1` | -| **API** | OpenAI-compatible completions | -| **Authentication** | API key configured | +| **IP Address** | 192.168.0.143 (LAN) | +| **Auth** | none required on :7770 (verified 2026-10-18) | -## Models +## Inference Services -| Model ID | Context Window | Reasoning | Input Types | -|----------|---------------|-----------|-------------| -| `frank-default-large` | 262,144 tokens | Yes | Text, *Image* (unverified) | +| Model ID | Unit | Endpoint | Engine / weights | +|----------|------|----------|------------------| +| `frank-dragoon` | `frank-dragoon.service` (root) | `:7770` | halogen-flash-server container — Quat3rnion NATIVE v2 abliterated Qwen3.8-Flash-Next, MTP spec decode, 2 slots over ONE 200,704-position pool, vision ON, **Strix Halo iGPU** (unified memory) | +| `frank-zealot` | `frank-zealot.service` (root) | `:7771` | llama.cpp (PrismML fork, build 10754) — Ternary-Bonsai-2-27B PQ2_0 GGUF (qwen35 hybrid), 2×200,704 slots, q8_0 K+V, mmproj vision, **RTX 3090** | -## Services - -### llama.cpp - -| Property | Value | -|----------|-------| -| **Port** | 7770 | -| **Models** | `frank-default-large` | - -## Hardware - -| Property | Value | -|----------|-------| -| **CPU** | AMD Ryzen AI MAX+ 395 (16C/16T, Strix Halo) | -| **GPU** | Radeon 8060S integrated (gfx1151, amdgpu) | -| **RAM** | 119 GiB | -| **Storage** | Kingston SNV3S1000G NVMe (931.5 GB), ~676 GB free | -| **OS** | Ubuntu 26.04 LTS, kernel 7.0.0-30-generic | -| **ROCm** | 7.2.4 (driver: 7.0.0-30-generic) | -| **Python** | 3.14.4 (system) | - -## Usage - -Dankclaw handles complex tasks delegated by subagent overrides. The `frank-default-large` model provides extended context. *Multimodal input support is unverified.* +Harness-side context windows (`agent/models.yml`): dragoon 155,648, +zealot 200,704 per slot. The models.yml display labels "(dankclaw-gpu)" / +"(dankclaw-3090)" predate naming cleanup; the hardware column above is +current. Subagent roles `scout`, `sonic`, `designer`, `librarian`, +`security-reviewer` route to frank-zealot; `reviewer`/`task` run on +frank-archon (Dankserver). ```bash -# Health check -curl http://192.168.0.143:7770/health - -# Test with large model -curl http://192.168.0.143:7770/v1/chat/completions \ - -H "Content-Type: application/json" \ - -H "Authorization: Bearer " \ - -d '{"model":"frank-default-large","messages":[{"role":"user","content":"Hello"}],"max_tokens":32}' +curl http://192.168.0.143:7770/v1/models # dragoon +curl http://192.168.0.143:7771/v1/models # zealot ``` -## Related Knowledge Bases (sibling project on the workstation) +## Hardware (verified live 2026-10-18) -- **serverAppConfigs** — `/home/dank/Projects/serverAppConfigs/` — Podman deployment config for this host (AI, search, development, observability stack, incl. the Hermes compose service) **plus the LLM inference fleet** (frank-default-large, CIRU ROCmFPX llama.cpp, :7770). The former `vllmScripts` repo merged into it on 2026-08-22 (history preserved). Start at `/home/dank/Projects/serverAppConfigs/docs/index.md` (see `dankclaw/compose.yaml` + `docs/Dankclaw/`; LLM fleet at `docs/LLM/index.md`, deploy runbook at `docs/LLM/deployment.md`). +| Property | Value | +|----------|-------| +| **CPU/APU** | AMD Ryzen AI MAX+ 395 (Strix Halo, Radeon 8060S, gfx1151) | +| **dGPU** | NVIDIA GeForce RTX 3090 (moved from Dankserver 2026-09) | +| **RAM** | 121 GiB (mostly usable as GPU unified memory) | +| **Swap** | 64 GiB | +| **OS** | Ubuntu 26.04 LTS, kernel 7.0.0-38-generic | + +The pre-rename story (`frank-default-large` on ROCmFPX llama.cpp/CIRU, +262,144-token context) was superseded by the 2026-10-08/09 model-id rename +and the dragoon/zealot engine swaps; the 119→121 GiB RAM figure follows the +live `free` reading. + +## Related Knowledge Bases (sibling project) + +- **serverAppConfigs** — deployment repo + vault, on this workstation at + `~/Projects/serverAppConfig/` (docs vault: `~/Projects/serverAppConfig/serverAppConfigs-docs/`). + Live runbooks: `LLM/frank-dragoon-flash-server-v2-native.md` and + `LLM/frank-zealot-llama-prism-bonsai2-pq20.md` — deploy-side source of + truth for engines, flags, and restart procedures. Service stack docs under + `Dankclaw/`, `Infrastructure/`. ## See Also -- [[models|models]] — Provider definitions -- [[dankserver|dankserver]] — Primary server +- [[dankserver|dankserver]] — the main-model box (frank-archon) +- [/tools/gitea/index.md](/tools/gitea/index.md) — Gitea stack on this host - [[network|network]] — Network topology diff --git a/omp-docs/system/dankserver.md b/omp-docs/system/dankserver.md index 9c62697..714a617 100644 --- a/omp-docs/system/dankserver.md +++ b/omp-docs/system/dankserver.md @@ -1,22 +1,24 @@ --- type: reference title: Dankserver -description: Primary llama.cpp inference server at 192.168.0.235:7770, serving frank-default-small with 163,840-token context window. +description: Radiance inference server at 192.168.0.235:7770, serving frank-archon (Qwen3.8-Flash-Next iq4r, 2x R9700 TP=2, 200,000-token context). tags: - network - llamacpp - inference - server - - unverified generated: by: chief-designer/agent -verified: 2026-08-28 +verified: 2026-10-18 status: stable --- # Dankserver -Primary llama.cpp inference server for the Frank Program. Serves `frank-default-small` — a fast, capable model with image support. +Primary inference server for the Frank Program. Serves `frank-archon`, the +main agent model, from a pair of Radeon AI PRO R9700s (tensor-parallel 2). +The RTX 3090 that used to live here was removed 2026-09-15 and now runs on +Dankclaw. ## Connection Details @@ -28,19 +30,24 @@ Primary llama.cpp inference server for the Frank Program. Serves `frank-default- | **Base URL** | `http://192.168.0.235:7770/v1` | | **API** | OpenAI-compatible completions | | **Authentication** | None | +| **Systemd unit** | `frank-archon.service` (root) | ## Model | Property | Value | |----------|-------| -| **Model ID** | `frank-default-small` | -| **Context Window** | 163,840 tokens | -| **Reasoning** | Supported | -| **Input Types** | Text, *Image* (unverified) | +| **Model ID** | `frank-archon` (display name `frank-archon`) | +| **Weights** | Qwen3.8-Flash-Next, radiance iq4r (publisher build) | +| **Engine** | radiance, tensor-parallel 2 across both R9700s | +| **Context Window** | 200,000 tokens (harness `models.yml`; served pool may differ — see runbook) | + +`frank-medium` (former dual-GPU mid tier) is masked and retired. ## Usage -Dankserver serves the small subagent model `frank-default-small`. Small subagent roles route here unless a role override picks a different model. +Dankserver carries the main-session model. Subagent role overrides in +`agent/models.yml` route here for `task` and `reviewer`; scout/sonic/designer +route to Dankclaw. ```bash # Health check @@ -49,27 +56,34 @@ curl http://192.168.0.235:7770/health # Quick test curl http://192.168.0.235:7770/v1/chat/completions \ -H "Content-Type: application/json" \ - -d '{"model":"frank-default-small","messages":[{"role":"user","content":"Hello"}],"max_tokens":32}' + -d '{"model":"frank-archon","messages":[{"role":"user","content":"Hello"}],"max_tokens":32}' ``` -## Hardware +## Hardware (verified live 2026-10-18) | Property | Value | |----------|-------| -| **CPU** | AMD Ryzen 7 7700X (8C/16T, Raphael) | -| **GPU** | NVIDIA GeForce RTX 3090 (24 GiB VRAM, EVGA) | -| **RAM** | 60 GiB | -| **Swap** | 64 GiB (/swapfile) | -| **Storage** | Kingston SNV3S1000G NVMe (931.5 GB) + md0 RAID (6×18.2T Toshiba, /mnt/entropy, 91T) | -| **OS** | Ubuntu 26.04 LTS, kernel 7.0.0-30-generic | -| **NVIDIA Driver** | 595.84 | +| **CPU** | AMD Ryzen 7 7700X (8C/16T, Raphael iGPU on board) | +| **GPU** | 2× AMD Radeon AI PRO R9700 (Navi 48, 32 GiB each) | +| **RAM** | 246 GiB | +| **Swap** | effectively none (~0.1 GiB) — the 64 GiB swapfile is on Dankclaw, not here | +| **Storage** | 7× 18.2 TB HDD + 1.8 TB NVMe (layout owned by the deploy repo) | +| **OS** | Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic | -## Related Knowledge Bases (sibling project on the workstation) +The old page (verified 2026-08-28) listed an RTX 3090, 60 GiB RAM, and a +64 GiB swapfile here; all three were superseded by the 2026-09 hardware swap. -- **serverAppConfigs** — `/home/dank/Projects/serverAppConfigs/` — Podman deployment config for this host (media and library stack: RomM, Copyparty, Calibre-Web) **plus the LLM inference fleet** (frank-default-small, llama.cpp, :7770). The former `vllmScripts` repo merged into it on 2026-08-22 (history preserved). Start at `/home/dank/Projects/serverAppConfigs/docs/index.md` (see `dankserver/compose.yaml` + `docs/Dankserver/`; LLM fleet at `docs/LLM/index.md`, deploy runbook at `docs/LLM/deployment.md`). +## Related Knowledge Bases (sibling project) + +- **serverAppConfigs** — deployment repo + vault, on this workstation at + `~/Projects/serverAppConfig/` (docs vault: `~/Projects/serverAppConfig/serverAppConfigs-docs/`). + Podman/quadlet deploy config for both servers plus the LLM inference fleet. + The live frank-archon runbook (engine flags, KV pool sizing, restart + procedures) is `LLM/frank-archon-radiance-qwen38-iq4r.md` in that vault — + it, not this page, is the deploy-side source of truth. ## See Also -- [[models|models]] — Provider definitions -- [[dankclaw|dankclaw]] — Secondary server +- [[dankclaw|dankclaw]] — the other inference box (dragoon + zealot) - [[network|network]] — Network topology +- [/pi/statusline.md](/pi/statusline.md) — where these models surface in the TUI diff --git a/omp-docs/system/index.md b/omp-docs/system/index.md index 72f0bab..695eabd 100644 --- a/omp-docs/system/index.md +++ b/omp-docs/system/index.md @@ -11,8 +11,8 @@ Dankclaw are the inference servers it talks to. ## Network Systems -- [Dankserver](/system/dankserver.md) — Primary llama.cpp inference server at 192.168.0.235:7770, serving `frank-default-small` (163,840-token context). AMD Ryzen 7 7700X, RTX 3090, Ubuntu 26.04. -- [Dankclaw](/system/dankclaw.md) — Secondary inference server at 192.168.0.143:7770, serving `frank-default-large` (262,144-token context). AMD Ryzen AI MAX+ 395 (Strix Halo), Ubuntu 26.04, ROCm. +- [Dankserver](/system/dankserver.md) — Main-model inference server at 192.168.0.235:7770, serving `frank-archon` (radiance Qwen3.8-Flash-Next, 200K ctx). AMD Ryzen 7 7700X, 2× Radeon AI PRO R9700, Ubuntu 26.04. +- [Dankclaw](/system/dankclaw.md) — Secondary inference + services box at 192.168.0.143: `frank-dragoon` (:7770, halogen-flash-server on the Strix Halo iGPU) and `frank-zealot` (:7771, llama.cpp on the RTX 3090). AMD Ryzen AI MAX+ 395, Ubuntu 26.04. ## Infrastructure Diagram @@ -26,8 +26,8 @@ graph TB end subgraph Network[192.168.0.0/24] - E[dankserver
192.168.0.235:7770
frank-default-small] - F[dankclaw
192.168.0.143:7770
frank-default-large] + E[dankserver
192.168.0.235:7770
frank-archon] + F[dankclaw
192.168.0.143:7770 dragoon
:7771 zealot] end D --> E @@ -42,7 +42,7 @@ graph TB The fleet has one sibling OKF knowledge base outside this bundle. Read it for deployment and inference details. This bundle links to it from the server pages. -* **serverAppConfigs** — `/home/dank/Projects/serverAppConfigs/` (index: `/home/dank/Projects/serverAppConfigs/docs/index.md`). Podman deployment configuration for both servers: compose files, Caddy reverse proxy, deploy scripts, bats tests, and the Obsidian-vault service docs (Dankclaw, Dankserver, Architecture, Infrastructure) — **plus the LLM inference fleet** (merged from the former `vllmScripts` repo on 2026-08-22, history preserved): llama.cpp on Dankserver (:7770, `frank-default-small`) and CIRU ROCmFPX llama.cpp on Dankclaw (:7770, `frank-default-large`). LLM fleet docs: `docs/LLM/index.md`; deploy runbook: `docs/LLM/deployment.md`. +* **serverAppConfigs** — deploy repo + Obsidian vault, on this workstation at `~/Projects/serverAppConfig/` with docs in `~/Projects/serverAppConfig/serverAppConfigs-docs/` (root `index.md` at the vault top — the old `docs/` prefix is gone). Podman deployment configuration for both servers: compose/quadlet files, Caddy reverse proxy, deploy scripts, bats tests, and the vault service docs (Dankclaw, Dankserver, Architecture, Infrastructure) — **plus the LLM inference fleet** (merged from the former `vllmScripts` repo on 2026-08-22, history preserved): radiance frank-archon on Dankserver (:7770), halogen frank-dragoon (:7770) and llama.cpp frank-zealot (:7771) on Dankclaw. The vault's `LLM/` runbooks are the deploy-side source of truth; this bundle documents the agent/harness side. ## Related diff --git a/omp-docs/tools/gitea/architecture.md b/omp-docs/tools/gitea/architecture.md index e78b1d0..a7f5678 100644 --- a/omp-docs/tools/gitea/architecture.md +++ b/omp-docs/tools/gitea/architecture.md @@ -5,13 +5,12 @@ description: Gitea container architecture, network topology, and Caddy reverse p tags: - gitea - architecture - - unverified -verified: 2026-08-28 +verified: 2026-10-18 --- # Gitea Architecture -Three quadlet-managed containers on a shared private Podman network (rootless, user `dank`). Gitea connects to PostgreSQL via network DNS. Caddy proxies HTTP/S to Gitea. +Two quadlet-managed containers (Gitea, PostgreSQL) on a shared private Podman network (rootless, user `dank`). Gitea connects to PostgreSQL via network DNS. The fleet Caddy (separate stack, see [/caddy/index.md](/caddy/index.md)) proxies HTTP/S to Gitea — the old dedicated `gitea-caddy` container is retired. ## Network Topology @@ -63,10 +62,10 @@ Key environment variables: - `DATABASE_HOST=gitea-postgres` (network DNS) - `DATABASE_NAME=gitea` - `DATABASE_USER=gitea` -- `DATABASE_PASSWD` from `/opt/gitea/.env` (mode 0600) +- `DATABASE_PASSWD` from `/home/dank/Containers/gitea/env` (mode 0600) - `USER_UID=1000`, `USER_GID=1000` -Gitea writes `/data/gitea/conf/app.ini` on first start (host: `/opt/gitea/data/gitea-gitea/gitea/conf/app.ini`). The `[database] HOST` and `PASSWD` lines in app.ini override the env vars. When you rename the database container, edit the `HOST` line in app.ini as well. +Gitea writes `/data/gitea/conf/app.ini` on first start (host: `/home/dank/Containers/gitea/data/gitea/conf/app.ini`). The `[database] HOST` and `PASSWD` lines in app.ini override the env vars. When you rename the database container, edit the `HOST` line in app.ini as well. ## Ports diff --git a/omp-docs/tools/gitea/data-persistence.md b/omp-docs/tools/gitea/data-persistence.md index ec36c83..07261a6 100644 --- a/omp-docs/tools/gitea/data-persistence.md +++ b/omp-docs/tools/gitea/data-persistence.md @@ -1,24 +1,23 @@ --- type: reference title: Gitea Data Persistence -description: Gitea data persistence, volume mounts, ownership, and backup strategy on dankclaw. +description: Gitea data persistence, volume mounts, ownership, and backup strategy on dankclaw (Containers/gitea layout). tags: - gitea - data - - unverified -verified: 2026-08-28 +verified: 2026-10-18 --- # Gitea Data Persistence -All data lives on host bind mounts under `/opt/gitea/data/`. Containers are ephemeral. Quadlet stops remove the container (`podman run --rm --replace`). The next start recreates it. Data survives. +All data lives on host bind mounts under `/home/dank/Containers/gitea/` (fleet storage standard since 2026-09-01; quadlet units re-pointed from the old `/opt/gitea/data/` tree, which lingers on disk as a leftover — never write to it). Containers are ephemeral. Quadlet stops remove the container (`podman run --rm --replace`). The next start recreates it. Data survives. ## Volume Layout | Host Path | Container Mount | Contents | |---|---|---| -| `/opt/gitea/data/gitea-gitea/` | `/data` | Git repositories, avatars, attachments, LFS objects, `app.ini` | -| `/opt/gitea/data/gitea-postgres/` | `/var/lib/postgresql/data` | PostgreSQL WAL, tables, indexes | +| `/home/dank/Containers/gitea/data/` | `/data` (gitea-server) | Git repositories, avatars, attachments, LFS objects, `app.ini` | +| `/home/dank/Containers/gitea/postgres/` | `/var/lib/postgresql/data` (gitea-postgres) | PostgreSQL WAL, tables, indexes | ## Ownership @@ -37,7 +36,7 @@ podman exec --user 1000 gitea-server sed -i 's/old/new/' /data/gitea/conf/app.in Tar the entire data directory. This captures Gitea repos and PostgreSQL data in one archive. ``` -tar czf gitea-backup-$(date +%F).tar.gz -C /opt/gitea data/ +tar czf gitea-backup-$(date +%F).tar.gz -C /home/dank/Containers/gitea data/ postgres/ ``` ### PostgreSQL-only backup @@ -48,17 +47,17 @@ Use `pg_dump` for a portable SQL dump. Useful for restoring to a different Postg podman exec -e PGPASSWORD="$GITEA_DB_PASSWORD" gitea-postgres pg_dump -U gitea gitea > gitea-db-$(date +%F).sql ``` -Set `PGPASSWORD` from `/opt/gitea/.env` (mode 0600). +Set `PGPASSWORD` from `/home/dank/Containers/gitea/env` (mode 0600, `GITEA_DB_PASSWORD`). ### Restore procedure 1. Stop the stack: `systemctl --user stop gitea-server gitea-postgres` -2. Restore data: `tar xzf backup.tar.gz -C /opt/gitea/` +2. Restore data: `tar xzf backup.tar.gz -C /home/dank/Containers/gitea/` 3. Start the stack: `systemctl --user start gitea-postgres gitea-server` ## Data Growth -- Git repositories grow with each commit and push. Monitor with `du -sh /opt/gitea/data/gitea-gitea/git/repositories/`. +- Git repositories grow with each commit and push. Monitor with `du -sh /home/dank/Containers/gitea/data/git/repositories/`. - PostgreSQL WAL files accumulate. VACUUM via `podman exec gitea-postgres psql -U gitea -c "VACUUM;"`. - Gitea's log files grow with usage. diff --git a/omp-docs/tools/gitea/index.md b/omp-docs/tools/gitea/index.md index bd640fc..0368c46 100644 --- a/omp-docs/tools/gitea/index.md +++ b/omp-docs/tools/gitea/index.md @@ -1,11 +1,11 @@ # Gitea on dankclaw -Private Git hosting on dankclaw. Three quadlet-managed containers in the rootless podman session of user `dank`: Gitea, PostgreSQL, Caddy. +Private Git hosting on dankclaw. Two quadlet-managed containers in the rootless podman session of user `dank`: Gitea and PostgreSQL, sharing a dedicated network unit. The former `gitea-caddy` container is **retired** — the canonical fleet Caddy (`caddy.service`, see [/caddy/index.md](/caddy/index.md)) fronts `gitea.franksdank.cloud`; do not recreate the retired unit. -**Host:** dankclaw (71.227.227.172) -**Config:** `~/.config/containers/systemd/gitea-{postgres,server,caddy}.container` + `gitea.network` -**Local access:** `http://dankclaw:3000` -**Domain:** `https://gitea.franksdank.cloud` (DNS pending) +**Host:** dankclaw (192.168.0.143 LAN) +**Config:** `~/.config/containers/systemd/gitea-{postgres,server}.container` + `gitea.network` +**Local access:** `http://dankclaw:3000` (verified 2026-10-18) +**Domain:** `https://gitea.franksdank.cloud` (live; served by fleet Caddy, DNS-01 TLS) ## Architecture @@ -13,7 +13,7 @@ Private Git hosting on dankclaw. Three quadlet-managed containers in the rootles |---|---|---|---| | `gitea-server` | `gitea-server.service` | 3000 (HTTP), 2222 (SSH) | Git web UI, API, SSH daemon | | `gitea-postgres` | `gitea-postgres.service` | 5432 (internal) | Database | -| `gitea-caddy` | `gitea-caddy.service` | 80, 443 | Reverse proxy, auto-TLS | +| (network) | `gitea-network.service` | — | quadlet `gitea.network` bring-up | The containers share the private network `systemd-gitea` (quadlet `gitea.network`, DNS enabled). The automatic `podman` default network has DNS disabled; do not run the stack on it. @@ -23,21 +23,21 @@ All commands run as `dank` on dankclaw. | Action | Command | |---|---| -| Start all | `systemctl --user start gitea-postgres gitea-server gitea-caddy` | -| Stop all | `systemctl --user stop gitea-caddy gitea-server gitea-postgres` | +| Start all | `systemctl --user start gitea-postgres gitea-server` | +| Stop all | `systemctl --user stop gitea-server gitea-postgres` | | Restart Gitea only | `systemctl --user restart gitea-server` | | Follow logs | `podman logs -f gitea-server` or `journalctl --user -u gitea-server -f` | -| Check status | `systemctl --user status gitea-postgres gitea-server gitea-caddy` | +| Check status | `systemctl --user status gitea-postgres gitea-server` | ## Data Persistence -All data lives on host bind mounts under `/opt/gitea/data/`. Containers are ephemeral. Stopping a quadlet unit removes its container; the next start recreates it. Volumes survive. +All data lives on host bind mounts under `/home/dank/Containers/gitea/` (fleet storage standard since 2026-09-01; verified live 2026-10-18). Containers are ephemeral. Stopping a quadlet unit removes its container; the next start recreates it. Volumes survive. The old `/opt/gitea/` tree remains on disk as a leftover — do not use it. -| Volume Path | Container Mount | Contents | -|---|---|---| -| `/opt/gitea/data/gitea-gitea/` | `/data` | Git repositories, app.ini, attachments | -| `/opt/gitea/data/gitea-postgres/` | `/var/lib/postgresql/data` | PostgreSQL data files | -| `/opt/gitea/data/caddy/data/` | `/root/.local/share/caddy` | Caddy configuration, TLS certs | +| Path | Contents | +|---|---| +| `/home/dank/Containers/gitea/data/` | Git repositories, app.ini, attachments | +| `/home/dank/Containers/gitea/postgres/` | PostgreSQL data files | +| `/home/dank/Containers/gitea/env` | EnvironmentFile (mode 0600; `GITEA_DB_PASSWORD`) | See [[data-persistence|data-persistence]] for backup and restore. @@ -49,7 +49,7 @@ See [[management|management]] for boot persistence details and troubleshooting. ## Repo Copies -The quadlet files, Caddyfile, and `.env.example` are tracked in the `serverAppConfigs` repo under `dankclaw/gitea/`. The live password lives only in `/opt/gitea/.env` on the host (mode 0600). +The quadlet files and `.env` templates are tracked in the `serverAppConfigs` deploy repo; the sibling vault page `Infrastructure/Gitea.md` (in `~/Projects/serverAppConfig/serverAppConfigs-docs/`) is the deploy-side source of truth. Secrets live only on the host under `Containers/gitea/` (mode 0600), never in either docs tree. ## See Also diff --git a/omp-docs/tools/gitea/management.md b/omp-docs/tools/gitea/management.md index 5d577b5..3fdb118 100644 --- a/omp-docs/tools/gitea/management.md +++ b/omp-docs/tools/gitea/management.md @@ -6,8 +6,7 @@ tags: - gitea - management - quadlet - - unverified -verified: 2026-08-28 +verified: 2026-10-18 --- # Gitea Management @@ -45,8 +44,8 @@ After editing a quadlet file: run `systemctl --user daemon-reload`, then restart | File | Path | |---|---| | Quadlet units | `~/.config/containers/systemd/gitea-*.container`, `gitea.network` | -| Secrets | `/opt/gitea/.env` (mode 0600, `GITEA_DB_PASSWORD`) | -| Gitea app config | `/opt/gitea/data/gitea-gitea/gitea/conf/app.ini` (container-owned, UID 100999) | +| Secrets | `/home/dank/Containers/gitea/env` (mode 0600, `GITEA_DB_PASSWORD`) — quadlet `EnvironmentFile` | +| Gitea app config | `/home/dank/Containers/gitea/data/gitea/conf/app.ini` (container-owned, UID 100999) | Repo copies: `serverAppConfigs/dankclaw/gitea/` (quadlet files, `.env.example`). Copy edits to the target, then `daemon-reload` + restart. @@ -62,7 +61,7 @@ Gitea handles database migrations automatically on startup. PostgreSQL version b ### Gitea cannot reach the database -Check the `[database] HOST` line in `/opt/gitea/data/gitea-gitea/gitea/conf/app.ini`. It must be `gitea-postgres:5432`. app.ini overrides the `DATABASE_HOST` env var. +Check the `[database] HOST` line in `/home/dank/Containers/gitea/data/gitea/conf/app.ini`. It must be `gitea-postgres:5432`. app.ini overrides the `DATABASE_HOST` env var. Then check name resolution from the container: diff --git a/omp-docs/tools/llama-cpp/index.md b/omp-docs/tools/llama-cpp/index.md index 35e2d99..ca0a4ff 100644 --- a/omp-docs/tools/llama-cpp/index.md +++ b/omp-docs/tools/llama-cpp/index.md @@ -50,7 +50,7 @@ llama-server -hf ggml-org/gemma-3-1b-it-GGUF **Defaults**: Listens on `127.0.0.1:8080`. Single slot (one concurrent request). -> **System note:** On this network the Pi inference hosts do not use the default port. Pi serves `frank-default-small` (dankserver) and `frank-default-large` (dankclaw), each on port `7770`. The local Ornith host runs on port `8080`. See [Pi Models Configuration](../../pi/models.md). +> **System note:** On this network the fleet inference hosts do not use the default port. As of 2026-10 the only llama.cpp endpoint is `frank-zealot` on dankclaw **:7771** (PrismML fork build); `frank-dragoon` (dankclaw :7770, halogen-flash-server) and `frank-archon` (dankserver :7770, radiance) are different engines — see [System hosts](/system/index.md). The pi-era `frank-default-small`/`frank-default-large` llama.cpp pair (each :7770) is retired; [Pi Models Configuration](../../pi/models.md) is a pi-era archive. ---