Nettsida til Hallvard har over 53 millioner poster

- Tilgang til data fra det offentlige er viktig for et fungerende demokrati, mener skaperen av Norske-postlister.no.

Hallvard Nygård står bak borgerjournalistikk-prosjektet Norske-postlister.no. 📸: Privat
Hallvard Nygård står bak borgerjournalistikk-prosjektet Norske-postlister.no. 📸: Privat Vis mer

Hvorfor skal det være så vanskelig å få innsyn i hva myndighetene driver med? Det stussa 31 år gamle Hallvard Nygård fra Sokndal utenfor Stavanger på, som til daglig jobber som utvikler og arkitekt i Storebrand.

Dermed satt han i gang med hobbyprosjektet som utviklet seg til Norske-postlister.no.

Norske myndigheter er nemlig lovpålagt å føre journal over alle innkommende og utgående dokumenter. De er også pålagt å publisere dem i en offentlig journal, en såkalt postliste.

Norske-postlister.no samler og strukturerer så mange av disse listene som mulig, og hjelper folk å søke i dem og få innsyn.

Da Norske-postlister.no ble lansert i 2019 var den allerede største i Norge på antall journalposter og forskjellige kilder. Bare i 2019 ble 5,5 millioner journalposter lagret, og basen inneholder foreløpig svimlende 53 millioner poster.

Med slike tall kan man lure på hvordan tjenesten henger sammen.

Irritasjon over Mattilsynet

- For min del startet det med en irritasjon over Mattilsynet, som kun hadde tre måneders historikk, forteller Nygård til kode24.

Han eier nemlig et småbruk, og ønsket å se mer historikk for å finne rapporter og dokumenter som var relevante for å forbedre stallen på bruket.

Det hele begynte med en enkel scraper som lagret data i en Elasticsearch-database. I starten brukte han Kibana for å titte på dataene. Senere kom en webportal på plass og en integrasjon med Mimes Brønn; en platform for å hjelpe folk å få innsyn i dokumenter fra myndighetene.

Fra Mattilsynet bar det videre til kommunaldata, som hentes inn fra forskjellige innsynsportaler.

Slik ser Nygård sin data ut i Kibana. 📸: Privat
Slik ser Nygård sin data ut i Kibana. 📸: Privat Vis mer

PHP og eget JSON-format

Nygård forteller at Norske-postlister.no i dag har 6 ulike scrapere som henter data fra 600-700 kilder. Hver scraper laster ned HTML eller JSON og lagrer det på disk for caching. Scraperen leser så ut data og lagrer de med Nygårds eget JSON-format.

Scraperne er skrevet i PHP med litt Python, Javascript, Bash og Chrome headless, forteller Nygård.

- Jeg har også script som henter ned hele kommunale nettsider for å lete etter PDF-er. Dette gjøres med wget, som rekursivt henter ned nettstedet.

«Et poeng er å bruke prosjektet som en teknologisk lekegrid.»

Hittil har systemet hentet ned og detektert postlister i mer enn 33.000 PDF-er, som også blir overført til Nygårds JSON-format. Etter scraperne er ferdig, blir dataene beriket med organisasjonsinformasjon fra Brønnøysundsregistrene, samt vasket for person-informasjon. Deretter blir det lagret i Elasticsearch.

Selve portalen er serverside-rendret PHP, som gjør kall over HTTP til Elasticsearch.

- Et poeng er å bruke prosjektet som en teknologisk lekegrid. Jeg har noe konstruktivt å bygge, samtidig som jeg kan velge og vrake blant teknologier og måter å gjøre det på. Fokuset mitt har vært på skalering, flyt av data og kjøremiljø, mer enn språk og hvilken frontendteknologi som blir brukt, forteller Nygård.

Slik henger systemet til Hallvard sammen. 📸: Privat
Slik henger systemet til Hallvard sammen. 📸: Privat Vis mer

Fra Digital Ocean til PC under pulten

Nygård forteller at første versjon av Norske-postlister.no kjørte på en virtuell privat server, såkalt VPS, hos Digital Ocean.

