Til innholdet
Rolig · endringer tillatt
Ukedagsregel i v0: frys torsdag 18:00 → søndag 12:00; rullekveld fredag/lørdag 18:00 → 06:00. Ingen kalenderoppslag.

Forside

9 fliser · 4 uten datakilde · manifest 2026-09-03

Hva melder brukerne?

Inngangen kl. 23. Hver knapp gir rangerte mistenkte fra feildomene-tabellen og runbooken som hører til.

OTP kommer ikke
  1. 7. Cloudflare Email Service nede / kvote nådd
    Rammer nå: OTP kommer aldri; appen sier «Sjekk e-posten» (anti-orakel). Google virker · Fungerer fortsatt: Alt unntatt e-postinnlogging
    Første sjekk: Supabase → Auth → Logs (SMTP-feil / 429); Cloudflare → Email Service → Sending
  2. 6. Supabase Auth (GoTrue) nede
    Rammer nå: Kan ikke logge inn; innloggede virker til refresh feiler · Fungerer fortsatt: Gjeste-web, API for eksisterende tokens (JWKS cachet)
    Første sjekk: status.supabase.com; Supabase → Auth → Logs
  3. 18. folget-dev pauset (kun dev/test)
    Rammer nå: 502 fra alle Auth-endepunkter · Fungerer fortsatt: —
    Første sjekk: Supabase → folget-dev → Restore project (ett klikk)
Åpne runbook: OTP-e-post kommer ikke fram
500 på alt
  1. 1. Connection-utmattelse mot Supabase (kveldstopp)
    Rammer nå: 500 på alt; ser ut som API nede · Fungerer fortsatt: /health (rører ikke DB) — Railway ser derfor alt som friskt
    Første sjekk: Supabase → Database → Reports (connections); Railway-logg etter Npgsql/timeout
  2. 16. Railway-prosjekt suspendert (utløpt kort)
    Rammer nå: Alt nede · Fungerer fortsatt: Ingenting
    Første sjekk: Railway → Account → Billing
  3. 4. OOM-restart under last
    Rammer nå: Alle mister sesjon (re-innlogging skjer stille via refresh) · Fungerer fortsatt: Etter restart: alt
    Første sjekk: Railway → Metrics (minne) → Deployments (restart count)
  4. 2. Deploy/migrasjon på feil dag
    Rammer nå: Sesjon brytes; 500 ved skjemamismatch · Fungerer fortsatt: Ingenting hvis migrasjonen droppet en kolonne
    Første sjekk: GitHub → Actions → deploy-migrate; Railway → Deployments (Redeploy forrige)
Åpne runbook: 500 på alt — connection-utmattelse mot Supabase
Lenken virker ikke
  1. 11. Pages-deploy med feil _headers/_redirects
    Rammer nå: — · Fungerer fortsatt: API
    Første sjekk: curl -sI https://folget.no/g/test | grep -i referrer; Pages → Deployments → Rollback
  2. 12. DNS-feil på folget.no
    Rammer nå: api.folget.no løses ikke → alt feiler · Fungerer fortsatt: Ingenting utad
    Første sjekk: nslookup -type=NS folget.no 1.1.1.1; Cloudflare → DNS → Records; dnsviz.net
  3. 15. Cloudflare-kant nede
    Rammer nå: App upåvirket (DNS-svar kommer likevel fra Cloudflare) · Fungerer fortsatt: API hvis DNS er cachet
    Første sjekk: https://www.cloudflarestatus.com
  4. 1. Connection-utmattelse mot Supabase (kveldstopp)
    Rammer nå: 500 på alt; ser ut som API nede · Fungerer fortsatt: /health (rører ikke DB) — Railway ser derfor alt som friskt
    Første sjekk: Supabase → Database → Reports (connections); Railway-logg etter Npgsql/timeout
Åpne runbook: Magic link virker ikke — gjesten får 404, blank side eller «Noe gikk galt»
Ingen varsel
  1. 8. Expo Push nede
    Rammer nå: Ingen varsler; alt annet virker · Fungerer fortsatt: Alt utenom varsler
    Første sjekk: status.expo.dev; Railway-logg filtrert på ExpoPushSender
