React/Next.js frontend for åpne sider på nav.no. Benytter Enonic XP som headless CMS.
Kjøres lokalt på http://localhost:3000.
Som default kreves en lokal instans av Enonic XP med nav-enonicxp installert. Alternativt kan en dev eller prod-instans av XP benyttes via nav-enonicxp-dev-proxy.
Hvis lintingreglene i pakkene ikke plukkes opp av VS Code, sørg for å ha følgende innstillinger i .vscode/settings.json:
{
"eslint.workingDirectories": ["./packages/nextjs", "./packages/shared", "./packages/server"]
}
- Start en XP sandbox (se nav-enonicxp readme for fremgangsmåte)
- Kjør
npm run dev
- Kopier .env.development til .env.development.local.
- Sett f.eks.
XP_ORIGIN=https://nav-enonicxp-proxy.intern.dev.nav.no/dev1
(se dev-proxy readme for andre alternativer) - Kjør
npm run dev-custom
Kjør npm run start-local-clean
Kjør Storybook lokalt med npm run storybook
eller besøk den deploya versjonen https://navikt.github.io/nav-enonicxp-frontend/
Dekoratøren og revalidator-proxy kan kjøres lokalt med docker compose up
. Du må først autentisere til GAR image registry'et:
gcloud auth login
gcloud auth configure-docker europe-north1-docker.pkg.dev
Se også https://cloud.google.com/artifact-registry/docs/docker/authentication#gcloud-helper
Actions -> Velg workflow -> Run workflow -> Velg branch -> Run workflow
Lag en PR til main, og merge inn etter godkjenning (En automatisk release vil oppstå ved deploy til main).
I tillegg til den ordinære instansen av appen på www.nav.no, deployes også nattlig et statisk bygg av appen til www-failover.nav.no. Ved server-feil ved rendring av en side i den ordinære app-instansen, vil error-page'en forsøke å hente html for tilsvarende side fra failover-appen, og servere denne som en fallback.
Github workflows har ikke tilgang til q-miljøer i Nav (feks dev), så imaget må bygges lokalt slik at byggeprosessen får tak i tjenestene i XP i dev. Deretter pushes imaget til GAR (Google Artifact Registry) og så deployes via Github Actions.
- Legg inn relevante secrets lokalt som spesifisert i kommentarene øverst i
.failover/build-dev-failover-image.sh
- Husk at du i tillegg må være på naisdevice!
- Kjør
npm run build-and-push-dev-failover --app_env=dev1|dev2 --image_name=ditt-valgte-image-navn
- Vent på at imaget bygges (det tar normalt 15-20 min)
- I rapporten vil du få en Digest ("sha256:ab372a...."). Kopier selve sha'en (dvs ikke 'sha256:') til bruk i neste steg.
- Kjør Github workflow'en
deploy-failover.dev
med dev-miljøet og sha'en som du fikk etter push.
Merk at Failover-appen ikke kan brukes direkte, selv om den kjører på egen ingress. Den er sattopp til å blokkere kall utenifra. Istedet vil den vanlige NextJS-instansen hente statisk rendret html- og json-innhold fra Failover via API dersom det ikke er mulig å hente fra hverken NextJS sin egen cache, Valkey eller XP.
For å teste en deployet failover-instans i dev kan du f.eks. slå av nav.no-appen i XP og så slette frontend-cachen. Ikke i prod, med mindre det er helt nødvendig og varslet i god tid på #varsling-nedetid.
Spørsmål knyttet til koden eller prosjektet kan rettes mot https://github.com/orgs/navikt/teams/personbruker
Interne henvendelser kan sendes via Slack i kanalen #team-personbruker