56 lines
2.4 KiB
Markdown
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.
|