Åpne runbook: Push-varsel kommer ikke — «Beskjeden er sendt» uten at noen fikk den
Logget ut
  1. 3. JWKS-blipp → 401 på alt
    Rammer nå: Utlogget-følelse i opptil 1 min · Fungerer fortsatt: Gjeste-web (magic link er IdP-uavhengig)
    Første sjekk: curl JWKS → keys[]; status.supabase.com
  2. 4. OOM-restart under last
    Rammer nå: Alle mister sesjon (re-innlogging skjer stille via refresh) · Fungerer fortsatt: Etter restart: alt
    Første sjekk: Railway → Metrics (minne) → Deployments (restart count)
  3. 6. Supabase Auth (GoTrue) nede
    Rammer nå: Kan ikke logge inn; innloggede virker til refresh feiler · Fungerer fortsatt: Gjeste-web, API for eksisterende tokens (JWKS cachet)
    Første sjekk: status.supabase.com; Supabase → Auth → Logs
Åpne runbook: 401 på alt — JWKS-blipp rett etter deploy eller restart
Koden er feil
  1. 7. Cloudflare Email Service nede / kvote nådd
    Rammer nå: OTP kommer aldri; appen sier «Sjekk e-posten» (anti-orakel). Google virker · Fungerer fortsatt: Alt unntatt e-postinnlogging
    Første sjekk: Supabase → Auth → Logs (SMTP-feil / 429); Cloudflare → Email Service → Sending
Åpne runbook: OTP-e-post kommer ikke fram
Gjeste-web tom
  1. 11. Pages-deploy med feil _headers/_redirects
    Rammer nå: — · Fungerer fortsatt: API
    Første sjekk: curl -sI https://folget.no/g/test | grep -i referrer; Pages → Deployments → Rollback
  2. 15. Cloudflare-kant nede
    Rammer nå: App upåvirket (DNS-svar kommer likevel fra Cloudflare) · Fungerer fortsatt: API hvis DNS er cachet
    Første sjekk: https://www.cloudflarestatus.com
  3. 1. Connection-utmattelse mot Supabase (kveldstopp)
    Rammer nå: 500 på alt; ser ut som API nede · Fungerer fortsatt: /health (rører ikke DB) — Railway ser derfor alt som friskt
    Første sjekk: Supabase → Database → Reports (connections); Railway-logg etter Npgsql/timeout
Åpne runbook: Magic link virker ikke — gjesten får 404, blank side eller «Noe gikk galt»

Riktig satt — ikke bare oppe

Overvåking svarer på om noe er oppe. Dette er det den aldri ser.

  • 9 «utenfor repo»-invarianter avviker se listen
  • 14 rader i tilgangsregisteret har avvik tilgang
  • 2 HEMMELIG prod-nøkler uten oppstartsvalidering konfig
PåstandTilstandVerifiser
API på Railway · Betalingskort utløper etter pilotperioden
Forventet: > 30 dager
AVVIK
Observert: Dato ikke registrert — «har tatt ned flere små systemer enn noen teknisk årsak»
Account → Billing → Payment method
manuell — dashbord
Supabase prod (folget-prod) · Site URL / Redirect URLs peker på prod
Forventet: https://folget.no
AVVIK
Observert: IKKE SATT (d1-plan.md D1.4)
Authentication → URL Configuration
manuell — dashbord
Cloudflare Email Service (OTP ut) · SPF/DKIM PASS med d=folget.no i en ekte OTP-e-post
Forventet: PASS/PASS
AVVIK
Observert: Ikke bekreftet (otp-email-setup.md «Gjenstår»)
Gmail «Vis original» på en mottatt kode. Bekreftes FØR DMARC trappes opp.
manuell — dashbord
GitHub (niclasam/rulle) · Environment «prod» har Required reviewers
Forventet: required_reviewers
AVVIK
Observert: [] — INGEN. Avvik.
gh api repos/niclasam/rulle/environments --jq '.environments[] | select(.name=="prod") | [.protection_rules[].type]'
UptimeRobot (oppetid → telefon) · Monitorene treffer https://api.folget.no/health og https://folget.no — to, ikke tre (app-web publiseres ikke)
Forventet: /health og folget.no
AVVIK
Observert: Som forventet. MEN: /health rører ikke databasen, så connection-utmattelse (feildomene 1) ses ikke av UptimeRobot — kun av pre-flight kl. 18 og Sentry. Vurder å bytte monitoren til /health/ready.
Dashboard → hver monitor → URL. Kilden i repoet: «Observability for piloten» i tech-decisions.md.
manuell — dashbord
UptimeRobot (oppetid → telefon) · Ingen monitor på Supabase /auth/v1/health
Forventet: bør finnes
AVVIK
Observert: Finnes ikke. Rapport 2 ba om den: et GoTrue-utfall rammer all innlogging uten at noe ser det.
Dashboard
manuell — dashbord
Cloudflare DNS — folget.no · DNSSEC aktivert (DS-post publisert i .no)
Forventet: DS finnes
AVVIK
Observert: INGEN DS — ikke aktivert. Sikkerhetshull, ikke bare drift (rapport 1 hull 21).
PowerShell: Resolve-DnsName folget.no -Type DS -Server 1.1.1.1 · eller https://dnsviz.net/d/folget.no/dnssec/
manuell — dashbord
Cloudflare DNS — folget.no · DMARC-policy
Forventet: p=none til justeringen er bekreftet, deretter quarantine
AVVIK
Observert: p=none; rua til Cloudflare + dmarc@folget.no. Ingen dato for opptrapping.
nslookup -type=TXT _dmarc.folget.no 1.1.1.1
Google Cloud Console (OAuth) · Authorized JavaScript origins inkluderer https://folget.no (prod)
Forventet: https://folget.no
AVVIK
Observert: Kun app.folget.app og localhost:8081 (2026-09-01)
Credentials → Web-klienten → Authorized JavaScript origins
manuell — dashbord

