OSVauco/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md
Chris Christiansen 38f8338c6e
Some checks failed
Check Python Version Consistency / Check Python Version (push) Waiting to run
Nightly GDrive Backup / Backup OSVauco → Google Drive (push) Has been cancelled
docs: remove exposed gitea token reference
2026-07-25 02:03:21 +00:00

204 lines
7.3 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-23 22:14 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
### 🟡 FASE 7 14B-validering utført, arkitektur justeres — PÅGÅR
### ⏳ git.vauco.no HTTPS — PÅBEGYNT, blokkert av firewall
### ⏳ GPG-SIGNERING Commits verified — PÅGÅR
### ⏳ FASE 8 Backup / snapshot-strategi — PLANLAGT
---
## 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` (ikke `34.67.252.59:3000`) når du jobber fra Gitea-VM selv. GCP NAT-er ikke loopback-trafikk.
---
## git.vauco.no STATUS OG NESTE STEG
### Hva er gjort
- ✅ DNS: `git.vauco.no` A-record → `34.67.252.59` satt i Google Cloud DNS
- ✅ nginx installert og kjører på Gitea-VM (port 80 lytter)
- ✅ nginx konfig for `git.vauco.no` → proxy til `localhost:3000` opprettet
- ✅ Firewall-regel `allow-http-https` opprettet i `propane-will-491900-m5`
- ❌ certbot feiler — port 80 ikke nåbar eksternt (timeout)
### Rotårsak
Firewall-regelen `allow-http-https` (prioritet 1000) blokkeres sannsynligvis av en annen regel med høyere prioritet. VM-taggen er `gitea-server`.
### Neste steg når du er hjemme
**Steg 1 — GCP Console eller Cloud Shell:**
Finn blokkerende regel:
```bash
gcloud compute firewall-rules list \
--project=propane-will-491900-m5 \
--format="table(name,direction,priority,allowed,denied,targetTags,disabled)"
```
**Steg 2 — Lag ny regel med prioritet 500:**
```bash
gcloud compute firewall-rules create allow-gitea-web \
--project=propane-will-491900-m5 \
--allow tcp:80,tcp:443 \
--direction INGRESS \
--priority=500 \
--target-tags=gitea-server \
--network=default \
--source-ranges=0.0.0.0/0
```
**Steg 3 — Gitea-VM: kjør certbot på nytt:**
```bash
sudo certbot --nginx -d git.vauco.no \
--non-interactive --agree-tos \
-m chris.christiansen@vauco.no
```
**Steg 4 — Verifiser:**
```bash
curl -s https://git.vauco.no/api/v1/version
```
**Steg 5 — Google OAuth2 i Gitea:**
- console.cloud.google.com → Credentials → OAuth 2.0 Client ID
- Redirect URI: `https://git.vauco.no/user/oauth2/google/callback`
- Legg til i Gitea: Site Administration → Authentication Sources → Add → OAuth2 → Google
---
## SIKKERHET ÅPNE PUNKTER
GITEA_TOKEN: [ROTERT OG FJERNET]
- Roter token i Gitea (localhost:3000 → Settings → Applications)
- Oppdater GITEA_TOKEN i Cloud Run miljøvariabler etter rotasjon
---
## FASE 6.5 — OPPDATERT LOKAL LLM-STACK (2026-07-22)
### Bekreftet drift
- `gitea-cpu-vm` er oppe i `us-central1-b`
- VM kjører nå på `e2-highmem-4` (4 vCPU / 32 GB RAM)
- Statisk IP beholdt: `34.170.51.84`
- Gitea svarer på port `3000`
- Ollama svarer på port `11434`
### Faktisk modeller lokalt per 2026-07-23
- `gemma3:4b`
- `qwen2.5:3b`
- `qwen2.5:7b`
- `qwen2.5-coder:7b`
- `qwen2.5-coder:14b`
### Revidert anbefalt modellarkitektur
- **Frontmodell:** `gemma3:4b` — raske svar, enkel resonnering
- **Lett tool-modell:** `qwen2.5:3b` — tool calling, responsivt
- **Standard mellomlag:** `qwen2.5:7b` — kvalitet + brukbar latency
- **Kode-modell:** `qwen2.5-coder:7b` — standard for repo/kodearbeid
- **Backup coder:** `qwen2.5-coder:14b` — batch/asynkrone kodeoppgaver
---
## 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` |
| `OSVAUCO_AGENT_URL` | `https://osvauco-agent-357036551735.us-central1.run.app` |
Deploy verifisert: `get_connector_status``live`, `gitea: online`, `tool_count: 37`
---
## DNS FULLFØRT 2026-07-21
| Record | Type | Verdi |
|---|---|---|
| `vauco.no.` | A | `34.98.77.173` (LB) |
| `www.vauco.no.` | A | `34.98.77.173` (LB) |
| `opax.vauco.no.` | A | `34.98.77.173` (LB) |
| `git.vauco.no.` | A | `34.67.252.59` |
| MX / SPF / DKIM / DMARC | TXT/MX | Google Workspace komplett |
---
## ÅPNE PUNKTER
1. ⚠️ Roter GITEA_TOKEN (eksponert i chat)
2. `git.vauco.no` HTTPS — firewall prioritet 500 + certbot
3. Google OAuth2 innlogging i Gitea
4. GPG-signering — få commits verified
5. Test `qwen2.5-coder:7b` på konkret kode-/repo-oppgave
6. Mål RAM/swap under modell-last
7. Emma derivat-dokument (tilsvarende GEMINI.md)
8. Fase 8: Snapshot-policy aktiveres
9. 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å
- Bruk `localhost:3000` fra Gitea-VM, aldri ekstern IP mot seg selv
- Dev-snap er ikke lenger nødvendig for kjerneflyten
- CPU er primær flaskehals for tyngre lokale modeller
## DEFINITION OF DONE
- ✅ Lokale modeller lever og kan brukes lokalt
- ✅ OPAX-MCP bruker lokal modellbackend korrekt
- ✅ Gitea read/write tools er grønne
- ✅ GCP/Workspace-kjernen er fortsatt grønn
- ✅ Smoke-test alle 37 tools — FERDIG
- ✅ VM oppgradert til e2-highmem-4 (32 GB RAM) — FERDIG
- ✅ Dev-snap uavhengighet verifisert — FERDIG
- ✅ OSVauco arbeidskopi på Gitea-VM — FERDIG
-`git.vauco.no` live med HTTPS — neste
- ⏳ Google OAuth2 innlogging Gitea — etter HTTPS
- ⏳ GITEA_TOKEN rotert — kritisk
- ⏳ GPG-signering verified — pågår
- ⏳ Fase 7: lokal hjerne verifisert — pågår
- ⏳ Fase 8: daglig snapshot-backup — planlagt
## OPPDATERINGSLOGG
| Dato | Handling |
|---|---|
| 2026-07-21 | FASE 46: CPU-optimalisering, boot-warming fullført |
| 2026-07-21 23:44 | DNS: NS-bytte utført hos Proisp |
| 2026-07-21 23:53 | OPAX-MCP: GITEA_URL + OLLAMA_BASE_URL → 34.67.252.59, deployed |
| 2026-07-22 00:25 | Smoke-test fullført — alle kategorier grønne |
| 2026-07-22 03:55 | Handoff oppdatert etter 14B-validering |
| 2026-07-22 19:25 | OSVauco klonet til Gitea-VM via localhost:3000 |
| 2026-07-22 19:30 | Dev-snap uavhengighet bekreftet — alle 6 tester grønne |
| 2026-07-22 19:45 | nginx installert, git.vauco.no konfig opprettet, certbot blokkert av firewall |
| 2026-07-23 22:14 | Handoff oppdatert med full status, neste steg og sikkerhetsnotis om token |