Opprinnelig var bloggoppsettet mitt planlagt som et rent IPv6-prosjekt via WireGuard, ettersom det hele kjøres på en hjemmeserver (gratis IPv6-adresser kan man forresten få hos route64.org). For å øke tilgjengeligheten har jeg nå lagt til en ekstern IPv4-proxy (takk til @Larvitz).
I den forbindelse oppstod det umiddelbart SSL-problemer: Siden både A- og AAAA-oppføringene opprinnelig gikk via proxyen, feilet Let's Encrypt-valideringen på serveren min.
Løsningen: «IPv6-hacket»
Løsningen var å peke AAAA-oppføringen eksplisitt direkte til serverens WireGuard-IP, i stedet for å rute den via proxyen også.
- Domene:
blog.burningboard.org
- A-Record (Proxy):
194.28.98.217
- AAAA-Record (Server):
2a11:6c7:f05:a8::2 (WireGuard)
Gjennom denne direkte AAAA-oppføringen til min WireGuard-IP, når Let’s Encrypt fortsatt serveren min direkte via IPv6 (siden AAAA-oppføringer prioriteres som standard) og utsteder SSL-sertifikatet. IPv4-trafikken blir videresendt kryptert fra proxyen til meg.
Den endelige konfigurasjonen
For at kommunikasjonen skal fungere knirkefritt, måtte vi tilpasse Caddy-serverne:
1. På min server (NixOS, blog.nix)
For at de ekte besøks-IP-ene skal ankomme korrekt og ikke bli overskrevet av proxyens IP, må denne markeres som tiltrodd:
services.caddy.globalConfig = ''
servers {
trusted_proxies static 2a06:9801:1c:1000::10
}
'';
2. På den eksterne proxyen (Caddy)
For at proxyen skal kontakte serveren min korrekt via HTTPS, må den sende med vertsnavnet (SNI):
reverse_proxy [https://[2a11:6c7:f05:a8::2]:443](https://[2a11:6c7:f05:a8::2]:443) {
header_up Host {host}
transport http {
tls_server_name blog.burningboard.org
}
}
Bloggen er nå tilgjengelig via både IPv4 og IPv6, er sikkert kryptert, og hjemme-IP-en min forblir fortsatt privat! 🚀
Det viktigste først: De vante Markdown-filene forblir basisen – jeg er rett og slett en stor fan av denne ukompliserte løsningen. Men under panseret har det skjedd mye:
Jeg har skrudd litt på oppsettet:
📂 MD-filer: Bloggstrukturen forblir enkel på Markdown-basis.
🌍 Mer globalt enn noen gang: Bloggen min støtter nå oversettelser til 43 språk. Ja, inkludert klingonsk! 🖖 (Qapla'!)

Planen var en helautomatisk sanntidsoversettelse basert på nettleserens språkgjenkjenning. Spoiler: Det fungerte bare delvis. Man merker: KI er imponerende, men ennå ikke helt «der» vi gjerne vil ha den.
Løsningen: Nå oversetter jeg rett og slett hvert innlegg på forhånd til alle de fastsatte språkene, noe som også er betydelig bedre for søkemotorer (SEO). Hvis den automatiske gjenkjenningen ikke skulle fungere, kan dere manuelt velge foretrukket språk via globus-ikonet, som deretter lagres enkelt via en informasjonskapsel (cookie).
Oversettelsene utføres nå med Gemini 3 Flash, noe som gir overraskende gode resultater. Man bør imidlertid følge nøye med på hva KI-en gjør: I den første bulk-gjennomgangen ble også taggene feilaktig oversatt, noe som selvfølgelig ikke var planlagt.
Koden er fortsatt tilgjengelig (bare send meg en melding hvis du er interessert) 👍 Men vær oppmerksom på at systemet nå krever en egen Gemini API-nøkkel 🔑.
Jeg har på kort varsel flyttet bloggen min fra WriteFreely til en egenutviklet løsning: MD-Blog (MD står selvfølgelig for Markdown). Utløseren var en mislykket oppdatering av det gamle systemet – men til slutt ble det det perfekte dyttet for å forenkle alt radikalt og få full kontroll over designet.
Kjernen er enkle Markdown-filer i data/-mappen, som konverteres til moderne HTML i sanntid. Resultatet er lynraskt, krever ingen database og ser takket være et eget designsystem (inkludert mørk modus) akkurat slik ut som jeg hadde sett for meg. Til og med en moderne Mastodon-delingsknapp er nå på plass.
Hvis du er interessert i koden eller det enkle oppsettet, er det bare å ta kontakt med meg på Mastodon!