versjon 3, alt sammen

11. september 2026 devlogfediversego

versjon 3, alt sammen

Versjon 3 hadde et kart med fire retninger på seg: bloggen blir lest, siden blir et sted, systemet holder øye med seg selv, og hele greia blir varig, uten brak. Den første lille bølgen kom forrige uke. Dette er alt det andre, åtte endringer, landet sammen.

Bloggen blir lest. Nå kan du abonnere på e-post, enten på hvert innlegg eller et ukentlig sammendrag, med et bekreftelsessteg og avmelding med ett klikk som aldri ber deg logge inn. Bloggen snakker også webmention nå, så når jeg lenker til noens side, hører serveren deres om det, og når noen lenker hit, ser jeg det i en moderasjonskø før noe vises på et innlegg. Og den store nyheten: bloggen er på fediverset. Du kan følge den fra Mastodon eller alt som er kompatibelt, og publiserte innlegg havner i feeden din som en note. Alt som kommer tilbake, svar, likes, boosts, holdes privat for at jeg skal lese det, og blir aldri publisert automatisk. Federasjonsdelen kjører som sin egen lille tjeneste, så hvis jeg noen gang vil bli kvitt den, stopper jeg én container, og resten av siden merker ingenting.

Siden blir et sted. Nå finnes det en turseksjon, turer, der hver tur er et GPX-spor tegnet på et ekte kart, med distanse og stigning regnet ut fra filen når jeg laster den opp. Kartflisene kommer fra OpenStreetMap og lastes bare inn på de sidene, noe personvernsiden nå forklarer. Det finnes en treningslogg, enkle strukturerte oppføringer med en lenke til et innlegg når et løp fortjener ord, og innlegget får en liten statistikkboks tilbake. Og tegningene fikk endelig sin egen seksjon i stedet for å gjemme seg inne i fotoalbum.

admin-dashboardsiden med feil- og trafikkdiagrammer

Den nye dashboards-siden: feil, trafikk, mest leste innlegg, og når hver tjeneste sist sendte en loggline.

Systemet holder øye med seg selv. Adminpanelet fikk dashboards tegnet fra analysedataene og den sentrale logglagringen, håndlagde SVG-diagrammer, ingen diagram-bibliotek. Ved siden av ligger varsling: hver tjeneste sender nå et hjerteslag, og hvis en av dem blir stille, eller feil begynner å hope seg opp, får jeg en e-post. Konfigurert fra innstillingspanelet, av som standard, som alt annet her.

Publiser-knappen er der hele bølgen møtes. Å publisere et innlegg legger nå nyhetsbrev-e-poster i kø, legger webmentions i kø for hver eksterne lenke i det, og varsler følgere på fediverset, alt på samme statusovergang:

if status == "published" && previousStatus != "published" {
	if err := s.Queries.EnqueueNewsletterPost(ctx, updated.ID); err != nil {
		recordErrorLog(r, http.StatusInternalServerError, "internal_error", ...)
	}
	if canonicalURL, err := s.Settings.GetString(ctx, "site.canonical_url"); err == nil {
		webmention.EnqueueOutbound(ctx, s.Queries, updated.ID, canonicalURL, updated.Content)
	}
	go s.notifyFederationPublish(updated)
} else if previousStatus == "published" && status != "published" {
	go s.notifyFederationUnpublish(updated)
}

Åtte grener som smelter sammen til én, det er der feilene bor, og jeg samlet meg noen. To funksjoner hadde tatt samme databasemigreringsnummer, noe migreringsverktøyet behandler som to filer som begge insisterer på at de er steg 21; en av dem ble omnummerert før noe ble kjørt. Den nye federasjonstjenesten gjentok nesten en gammel driftsstans: for noen måneder siden lå mailtjenesten stille og deaktivert i produksjon fordi én miljøvariabel var tom, og federasjonskoblingen hadde nøyaktig samme tom-som-standard-variabel som ventet på å gjøre nøyaktig det samme. Fanget det opp før utrulling denne gangen. Og selve utrullingskonfigurasjonen hadde glemt at den nye tjenesten fantes, noe som ville fått serveren til å prøve å bygge kildekode den ikke har. Læren versjon 2 lærte meg, holder fortsatt: at koden er riktig er halve jobben, koblingene rundt er den andre halvparten.

Det er versjon 3. Bloggen kan følges, abonneres på, og lenkes til. Siden har steder å gå, løpe og tegne. Og når noe går i stykker klokken tre om natten, sender den meg en e-post i stedet for å vente på å bli oppdaget.

Følg denne bloggen på fediverset: @blog@blog.bjornmagne.com

0 kommentarer

Logg inn for å kommentere.

Logg inn

Glemt passord?

Ingen konto?