Plattformen

Bygget for de største løpsdagene.

Racedays Photo er laget for øyeblikket der mange fotografer laster opp samtidig, tusenvis av løpere søker etter bildene sine og alt må fungere på første forsøk. Her er hvordan systemet er bygget — og hvorfor det tåler trykket.

17 842bilder fra ett løp (Hytteplanmila 2026)
≤30prosesseringsnoder som skalerer automatisk
~540/minbilder i minuttet i full skala
10+fotografer på Hytteplanmila — ingen øvre grense

Fra kamera til løper

Originalen lagres før noe annet skjer. Resten — lesing av startnummer, ansikter, vannmerke og galleri — kjøres fra en kø som overlever omstarter.

Kamera via FTP
Racedays Photo-appen
Nettleser
Objektlagring (originaler)
Varig jobbkø
Prosesseringsnoder · 1–30
AI: startnummer + ansikt
Database
Galleri på CDN

01 · Opplasting

Bildene går rett til lagring — ikke gjennom en flaskehals.

Hver fil lastes opp direkte til objektlagring med en tidsbegrenset, signert adresse. Serverne våre står aldri i veien for selve filoverføringen, så det finnes ingen grense for antall fotografer: én fotograf påvirker aldri en annen, og opplastingen går like fort med 3 som med 30.

01

Kamera rett til galleriet

Kameraer med FTP sender bildene mens fotografen jobber. Hver fil legges i en egen innlesingskø med nye forsøk, og et sveip hvert andre minutt plukker opp filer som av en eller annen grunn ikke ble behandlet.

02

Appen tåler dårlig dekning

Bilder tatt i appen lagres først på telefonen og lastes opp i bakgrunnen. Mister fotografen dekning i skogen, venter bildene trygt og sendes når nettet er tilbake.

03

Trygge nye forsøk

Hvert bilde får et SHA-256-fingeravtrykk. Sendes samme fil to ganger — fordi mobilnettet falt midt i et svar — gjenkjennes den, og det blir aldri duplikater i galleriet.

02 · Skalering

Kapasiteten følger løpet ditt automatisk.

Plattformen vet når løpet starter og hvor mange som deltar. Den skalerer opp før trykket kommer, og ned igjen når jobben er gjort — uten at noen må trykke på en knapp.

01

Dimensjonert etter deltakere

Antall prosesseringsnoder og databasestørrelse velges ut fra deltakerantallet — fra én node for små løp til 30 noder for løp med over 30 000 deltakere. Full kapasitet settes fra to timer før start.

02

Skalerer på køen

Kommer det mer enn forventet, øker kapasiteten trinnvis etter hvor mange bilder som venter: fra 2 til 30 noder. Opp går umiddelbart; ned først etter ti rolige minutter.

03

Databasen er klar før løpet

Databasen endres aldri midt i en kø. Størrelsen settes før opplastingen starter, og antall samtidige prosesser holdes under det databasen tåler — så den aldri blir flaskehalsen.

03 · Ingen tapte bilder

Et bilde som er lastet opp, er et bilde som blir levert.

Det verste som kan skje på en løpsdag, er at et bilde forsvinner. Hele kjeden er bygget for at det ikke skal skje — også når noe går galt underveis.

01

Originalen først

Originalfilen ligger i objektlagring før behandlingen starter. Alt annet — forhåndsvisning, vannmerke, søk — kan lages på nytt fra den.

02

Køen overlever omstarter

Jobbene ligger i en varig kø, ikke i minnet til én server. En omstart eller ny versjon midt i løpet betyr bare at en annen node tar over jobben, med automatiske nye forsøk og økende ventetid.

03

AI-tjenesten nede? Bildet publiseres likevel

Svarer ikke AI-lesingen av startnummer, publiseres bildet uten nummer og settes på en egen venteliste. Så snart tjenesten svarer igjen, leses bildene på nytt automatisk. Vi bytter aldri til en dårligere leser som gir feil numre.

04 · Oppetid

Galleriet holder seg oppe, uansett hvor travelt det er bak kulissene.

Det løperne ser og det som behandler bilder, er skilt fra hverandre. En tung kø med bilder gjør ikke galleriet tregere, og en feil i behandlingen tar ikke ned søket.

01

Adskilte deler

Nettsiden, galleriet og søket kjører på en globalt distribuert webplattform. Bildebehandlingen kjører på egne noder i en egen tjeneste. Den ene kan ha det travelt uten at den andre merker det.

02

Kretsbrytere

