OSVauco/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md
chris ca63a3a26e
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-22 01:32:05 +00:00

11 KiB
Raw Blame History

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-22 03:29 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

GPG-SIGNERING Commits verified — PÅGÅR

FASE 7 Lokal hjerne / derivat-modell — PLANLAGT

FASE 8 Backup / snapshot-strategi — PLANLAGT


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

Bekreftet ressursstatus

  • Disk: ca. 99 GB total, ca. 74 GB ledig
  • Ollama-modeller bruker ca. 13 GB
  • Systemet er komfortabelt i idle og har god RAM-headroom for videre modelltesting

Faktisk modeller lokalt per 2026-07-22

  • gemma3:4b
  • gemma3:12b
  • qwen2.5:3b

Ny anbefalt modellarkitektur

  • Frontmodell: gemma3:4b
    • Brukes for raske svar, enkel resonnering og billig default
  • Standard agent/tool-modell: qwen2.5:14b
    • Brukes når oppgaven trenger tool calling, bedre struktur og høyere kvalitet
  • Kode-/repo-modell: qwen2.5-coder:14b
    • Brukes for repo-forståelse, patching, refaktorering, debugging og tyngre dev-assistanse
  • Valgfri tung resonneringsmodell later: gemma3:27b
    • Kun ved behov, etter praktisk validering av RAM, lastetid og latency

Operativ ruting

  1. Start med gemma3:4b
  2. Eskaler til qwen2.5:14b når tools, struktur eller mer resonnering trengs
  3. Eskaler til qwen2.5-coder:14b når oppgaven er tydelig kode- eller repo-orientert
  4. Test gemma3:27b kun som valgfri tung modell, ikke som default

Viktige vurderinger

  • qwen2.5-coder:32b vurderes foreløpig som mulig for tung på nåværende oppsett og utsettes
  • Nåværende strategi er gradvis oppskalering av modellstack, ikke ny VM-oppgradering
  • Fokus er å validere praktisk responstid, RAM-bruk og stabilitet før større modellvalg fryses

Neste konkrete steg

  • Last ned:
    • qwen2.5:14b
    • qwen2.5-coder:14b
  • Test:
    • enkel chat-latency
    • tool calling
    • repo-/kodeoppgaver
    • RAM- og diskpåvirkning
# Last ned neste lag
ollama pull qwen2.5:14b
ollama pull qwen2.5-coder:14b

# Bekreft etter nedlasting
curl http://localhost:11434/api/tags
df -h /
du -sh /usr/share/ollama/.ollama/models

LÅST SYSTEMKONFIGURASJON GITEA-CPU-VM (komplett)

VM-spesifikasjon (oppdatert 2026-07-22)

  • Maskintype: e2-highmem-4 (4 vCPU / 32 GB RAM)
  • Zone: us-central1-b
  • Statisk IP: 34.170.51.84

Systemd-dropins

override.conf    — OLLAMA_HOST=0.0.0.0:11434
max-models.conf  — MAX_LOADED_MODELS=2 + KEEP_ALIVE=-1
warmup.conf      — ExecStartPost=/usr/local/bin/ollama-warmup.sh

Operative parametere for Emma-kall

num_ctx            = 2048
num_batch          = 256
OLLAMA_NUM_THREADS = ikke satt (autodetect)

Ytelsesbudsjett per Emma-turn (varm)

3-kall turn:   ~23.5s
5-kall turn:   ~42.5s
Boot-penalty:  ~0s (warmup-skript)
Tok/s:         4.95.0 (gemma3:4b)

Gitea-dataplassering

/opt/gitea/data/repositories/chris/OSVauco.git/   ← Bare repo
/opt/gitea/data/gitea.db                          ← SQLite metadata
/opt/gitea/data/custom/conf/app.ini               ← Konfig

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_statuslive, gitea: online, tool_count: 37


DNS FULLFØRT 2026-07-21

NS-bytte: Proisp → Google Cloud DNS 23:44 CEST

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

SMOKE-TEST FULLFØRT 2026-07-22 00:25 CEST

Kategori Status Merknad
Ollama / Emma Grønn gemma3:4b varm, 14s respons
Connector Grønn live, 37 tools
Gitea read + write Grønn Commits og push OK
GCP / Cloud Run Grønn osvauco-agent Ready, rev 00695
Workspace / Gmail Grønn 3 brukere, kalender, e-post OK
Terminal / Billing Grønn Billing dramatisk ned fra 5. juli
🟡 Jason Grønn m/merknad Kjører gemini-2.5-flash (ikke Pro)

Smoke-test observasjoner

  • qwen2.5:3b har tool-calling capabilities — gemma3:4b har det ikke
  • GCE list_instances tom — ikke kritisk, Cloud Console på mobil
  • Jason mode-parameter gir 400 — bruk kun prompt
  • GPG-signering pågår — commits fortsatt unverified

FASE 7 LOKAL HJERNE / DERIVAT-MODELL (planlagt)

Mål

Erstatte stor API-modell (Gemini/Claude/Perplexity) med lokal modell som hjerne i OPAX-arkitekturen. Redusere API-avhengighet på sikt.

Arkitektur (nå vs mål)

NÅ:
Perplexity/Gemini  ←  Hjerne (stor API-modell)
       ↓ tool calls
   OPAX-MCP
       ↓
Emma gemma3:4b    ←  Lokal inferens (svak)

MÅL:
Lokal stor modell  ←  Hjerne (lokal, gratis)
       ↓ tool calls
   OPAX-MCP
       ↓
Emma gemma3:4b    ←  Lokal inferens (rask)

