# 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 08:42 CEST ### ✅ 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 ### 🟡 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`) --- ## 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 ## 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-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 |