Feiler en ekstern tjeneste gjentatte ganger, pauses kallene en kort stund i stedet for å hamre løs. Systemet roer seg selv ned og tar seg opp igjen av seg selv.

03

Bilder via CDN

Ferdige bilder serveres fra et CDN nær løperen, med paginering i galleriet — så ti tusen løpere som åpner galleriet samtidig er et normalt øyeblikk, ikke et unntak.

05 · Søk

Løperne finner seg selv på sekunder.

Hvert bilde leses av AI for startnummer og ansikter. Løperen søker med startnummer, navn eller en selfie — og får bildene sine fra hele løypa.

01

AI som leser startnummer

Også delvis skjulte nummer leses — men bare når lesingen passer nøyaktig ett nummer i startlisten. Heller ingen tagg enn feil tagg.

02

Ansikt kobler resten

Ansikter grupperes per person. Et nummer som er bekreftet på flere bilder, spres til bildene der skiltet er skjult — aldri til et ansikt der det synlige nummeret sier noe annet.

03

Koblet til tidtakingen

Startlister og resultater hentes automatisk fra Racedays, EQ Timing og Ultimate — hvert kvarter mens løpet pågår — så navn, distanse og sluttid følger bildene.

06 · Økonomi og personvern

Ryddig pengeflyt og personvern bygget inn.

Arrangøren er selger av bildene sine. Hvert kjøp splittes automatisk i betalingsløsningen, og persondata behandles i EU.

01

Splittet betaling

Betalingen tas gjennom Dintero og splittes per ordrelinje: Racedays tar 10 % av salget, resten er arrangørens og utbetales månedlig. Salget stopper aldri mens avtalen godkjennes.

02

Gratis eller betalt

Arrangøren velger selv: gratis nedlasting (gjerne sponsorert), eller salg med egne priser. Statistikken viser nedlastinger og salg per distanse og klasse.

03

GDPR i EU

Ansiktsdata brukes kun til søk innenfor løpet, behandles i EU og slettes når bildene eller løpet slettes.

Spørsmål store arrangører stiller oss

Over ti fotografer lastet opp 17 842 bilder fra løpet med rundt 4 000 deltakere, mange av dem via FTP rett fra kameraet. Systemet skalerte automatisk på løpsdagen, bildene ble søkbare fortløpende under løpet, og hver person som lastet ned bilder tok i snitt 5,8 bilder. Løpsrapporten ligger på photo.racedays.run/blog/hytteplanmila-2026.

På Hytteplanmila 2026 jobbet over ti fotografer langs løypa — men det finnes ingen øvre grense. Hver fotograf laster opp direkte til lagring, så én fotograf påvirker aldri en annen, og det går like fort uansett hvor mange dere er. Arrangøren kan bruke egne eller lokale fotografer, eller Racedays kan introdusere profesjonelle fotografer. Alle laster opp til det samme løpet; arrangøren inviterer dem i panelet og ser hvem som har lastet opp hva.

Bildene behandles fortløpende mens de lastes opp — også under løpet. Med FTP sendes bildene fra kameraet mens fotografen jobber. Hvert bilde går gjennom en kø som leser startnummer og ansikter; plattformen skalerer antall noder etter køen, så ventetiden holdes kort også når mange laster opp samtidig.

Ja. Kapasiteten settes automatisk ut fra deltakerantallet (opptil 30 parallelle prosesseringsnoder for de største løpene) og øker videre etter hvor mange bilder som venter i køen. I full skala behandles rundt 540 bilder i minuttet, altså over 30 000 i timen. Opplasting går direkte til objektlagring, så det er ingen grense for hvor mange fotografer som laster opp samtidig.

Arrangøren er selger. Betalingen tas gjennom Dintero og splittes automatisk per kjøp: Racedays tar 10 % av salget, og arrangøren får resten utbetalt månedlig. Betalingsgebyret trekkes fra arrangørens andel. I tillegg avtales en bildeavgift per løp. Løpet kan også ha gratis nedlasting, for eksempel sponset.

Originalene lagres før behandlingen starter, og jobbene ligger i en varig kø med automatiske nye forsøk, så en omstart mister ingen bilder. Er AI-lesingen av startnummer nede, publiseres bildene uten nummer og leses automatisk på nytt når tjenesten er tilbake. Galleriet kjører adskilt fra bildebehandlingen og påvirkes ikke av en travel kø.

Har du et stort løp på gang?

Fortell oss om deltakere, distanser og fotografer, så setter vi opp kapasiteten før løpsdagen.