Kandidatmodeller for e2-highmem-4 (32 GB RAM) — oppdatert 2026-07-22

Modell RAM Tok/s CPU Agentevne Vurdering
gemma3:4b (nå) 2.9 GB ~5 Svak Front/hurtig default
gemma3:12b ~8 GB ~1.52 God Allsidig
qwen2.5:14b ~9 GB ~1.5 Sterk Standard agent/tool — last ned nå
qwen2.5-coder:14b ~9 GB ~1.5 Kode-sterk Kode/repo — last ned nå
gemma3:27b ~17 GB <1 Tilnærmet god Valgfri tung — test etter 14B-laget
qwen2.5-coder:32b ~20 GB <1 Svært sterk Utsatt — mulig for tung

Exit-kriterier Fase 7

  • qwen2.5:14b installert og testet
  • qwen2.5-coder:14b installert og testet
  • Ytelsesmåling: tok/s, RAM-bruk, swap=0
  • Kvalitetstest: tool calling, kode- og repo-oppgaver
  • GEMINI.md-lignende systemd-prompt/konfig for Emma laget
  • Beslutning: erstatter eller komplementerer?

Derivat-strategi

Emma skal få eget identitetsdokument (tilsvarende GEMINI.md for Jason) med:

  • Personlighet og tone
  • Arbeidsregler og prioriteringer
  • Tool-bruksprinsipper
  • Vauco OS-kontekst

FASE 8 BACKUP / SNAPSHOT-STRATEGI (planlagt)

Mål

Sikre at Gitea-CPU-VM (34.67.252.59) aldri er single point of failure for source of truth.

Strategi: Daglig GCP Disk Snapshot

Kilde:    Gitea-CPU-VM persistent disk
Frekvens: Daglig (02:00 CEST)
Bevaring: 7 snapshots (rullerende — siste 7 dager)
Kostnad:  ~$0.026/GB/mnd — 50 GB disk = ~$1.30/mnd

Implementasjon

# Opprett snapshot-policy
gcloud compute resource-policies create snapshot-schedule gitea-daily-backup \
  --region=us-central1 \
  --max-retention-days=7 \
  --on-source-disk-delete=keep-auto-snapshots \
  --daily-schedule \
  --start-time=00:00 \
  --storage-location=us-central1

# Koble policy til disk
gcloud compute disks add-resource-policies gitea-cpu-vm \
  --resource-policies=gitea-daily-backup \
  --zone=us-central1-b

Hva snapshots dekker

  • /opt/gitea/data/repositories/ — alle git-objekter
  • /opt/gitea/data/gitea.db — brukere, tokens, metadata
  • /opt/gitea/data/custom/conf/app.ini — konfig
  • Ollama-modeller (/usr/share/ollama/)
  • Systemd-dropins og warmup-skript

Restore-prosedyre (ved VM-tap)

# 1. Opprett ny disk fra snapshot
gcloud compute disks create gitea-restore \
  --source-snapshot=<snapshot-name> \
  --zone=us-central1-b

# 2. Koble til ny VM eller eksisterende
# 3. Gitea starter automatisk — alt er intakt

Exit-kriterier Fase 8

  • Snapshot-policy opprettet og koblet til disk
  • Første snapshot verifisert i GCP Console
  • Restore-prosedyre testet (restore til tmp-disk)
  • Kostnad bekreftet (~$1.30/mnd)

ÅPNE PUNKTER

  1. GPG-signering — få commits verified (pågår)
  2. git.vauco.no — verifiser propagering
  3. Fase 6.5/7: Last ned qwen2.5:14b + qwen2.5-coder:14b ← neste steg
  4. Test: tool calling, kode-/repo-oppgaver, RAM/disk-påvirkning
  5. Emma derivat-dokument (tilsvarende GEMINI.md)
  6. Fase 8: Snapshot-policy aktiveres
  7. Gitea passord byttes (eksponert i chat)

FASTE SANNHETER

  • Gitea er source of truth
  • Lokale modeller er hovedretning — mål er å fase ut API-avhengighet
  • Gitea-VM (34.67.252.59) er permanent målmaskin
  • Dev-snap (34.170.51.84) er Jason sin arbeidsstasjon — kan ikke stenges før lokal hjerne er verifisert
  • Denne handoffen overstyrer alt annet

DEFINITION OF DONE

  • Lokale modeller lever og kan brukes lokalt
  • OPAX-MCP bruker lokal modellbackend korrekt
  • list_emma_models er grønn
  • Gitea read-only tools er grønne
  • GCP/Workspace-kjernen er fortsatt grønn
  • Konfigurasjon konsolidert — GITEA_URL permanent + deployed
  • Boot-warming verifisert
  • DNS migrert til Google Cloud DNS
  • Smoke-test alle 37 tools — FERDIG
  • VM oppgradert til e2-highmem-4 (32 GB RAM) — FERDIG
  • git.vauco.no live — propagering pågår
  • GPG-signering verified — pågår
  • qwen2.5:14b + qwen2.5-coder:14b lastet ned og testet — planlagt
  • Fase 7: lokal hjerne verifisert — planlagt
  • 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:05 Smoke-test plan klar, Fase 7 (lokal hjerne) lagt inn
2026-07-22 00:25 Smoke-test fullført — alle kategorier grønne
2026-07-22 00:55 Fase 8 (backup/snapshot) lagt inn, GPG-signering pågår
2026-07-22 03:29 FASE 6.5 lagt inn: e2-highmem-4 verifisert, ny modellarkitektur (Gemma4b → Qwen14b → Qwen-coder-14b → Gemma27b), neste steg: pull qwen2.5:14b + qwen2.5-coder:14b