Hallway · Docs

Hva er dette

En alltid-på dashbord for et veggmontert skjerm. Viser klokke, vær, kalender, live avganger fra Entur, dagslys, pollen, luftkvalitet, nedtellinger og nyheter. All konfigurasjon skjer i /admin — ingen filer å redigere.

Widgets

  • Klokke + vær — tid, dato, temperatur og 9-timers prognose
  • Kalender — flere visninger: neste 7 dager, denne uken, måneden, eller bare i dag
  • Avganger — Entur live, valgte linjer, gangtid per stopp
  • Neste avgang — den tidligste du faktisk rekker basert på gangtid
  • Ut døra — om du trenger jakke / paraply / lue, derivert fra vær
  • Dagslys — soloppgang / solnedgang + progressbar
  • Luft ute — luftkvalitet i din gate (met.no airqualityforecast)
  • Pollen — bjørk, gress, or, burot, oliven, ambrosia (Open-Meteo)
  • Nedtelling — egne datoer (bryllup, ferie, etc.)
  • Nyheter — RSS fra NRK, VG, eller egne kilder

Layout & playlist

Hver layout er et fritt rutenett (12×8 i liggende, 8×12 i stående som standard). Dra topplinjen på en widget for å flytte, dra hjørnet for å endre størrelse. Nye widgets plasseres i første ledige plass. Dra én oppå en annen for å bytte plass.

Du kan ha flere lagrede layouts — dupliser, navngi, og bytt mellom dem. Slå på Playlist for at skjermen skal rotere mellom valgte layouts automatisk (standard hvert 5. minutt).

Live-oppdateringer

Når du klikker Lagre i /admin pushes endringene umiddelbart til dashbord-fanen via Server-Sent Events. Ingen reload nødvendig — skjermen kan stå urørt i gangen mens du justerer fra telefonen på samme nettverk.

Tema

Åtte innebygde temaer (Mørk, Lys, Papir, Mørkt papir, Skarp kontrast, Morgen, Kveld, Sol). Du kan også lage egne — sett alle 7 fargene (bakgrunn, kort, tekst, sekundærtekst, svak tekst, strek, aksent) via color-picker.

Persistence — overlever reboot og deploy

Innstillinger lagres i data/settings.json som default. Denne mappen er .gitignored, så git pull + pnpm build tar ikke filen — den ligger urørt og lastes automatisk når serveren starter.

For å lagre utenfor prosjektkatalogen, sett env-variabel:

HALLWAY_DATA_DIR=/var/lib/hallway pnpm start

For hver lagring beholdes også en backup som settings.bak.json. Hvis hovedfilen blir korrupt, lastes backup automatisk.

I admin-panelet finner du Sikkerhetskopi-seksjonen med eksport- og importknapper for full JSON-snapshot.

Eksterne API-er

  • met.no — vær, dagslys, luftkvalitet (ingen nøkkel, kun User-Agent)
  • Entur — avganger og stopp-søk (kun ET-Client-Name)
  • Open-Meteo — pollen (gratis, ingen nøkkel)
  • ICS-feeds — Google Calendar, iCloud, Outlook, Fastmail, m.fl. (webcal:// støttes)
  • RSS-feeds — alle standard RSS for nyhets-widgeten

Distribusjon

Raspberry Pi (anbefalt for vegg)

# på Pi
git clone <repo>
cd hallway-dashboard
pnpm install
pnpm build
pnpm start
# pek Chromium kiosk-modus mot http://localhost:3000

Se scripts/kiosk-setup.md for systemd + Chromium-kiosk-oppsett, inkludert portrait-rotasjon.

Docker

Mount et persistent volum: -v /opt/hallway/data:/data -e HALLWAY_DATA_DIR=/data.

Vercel / serverless

Filebasert lagring overlever ikke kald-start. Bytt ut lib/storage.ts til å bruke Vercel KV eller annen persistent KV. Bare den filen trenger endring.

Sikkerhet

/admin har ingen autentisering. Design-antagelsen er at Pi-en står på ditt private hjemmenett. Eksponér ikke port 3000 mot internett. iCal-lenker gir lese-tilgang — behandle dem som passord. Gen-er en ny i Google/iCloud-innstillingene hvis en lenke lekker.