OSVauco/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md
chris 60a1206150
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
chore: update docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md via opax-mcp
2026-07-25 07:10:04 +00:00

197 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HANDOFF-LOKAL-LLM-GITEA-MCP.md
# EGEN HANDOFF UFRAVIKELIG STYRINGSDOKUMENT
# GJELDER FRA NÅ OG FREM TIL 100 % FERDIGSTILLELSE
## 0. STATUS OG KOMMANDO
Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM".
---
## FREMDRIFT OPPDATERT 2026-07-25 09:08 CEST
### ✅ FASE 05 — 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
---
## 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
---
## 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)
```
### 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
Alle 6 tester grønne:
| 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)
## 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 46 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) |