# OPAX / Web TUI Intern Dokumentasjon Denne filen beskriver hvordan man kjører og overvåker backend-tjenesten for OPAX / Web TUI. ## Kjøre i produksjonsmodus Applikasjonen er designet for å kjøre i en Node.js-container. For å starte serveren i produksjonsmodus, sørg for at følgende er satt: 1. **Miljøvariabel:** `NODE_ENV` må være satt til `production`. 2. **Secrets:** Følgende miljøvariabler må være tilgjengelige i kjøremiljøet, f.eks. via Secret Manager: * `GOOGLE_CLIENT_ID` * `GOOGLE_CLIENT_SECRET` * `SESSION_SECRET` 3. **Konfigurasjon:** * `FRONTEND_URL`: Den fulle URL-en til frontend-applikasjonen (f.eks. `https://opax.vauco.no`). * `ALLOWED_EMAILS`: En komma-separert liste med e-postadresser som har lov til å logge inn. * `PORT`: Porten serveren skal lytte på (default er `8080`). Serveren startes ved å kjøre hovedfilen: ```bash node opax-web/backend/server.js ``` ## Health Check Tjenesten har et health check-endepunkt for ekstern overvåking. - **URL:** `/health` - **Metode:** `GET` - **Suksessrespons (HTTP 200):** ```json { "status": "ok" } ``` ## API-endepunkter (Socket.IO) Klienten kommuniserer med serveren via Socket.IO for å hente Git-informasjon. All kommunikasjon krever en aktiv, autentisert sesjon. 1. **Hent Git Status** - **Klient-event:** `git:getStatus` - **Server-respons (suksess):** `git:status:result` med payload `{ data: { status: string, details: string } }` - **Server-respons (feil):** `git:status:error` med payload `{ message: string }` 2. **Hent Aktiv Branch** - **Klient-event:** `git:getBranch` - **Server-respons (suksess):** `git:branch:result` med payload `{ data: { current_branch: string } }` - **Server-respons (feil):** `git:branch:error` med payload `{ message: string }` ## Driftstips - **Overvåking:** Health-check-endepunktet `/health` kan brukes av en ekstern monitortjeneste (f.eks. Google Cloud Monitoring Uptime Check). Konfigurer monitoren til å sende en GET-forespørsel hvert minutt og varsle ved ikke-200-status over en periode på for eksempel 3-5 minutter. - **Logging:** All applikasjonslogging (inkludert feil) skrives til `stdout`/`stderr`. I et container-miljø som Cloud Run, blir disse loggene automatisk samlet inn og kan sees i Google Cloud Logging. Bruk filter i Logging for å isolere logger fra denne spesifikke Cloud Run-tjenesten.