Status

Rekkefølge: ryker oftest × rammer flest. UKJENT er en gyldig tilstand for kilder som ikke finnes — aldri «oppe» fordi ingen har klaget. Siden er statisk: kildene er det som er dokumentert, ikke live-målinger.

API på Railway

Kilde: uptime

Live: ikke hentet ennå

Egen uptime (UptimeRobot) · /version = origin/production (verifisert 2026-09-03: 920d7cc)

Varsling: push til telefon (UptimeRobot, bevist 2026-09-03) · e-post sekundært

Rammer nå: Alle roller, alle flater

Første sjekkRailway → service rulle → Logs · Sentry → Issues
curl -sS https://api.folget.no/version; curl -sS -o /dev/null -w "%{http_code}\n" https://api.folget.no/health/ready
/health beviser ikke at databasen eller auth virker — det gjør /health/ready (503 ved databasefeil). Plattformens healthcheck peker på /health med vilje.

Supabase prod (folget-prod)

Kilde: preflight

Live: ikke hentet ennå

Egen pre-flight kl. 18 på rulledager (/health/ready → SELECT 1) · JWKS 1 nøkkel (verifisert 2026-09-03)

Varsling: healthchecks.io ved feilet pre-flight · Sentry-hendelse fra /health/ready (strupet, én per time)

Rammer nå: Alle roller — /health ser fortsatt friskt, det gjør /health/ready ikke

Første sjekkSupabase → Database → Reports (connections)
curl -sS -o /dev/null -w "%{http_code}\n" https://api.folget.no/health/ready
Auth og database er TO fliser: gjeste-web overlever et GoTrue-utfall (magic link valideres mot egen DB).

Cloudflare Email Service (OTP ut)

Ukjent — ingen kilde

Live: ikke hentet ennå

Ingen kilde · OTP-kvote: ukjent forbruk — Cloudflare publiserer ikke tallet

Varsling: ingen

Rammer nå: Alle som logger inn med e-post. Google-innlogging virker.

Første sjekkCloudflare → Email Service → SendingTurnstile er bevisst utsatt: én kjent adresse kan tømme kvoten. Revurderes ved første kvotetømming.

Gjeste-web på Cloudflare Pages

Kilde: uptime

Live: ikke hentet ennå

Egen uptime (UptimeRobot) folget.no · cloudflarestatus.com

Varsling: push til telefon (UptimeRobot)

Rammer nå: Gjest først; alle ved DNS-feil

Første sjekkCloudflare → Pages → folget-gjest → Deployments
curl -sSI https://folget.no/g/x | grep -iE "^HTTP|referrer-policy|x-robots"

Expo Push Service

Ukjent — ingen kilde

Live: ikke hentet ennå

Ingen kilde · feil svelges ved design — «stille» betyr ikke «friskt»

Varsling: ingen — Sentry fanger 5xx fra Expo, ikke tapte varsler

