From 3f4765e352fe0535db6061034cb49bac2e979903 Mon Sep 17 00:00:00 2001 From: chris Date: Sat, 25 Jul 2026 07:30:54 +0000 Subject: [PATCH] chore: update docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md via opax-mcp --- docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md | 220 +++++----------------------- 1 file changed, 40 insertions(+), 180 deletions(-) diff --git a/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md b/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md index f37c22d..c8eba90 100644 --- a/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md +++ b/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md @@ -1,196 +1,56 @@ -# HANDOFF-LOKAL-LLM-GITEA-MCP.md -# EGEN HANDOFF – UFRAVIKELIG STYRINGSDOKUMENT -# GJELDER FRA NÅ OG FREM TIL 100 % FERDIGSTILLELSE +# HANDOFF — OPPDATERT 2026-07-25 09:30 CEST -## 0. STATUS OG KOMMANDO -Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM". +## KRITISK NESTE STEG — START HER ---- +### gitea-chat-bridge — BLOKKERT, krever Procfile -## FREMDRIFT – OPPDATERT 2026-07-25 09:08 CEST +Rotårsak: Cloud Run leter etter `app`-objekt, vi eksporterer `handler`. -### ✅ FASE 0–5 — FERDIG -### ✅ FASE 6 – CPU-optimalisering — FERDIG -### ✅ FASE 6-TILLEGG – Boot-warming — FERDIG -### ✅ DNS – NS-bytte utført — FERDIG 2026-07-21 23:44 CEST -### ✅ OPAX-MCP – GITEA_URL permanent + deploy — FERDIG 2026-07-21 23:53 CEST -### ✅ SMOKE-TEST – Alle 37 tools — FERDIG 2026-07-22 00:25 CEST -### ✅ FASE 6.5 – VM-oppgradering + modellarkitektur — VERIFISERT 2026-07-22 -### ✅ DEV-SNAP UAVHENGIGHET – Verifisert 2026-07-22 19:30 CEST -### ✅ OSVauco arbeidskopi klonet til Gitea-VM — FERDIG 2026-07-22 19:25 CEST -### ✅ git.vauco.no HTTPS — FERDIG 2026-07-25 -### ✅ GITEA_TOKEN rotert — FERDIG 2026-07-25 -### ✅ Google OAuth2 innlogging Gitea — FERDIG 2026-07-25 -### ✅ SIKKERHETSHERDING – Uautoriserte brukere ryddet — FERDIG 2026-07-25 -### ✅ VM Access Scopes – cloud-platform satt — FERDIG 2026-07-25 -### ✅ GPG-SIGNERING – Commits verified — FERDIG 2026-07-25 08:42 CEST -### ✅ gitea-admin-password – Lagret i Secret Manager — FERDIG 2026-07-25 -### ✅ automation@vauco.no alias opprettet — FERDIG 2026-07-25 08:45 CEST -### ✅ GITEA → GOOGLE CHAT BRIDGE — FERDIG 2026-07-25 09:08 CEST -### 🟡 FASE 7 – 14B-validering utført, arkitektur justeres — PÅGÅR -### ⏳ automation-bruker i Gitea — NESTE -### ⏳ FASE 8 – Backup / snapshot-strategi — PLANLAGT +Filer klare i `~/OSVauco/gitea-chat-bridge/`: +- `main.py` — Google Chat-format (uten Slack-syntax) +- `requirements.txt` — functions-framework==3.*, requests==2.* +- `Procfile` — MÅ OPPRETTES: `web: functions-framework --target=handler --port=8080` ---- +```bash +# Fullfør deploy: +cat > ~/OSVauco/gitea-chat-bridge/Procfile << 'EOF' +web: functions-framework --target=handler --port=8080 +EOF -## SIKKERHETSHERDING (2026-07-25) -- ✅ Offentlig brukerregistrering i Gitea deaktivert -- ✅ To uautoriserte brukere (`dev433f2c`, `dev1ba0ac`) deaktivert og tokens slettet -- ✅ Eksponert GITEA_TOKEN rotert — nytt token i Secret Manager, opax-mcp redeployet -- ✅ VM Access Scopes oppdatert til `cloud-platform` -- ✅ GPG-nøkkel (46209B07B3352AE9) lagt til i Gitea, git konfigurert for auto-signering -- ✅ gitea-admin-password lagret i Secret Manager (secret: `gitea-admin-password`) -- ✅ automation@vauco.no alias opprettet → videresender til chris.christiansen@vauco.no +WEBHOOK=$(gcloud secrets versions access latest --secret=CHAT_WEBHOOK_URL --project=propane-will-491900-m5) +cd ~/OSVauco/gitea-chat-bridge && \ +gcloud run deploy gitea-chat-bridge \ + --source . --region us-central1 \ + --project propane-will-491900-m5 \ + --platform managed --allow-unauthenticated \ + --set-env-vars "CHAT_WEBHOOK_URL=$WEBHOOK" --quiet ---- +# Test +curl -s -X POST https://gitea-chat-bridge-357036551735.us-central1.run.app \ + -H "Content-Type: application/json" \ + -d '{"repository":{"full_name":"chris/OSVauco"},"pusher":{"login":"chris"},"ref":"refs/heads/main","commits":[{"id":"abc1234","message":"test","url":"https://git.vauco.no"}]}' -## GITEA → GOOGLE CHAT BRIDGE (2026-07-25 09:08) - -### Arkitektur -``` -Gitea push/create/release - → Gitea webhook (hook ID: 9) - → Cloud Run: gitea-chat-bridge - https://gitea-chat-bridge-357036551735.europe-west1.run.app - → Google Chat (CHAT_WEBHOOK_URL i Secret Manager) +rm -rf ~/OSVauco/gitea-chat-bridge ``` -### Ressurser -- **Cloud Run service:** `gitea-chat-bridge` (europe-west1) -- **Gitea hook ID:** 9 -- **Secret:** `CHAT_WEBHOOK_URL` (versjon 2, korrekt URL) -- **Events:** push, create, release - --- -## DEV-SNAP UAVHENGIGHET – VERIFISERT 2026-07-22 +## STATUS 2026-07-25 09:30 -Alle 6 tester grønne: +✅ FASE 0-6.5, DNS, OPAX-MCP, smoke-test, VM, HTTPS, OAuth2, sikkerhet, GPG, secrets +✅ automation@vauco.no alias → chris.christiansen@vauco.no +🔴 gitea-chat-bridge — deployet men krasjer (mangler Procfile) +⏳ automation-bruker i Gitea — NESTE etter bridge +⏳ Fase 8 snapshot-backup -| Test | Status | Bevis | -|------|--------|-------| -| A — Gitea API | ✅ | list_commits svarer fra localhost:3000 | -| B — Repo-innhold | ✅ | Klon hentet 3545 objekter direkte | -| C — OPAX health | ✅ | opax_mcp_status: live | -| D — MCP tools/list | ✅ | 37 verktøy live | -| E — Git-sync | ✅ | nothing to commit, working tree clean | -| F — Ollama | ✅ | 5 modeller bekreftet | - -**Viktig:** Bruk alltid `localhost:3000` fra Gitea-VM, aldri ekstern IP mot seg selv. - ---- - -## git.vauco.no – FULLFØRT 2026-07-25 -- ✅ DNS, nginx, certbot, HTTPS, Google OAuth2 — alt oppe - ---- - -### Rollen "automation" og sikkerhets-sentinel for Gitea - -Status per 2026-07-25: -- Gitea kjører på https://git.vauco.no med HTTPS. -- Offentlig registrering stengt. -- Ingen av stegene under er gjennomført ennå – de beskriver målbildet. - -#### 1. Teknisk Gitea-bruker: `automation` -- Opprett Gitea-bruker `automation` (ikke admin) -- Gi tilgang kun til OSVauco-repo -- Generer token, lagre i Secret Manager som `gitea-automation-token` -- Konfigurer Cloud Run / OPAX MCP til å bruke dette tokenet -- Konfigurer git på Gitea-VM til å bruke `automation` for push/pull - -#### 2. Sentinel-rolle -- Lokal LLM periodisk sikkerhetssjekk av Gitea -- Rapport i `protocols/security/SENTINEL-REPORT-YYYY-MM-DD.md` -- Kun lesetilgang, ingen mutasjoner uten godkjenning - -#### 3. Roller -- `chris`: admin, godkjenner -- `automation`: tekniske operasjoner via API -- `sentinel`: leser og rapporterer - ---- - -## FASE 6.5 — LOKAL LLM-STACK - -### Modeller per 2026-07-25 -- `gemma3:4b` — frontmodell -- `qwen2.5:3b` — tool calling -- `qwen2.5:7b` — mellomlag -- `qwen2.5-coder:7b` — kode -- `qwen2.5-coder:14b` — batch/asynkron - ---- - -## OPAX-MCP KONFIGURASJON – LÅST - -| Variabel | Verdi | -|---|---| -| `GITEA_URL` | `http://34.67.252.59:3000` | -| `OLLAMA_BASE_URL` | `http://34.67.252.59:11434` | -| `EMMA_MODEL` | `gemma3:4b` | -| `EMMA_FAST_MODEL` | `gemma3:4b` | -| `EMMA_LIGHT_MODEL` | `qwen2.5:3b` | - ---- - -## DNS – FULLFØRT - -| Record | Type | Verdi | -|---|---|---| -| `vauco.no.` | A | `34.98.77.173` | -| `git.vauco.no.` | A | `34.67.252.59` | -| MX/SPF/DKIM/DMARC | TXT/MX | Google Workspace komplett | - ---- - -## ÅPNE PUNKTER -1. `automation`-bruker opprett i Gitea — **NESTE** -2. Sentinel-implementering (lokal LLM periodisk sjekk) -3. Test `qwen2.5-coder:7b` på konkret kode-oppgave -4. Emma derivat-dokument (tilsvarende GEMINI.md) -5. Fase 8: Snapshot-policy aktiveres -6. `opax.vauco.no` domain mapping (Cloud Run → custom domain) +## RESSURSER +- Bridge URL: https://gitea-chat-bridge-357036551735.us-central1.run.app +- Gitea hook ID: 9 +- Secret: CHAT_WEBHOOK_URL (v2), gitea-admin-password +- VM: 34.67.252.59 (Gitea + Ollama, alltid på) +- OPAX MCP: us-central1 ## FASTE SANNHETER -- Gitea er source of truth -- Lokale modeller er hovedretning -- Gitea-VM (`34.67.252.59`) er permanent målmaskin — alltid-på, STANDARD -- Bruk `localhost:3000` fra Gitea-VM, aldri ekstern IP mot seg selv -- CPU er primær flaskehals for tyngre lokale modeller -- `gitea-admin-password` finnes i Secret Manager -- `CHAT_WEBHOOK_URL` finnes i Secret Manager (versjon 2) - -## DEFINITION OF DONE -- ✅ Lokale modeller lever -- ✅ OPAX-MCP korrekt konfigurert -- ✅ Gitea read/write tools grønne -- ✅ Smoke-test 37 tools -- ✅ VM oppgradert e2-highmem-4 -- ✅ git.vauco.no HTTPS -- ✅ Google OAuth2 -- ✅ GITEA_TOKEN rotert -- ✅ Sikkerhetsherding -- ✅ VM Access Scopes -- ✅ GPG-signering verified -- ✅ gitea-admin-password i Secret Manager -- ✅ automation@vauco.no alias -- ✅ Gitea → Google Chat bridge live -- ⏳ automation-bruker — neste -- ⏳ Fase 7: lokal hjerne verifisert -- ⏳ Fase 8: snapshot-backup - -## OPPDATERINGSLOGG -| Dato | Handling | -|---|---| -| 2026-07-21 | FASE 4–6 fullført | -| 2026-07-21 23:44 | DNS NS-bytte | -| 2026-07-21 23:53 | OPAX-MCP deployed | -| 2026-07-22 00:25 | Smoke-test grønn | -| 2026-07-22 19:25 | OSVauco klonet til VM | -| 2026-07-22 19:30 | Dev-snap uavhengighet bekreftet | -| 2026-07-23 22:14 | Handoff oppdatert | -| 2026-07-25 08:15 | HTTPS, token, OAuth2, sikkerhet, VM scopes ferdig | -| 2026-07-25 08:42 | GPG-signering ferdig, gitea-admin-password i Secret Manager | -| 2026-07-25 08:45 | automation@vauco.no alias opprettet | -| 2026-07-25 09:08 | Gitea→Google Chat bridge deployet (gitea-chat-bridge, hook ID 9) | +- Gitea = source of truth | localhost:3000 fra VM +- Lokale modeller = hovedretning +- gitea-admin-password og CHAT_WEBHOOK_URL i Secret Manager