- Jeg forsøkte med 1 gigabyte RAM, men måtte fort øke til 2 gigabyte, da var det cirka én million dokumenter og datapunkter i Elasticsearch og omkringliggende tjenester.

Neste versjon av siden havnet dermed et helt annet sted: Under pulten på hjemmekontoret til Nygård.

- Versjon to kjørte på en gammel boks. Den hadde 16 gigabyte RAM, men det var for lite til å kjøre scrapere, laste inn Elasticsearch og kjøre frontend på likt. Det ble mye out of memory exception og prosesser som ble drept, forklarer utvikleren.

Etter lansering av sida skjønte Nygård at det trengtes kraftigere skyts, og søkte om midler til driftsstøtte fra Fritt Ord. Underveis i søknaden kom han frem til at å drifte Elasticsearch i skyen med redundans og 16 til 32 gigabyte minne, fort kom til å koste opp mot 125.000 kroner i året. Dermed ble løsningen å drifte selv.

- Personlig synes jeg det kostet alt for mye, og estimerte heller hva det ville koste å drifte selv. Da kom jeg til en prislapp på 30.000 kroner i året.

Støtten ble innvilget, og nå tjenes Norske-postlister.no fra et par brukte datamaskiner, samt et knippe andre bokser for lastbalansering.

Hallvard sitt hjemmekontor hvor Norske-postlister.no blir skapt. 📸: Privat
Hallvard sitt hjemmekontor hvor Norske-postlister.no blir skapt. 📸: Privat Vis mer

Difi ville stoppe tjenesten

Nygård forteller at han har bygget nettstedet for vanlige innbyggere - enten de ramler inn fra et Google-søk eller er aktive og graver i saker som engasjerer dem.

Fokus har vært å lage tjenester han selv ønsker å ha når han bedriver borgerjournalistikk, og at tilgang for journalister og ansatte i offentlige etater er mer sekundærfokus.

«Difi har forsøkt å stoppe henting av data fra deres tjeneste einnsyn.no.»

- Ut fra logger ser jeg blant annet at Avinor, Statens Vegvesen, Mattilsynet, Oslo kommune og mange flere bruker systemet, sier Nygård.

Tilbakemeldingene har stort sett har vært gode: Journalister er imponerte over datamengdene, og noen lokalaviser er ivrige og melder fra om data som mangler. Men det er én spesiell dårlig tilbakemelding Nygård trekker frem.

- Difi har forsøkt å stoppe henting av data fra deres tjeneste einnsyn.no. Advokaten deres konkluderte med at de ikke hadde noen sak. Men de tipset likevel Datatilsynet om at jeg kanskje brøt personopplysningsloven.

Nye kommuner skaper krøll

Nygård ser ikke ut til å gå tom for arbeidsoppgaver med hobbyprosjektet sitt i første omgang.

- Noen har vedtatt å slå sammen en masse kommuner, og det skaper utfordringer og jobb, flirer han.

Han jobber også med overvåking av datafeeder som leverte data foregående måned, men ikke inneværende, samt å få inn flere kommuner og scrape flere PDF-er.

Om kort tid blir også Norske-postlister.no mer alene på det åpne nettet. "Rivalen" innsyn.no skal nemlig flyttes fra Fædrelandsvennen til Faktisk.no, og bli en lukket portal for journalister. Nygård har dialog med dem om datadeling, og håper å få det på plass i 2020.

For at Norske-postlister.no har en verdi i Norge er Nygård sikker på.

- Tilgang til data fra det offentlige er viktig for et fungerende demokrati med lav korrupsjon. Nettstedet er med på å skape mer åpenhet og innsyn i hva norske kommuner, departement, etater, tilsyn og så videre holder på med.

- Store mediesaker som skaper debatt og endringer har ofte grunnlag i innsyn i dokumenter eller databaser hos en myndighet. Tilsvarende kan vanlige innbyggere også gjøre, sier Nygård.

- Dette ønsker jeg å støtte opp om.