Rammer nå: Medlem og rullesjef — ingen ser at det feiler

Første sjekkSentry → Issues (ExpoPushSender) · Railway → Logs

GitHub (niclasam/rulle)

Ukjent — ingen kilde

Live: ikke hentet ennå

Ingen kilde konfigurert · e-post fra GitHub ved rød planlagt jobb

Varsling: e-post ved rød Actions-jobb · backup og pre-flight pinger healthchecks.io i tillegg

Rammer nå: Ingen direkte — er kanalen for deploy og migrering

Første sjekkGitHub → Actions
gh run list --limit 10

EAS / Expo (bygg og butikk-innsending)

Ukjent — ingen kilde

Live: ikke hentet ennå

Ingen kilde konfigurert · Apple-konto på hold (kjent tilstand)

Varsling: ingen

Rammer nå: Ingen driftseffekt — hastefiks til appen forsinkes 30–90+ min

Første sjekkEAS → Builds
cd frontend && npx eas-cli build:list --limit 3

Sentry (feilrapportering)

Kilde: sentry

Live: ikke hentet ennå

Sentry (EU) · UptimeRobot · healthchecks.io — push verifisert 2026-09-03

Varsling: push (UptimeRobot) · e-post sekundær · healthchecks.io ved stille cron

Rammer nå: — (ingen brukereffekt; rammer hvor fort vi ser de andre)

Første sjekkSentry → Issues (siste 24 t)Gjenstår: Sentry-feil fra appen (neste EAS-bygg) · sourcemaps (SENTRY_AUTH_TOKEN mangler) · stillhets-deteksjon på healthchecks.io selv.

Testmiljø (Docker, rulle-test)

Kilde: skript

Live: ikke hentet ennå

scripts/test-env-status.sh (SessionStart-hooken sier fra ved drift)

Varsling: ingen — bevisst

Rammer nå: Kun drifter og testere

Terminal — kjør statusskriptet
./scripts/test-env-status.sh

Hva rammes hvis denne faller

kallJWKSOTPOTP / GoogleIKKE via AuthvarslerAppklient — ingen statusAPI RailwayRailwaySupabase DBSupabaseGjeste-web (Pages)CloudflareSupabase AuthSupabaseE-post (Cloudflare)CloudflareDNS (Cloudflare)CloudflareExpo PushExpo

Kartet illustrerer lista, ikke omvendt. Gjeste-web går IKKE via Supabase Auth — det er den ene flaten som overlever et GoTrue-utfall. /health beviser ikke at databasen virker. Push-feil er usynlige ved design.

  • App: Appen er klient — faller den, er det EAS/butikk (rad 13–14), ikke drift.
  • API Railway: Medlem: 500 på alt. Rullesjef: dørlista tom. Gjest: «Noe gikk galt». Fungerer fortsatt: ingenting utad.
  • Supabase DB: Alle: 500 — ser ut som API nede. /health ser friskt; /health/ready svarer 503 og pre-flight kl. 18 fanger det.
  • Gjeste-web (Pages): Gjest: /g/{token} laster ikke. Medlem og rullesjef: upåvirket.
  • Supabase Auth: Medlem: kan ikke logge inn; innloggede virker til refresh. Gjest: upåvirket. Gjeste-web og API for eksisterende tokens fungerer.
  • E-post (Cloudflare): Medlem: OTP kommer aldri, appen sier «Sjekk e-posten». Google virker. Alt annet fungerer.
  • DNS (Cloudflare): Alle: api.folget.no og folget.no løses ikke — alt feiler utad.
  • Expo Push: Medlem/rullesjef: ingen varsler; «Beskjeden er sendt» uten at noen fikk den. Alt utenom varsler fungerer.

Live nå

Hentet av /api/status — en Pages Function bak samme Access-innlogging, med read-only-tokens (D1.7c). Cache 60 s. En kilde som ikke svarer gir UKJENT for den kilden, aldri for siden.

Ikke hentet ennå — krever innlogget økt og at live-laget er satt opp

Prod-versjon

GitHub Actions

Sentry — uløste feil siste 24 t

UptimeRobot

healthchecks.io

Hendelser

Ingen hendelseslogg ennå. Første hendelse skrives i ops/hendelser/YYYY-MM-DD-<slug>.md med første felt «Personopplysninger berørt? ja/nei/uvisst» — GDPR art. 33 gir 72 timer.