OSVauco/opax-web/README-opax-web.md

56 lines
2.4 KiB
Markdown

# 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.