Tavla
🖥 A customizable departure board for all public transport in Norway
Install / Use
/learn @entur/TavlaREADME
Tavla
Med «Tavla» kan du sette opp egne, spesialtilpassede avgangstavler for all offentlig transport i Norge. Løsningen utvikles av Entur, og er helt gratis og tilgjengelig for alle. Logg inn på tavla.entur.no for å komme i gang! Abonner på oppdateringer til Tavla ved å klikke på “Watch” i menyen.
Hva du kan gjøre
- Lage skreddersydde tavler (velg stopp, rekkefølge, layout)
- Få sanntidsoppdateringer (Redis pub/sub)
- Se hvor mange tavler som er aktive
- Autentisering og vedvarende data via Firebase (emulator lokalt)
- Moderne og tilgjengelig grensesnitt (Entur designsystem)
Struktur i repoet
/
├─ backend/ Rust (Axum) API + Redis
├─ tavla/ Next.js-frontend
├─ redirect/ Liten Rust-tjeneste (redirect)
├─ migrations/ Skript og hjelpeverktøy
├─ helm/ Deploy-konfigurasjon (Helm charts)
└─ flake.nix Valgfri Nix dev-miljøfil
Teknologistack
| Lag | Teknologi | |-----|--------------------------------------------| | Frontend | Next.js 16, React 19, TypeScript, Tailwind | | Backend | Rust (Axum), Tokio, Redis pub/sub | | Data/Auth | Firebase (emulator i utvikling) | | Verktøy | Yarn 3, GraphQL Codegen, Sentry |
Oversikt: slik kjører du (høytnivå)
- Start Redis (master + replica) – se
backend/readme.mdfor detaljer - Start backend (
cargo run) - Start frontend (
yarn develleryarn dev:persist) - Sett
BACKEND_API_KEYi frontend (.env.local) - Test med
curlmot backend
Detaljer per delkomponent finnes i deres respektive README.
Miljøvariabler (samlet oversikt)
| Variabel | Bruk | Påkrevd | Standard | Beskrivelse | |----------|------|---------|----------|-------------| | BACKEND_API_KEY | Backend + frontend | Ja | – | Delt bearer key | | HOST | Backend | Nei | 0.0.0.0 | Adresse backend binder på | | PORT | Backend | Nei | 3001 | Port backend lytter på | | REDIS_PASSWORD | Backend/Redis | Ja | – | Passord for master + replica | | REDIS_MASTER_SERVICE_HOST | Backend | Ja | 127.0.0.1 | Host for Redis master | | REDIS_MASTER_SERVICE_PORT | Backend | Ja | 6379 | Port for Redis master | | REDIS_REPLICAS_SERVICE_HOST | Backend | Ja | 127.0.0.1 | Host for Redis replica | | REDIS_REPLICAS_SERVICE_PORT | Backend | Ja | 6380 | Port for Redis replica | | NEXT_PUBLIC_ENV | Frontend | Nei | dev | Bygg-/miljøflagg i frontend | | SENTRY_* | Frontend/Backend | Nei | – | Valgfri observability | | FIREBASE_* | Frontend | Ja (auth) | – | Konfig via emulator / service keys |
Bidrag
Vi ønsker:
- Feilrapporter (issues)
- Forslag til forbedringer og funksjoner
- Innspill på dokumentasjon og brukervennlighet
Pull requests med kode håndteres i dag kun av kjerneteamet for å sikre konsistens og kvalitet. Opprett et issue først dersom du ønsker å diskutere en endring.
Lisenser og betingelser
Kode: EUPL-1.2 (se LICENSE)
Fonter: Egen lisens (Nationale – https://playtype.com/typefaces/nationale/)
Varemerker (logo, illustrasjoner, bilder): Kun for Entur.
Kort kom i gang (huskeliste)
redis (master + replica)
cargo run (backend)
yarn dev:persist (frontend)
curl localhost:3001/active -H "Authorization: Bearer <key>"
Se mappene backend/ og tavla/ for mer detaljert informasjon.
