Minu blogi // Digitaalne arhiiv

Mõtted, projektid ja tehnilised märkmed

Kuva sildiga postitused: #md-blog Kuva kõik ×

Algselt oli minu blogi seadistus planeeritud puhta IPv6-projektina üle WireGuardi, kuna kogu süsteem jookseb koduserveris (tasuta IPv6-aadresse saab muide lehelt route64.org). Kättesaadavuse parandamiseks lisasin nüüd välise IPv4-proksi (tänud @Larvitz).

Sellega tekkisid aga kohe SSL-probleemid: kuna algselt suunati nii A- kui ka AAAA-kirje läbi proksi, ebaõnnestus Let's Encrypti valideerimine minu serveris.

Lahendus: „IPv6-häkk“

Lahendus oli suunata AAAA-kirje selgesõnaliselt otse minu serveri WireGuardi IP-aadressile, selle asemel et juhtida ka see läbi proksi.

  • Domeen: blog.burningboard.org
  • A-kirje (Proksi): 194.28.98.217
  • AAAA-kirje (Server): 2a11:6c7:f05:a8::2 (WireGuard)

Tänu sellele otsesele AAAA-kirjele minu WireGuardi IP-le jõuab Let’s Encrypt minu serverini jätkuvalt otse IPv6 kaudu (kuna AAAA-kirje on vaikimisi prioriteetne) ja väljastab SSL-sertifikaadi. IPv4-liiklus suunatakse proksi poolt krüpteeritult mulle edasi.

Lõplik konfiguratsioon

Sujuva suhtluse tagamiseks pidime Caddy servereid kohandama:

1. Minu serveris (NixOS, blog.nix)

Et külastajate tegelikud IP-aadressid jõuaksid kohale korrektselt ega saaks proksi IP-ga üle kirjutatud, tuleb see märkida usaldusväärseks:

services.caddy.globalConfig = ''
  servers {
      trusted_proxies static 2a06:9801:1c:1000::10
  }
'';

2. Välises proksis (Caddy)

Et proksi pöörduks minu serveri poole korrektselt HTTPS-i kaudu, peab see kaasa saatma hostinime (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
    }
}

Blogi on nüüd kättesaadav nii IPv4 kui ka IPv6 kaudu, turvaliselt krüpteeritud ja minu kodu-IP jääb sellegipoolest privaatseks! 🚀

Kõige olulisem kõigepealt: harjumuspärased Markdown-failid jäävad aluseks – olen lihtsalt selle lihtsa lahenduse suur fänn. Kuid kapoti all on palju toimunud:

Olen seadistustega veidi vaeva näinud:

📂 MD-failid: Blogi struktuur jääb lihtsale Markdowni-põhjale.

🌍 Globaalsem kui kunagi varem: Minu blogi toetab nüüd tõlkeid 43 keelde. Jah, sealhulgas klingoni keelde! 🖖 (Qapla'!)

Plaanis oli täisautomaatne reaalajas tõlge, mis põhineb brauseri keeletuvastusel. Spoiler: see töötas vaid osaliselt. On näha: tehisintellekt on muljetavaldav, kuid mitte veel päris "seal", kus me tahaksime, et see oleks.

Lahendus: Tõlgin nüüd lihtsalt iga postituse eelnevalt kõikidesse määratud keeltesse, mis on ka otsingumootorite (SEO) jaoks oluliselt parem. Kui automaatne tuvastamine ei toimi, saate maakera ikooni kaudu oma eelistatud keele käsitsi määrata, mis salvestatakse seejärel mugavalt küpsise (cookie) abil.

Tõlked tehakse nüüd Gemini 3 Flashiga, mis annab hämmastavalt häid tulemusi. Siiski tuleks tehisintellektil täpselt silma peal hoida: esimese hulgiprotsessi käigus tõlgiti ekslikult ka sildid, mis polnud muidugi nii planeeritud.

Kood on endiselt saadaval (huvi korral kirjutage mulle lihtsalt sõnum) 👍 Pange aga tähele, et süsteem vajab nüüd oma Gemini API võtit 🔑.

Viisin oma blogi lühikese etteteatamisega WriteFreely platvormilt üle enda arendatud lahendusele: MD-Blog (MD tähistab loomulikult Markdowni). Ajendiks oli vana süsteemi ebaõnnestunud uuendus – lõpuks oli see aga täiuslik tõuge kõige radikaalseks lihtsustamiseks ja täieliku kontrolli saavutamiseks disaini üle.

Süsteemi tuumaks on lihtsad Markdowni failid kaustas data/, mis muudetakse reaalajas kaasaegseks HTML-iks. Tulemus on välkskiire, toimib ilma andmebaasita ja tänu oma disainisüsteemile (sealhulgas tume režiim) näeb see nüüd välja täpselt selline, nagu ma ette kujutasin. Isegi kaasaegne Mastodoni jagamisnupp on nüüd otse olemas.

Kui teil on huvi koodi või selle lihtsa seadistuse vastu, võtke minuga julgelt Mastodoni kaudu ühendust!