Blogom // Digitális archívum

Gondolatok, projektek és technikai jegyzetek

Bejegyzések megjelenítése ezzel a címkével: #md-blog Összes megjelenítése ×

Eredetileg a blog-beállításomat egy tiszta IPv6-projektnek terveztem WireGuardon keresztül, mivel az egész egy otthoni szerveren fut (ingyenes IPv6-címeket egyébként a route64.org oldalon lehet kapni). Az elérhetőség növelése érdekében most beiktattam egy külső IPv4-proxyt (köszönet @Larvitz-nak).

Ezzel azonban azonnal SSL-problémák adódtak: mivel eredetileg mind az A, mind az AAAA rekord a proxyn keresztül futott, a Let's Encrypt hitelesítés meghiúsult a szerveremen.

A megoldás: Az „IPv6-hack”

A megoldás az volt, hogy az AAAA-bejegyzést kifejezetten a szerverem WireGuard IP-címére irányítottam, ahelyett, hogy azt is a proxyn keresztül vezettem volna.

  • Domain: blog.burningboard.org
  • A-rekord (Proxy): 194.28.98.217
  • AAAA-rekord (Szerver): 2a11:6c7:f05:a8::2 (WireGuard)

Ezzel a közvetlen, a WireGuard IP-mre mutató AAAA-bejegyzéssel a Let’s Encrypt továbbra is közvetlenül eléri a szerveremet IPv6-on keresztül (mivel az AAAA-rekord alapértelmezés szerint prioritást élvez), és kiállítja az SSL-tanúsítványt. Az IPv4-forgalmat a proxy titkosítva továbbítja felém.

A végleges konfiguráció

Annak érdekében, hogy a kommunikáció zökkenőmentesen működjön, módosítanunk kellett a Caddy szervereket:

1. A szerveremen (NixOS, blog.nix)

Annak érdekében, hogy a látogatók valódi IP-címei helyesen érkezzenek meg, és ne a proxy IP-címe írja felül őket, a proxyt megbízhatóként kell megjelölni:

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

2. A külső proxyn (Caddy)

Ahhoz, hogy a proxy megfelelően, HTTPS-en keresztül szólítsa meg a szerveremet, el kell küldenie a gépnevet (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
    }
}

A blog mostantól IPv4-en és IPv6-on is elérhető, biztonságosan titkosított, és az otthoni IP-címem továbbra is privát marad! 🚀

A legfontosabb elöljáróban: A megszokott Markdown fájlok maradnak az alapok – egyszerűen nagy rajongója vagyok ennek a sallangmentes megoldásnak. De a motorháztető alatt sok minden történt:

Csavartam egyet a beállításokon:

📂 MD-fájlok: A blog szerkezete továbbra is egyszerű, Markdown-alapú marad.

🌍 Globálisabb, mint valaha: A blogom mostantól 43 nyelven támogatja a fordításokat. Igen, beleértve a klingont is! 🖖 (Qapla'!)

A terv egy teljesen automatikus, a böngésző nyelvfelismerésén alapuló valós idejű fordítás volt. Spoiler: Csak részben működött. Érezhető: az MI lenyűgöző, de még nincs teljesen „ott”, ahol látni szeretnénk.

A megoldás: Mostantól egyszerűen minden bejegyzést előre lefordítok az összes meghatározott nyelvre, ami a keresőoptimalizálás (SEO) szempontjából is sokkal jobb. Ha az automatikus felismerés esetleg nem működne, a földgömb ikon segítségével manuálisan is beállíthatjátok a preferált nyelvet, amelyet a rendszer egyszerűen, sütik (cookie) segítségével tárol.

A fordításokat mostantól a Gemini 3 Flash végzi, ami meglepően jó eredményeket produkál. Azonban érdemes az MI körmére nézni: az első tömeges futtatás során tévedésből a tageket is lefordította, ami természetesen nem így volt tervezve.

A kód továbbra is elérhető (érdeklődés esetén írjatok üzenetet) 👍 De vegyétek figyelembe, hogy a rendszernek mostantól saját Gemini API kulcsra 🔑 van szüksége.

Rövid úton átállítottam a blogomat WriteFreely-ről egy saját fejlesztésre: ez az MD-Blog (az MD természetesen a Markdown rövidítése). A kiváltó ok a régi rendszer egy sikertelen frissítése volt – végül azonban ez adta meg a tökéletes lökést ahhoz, hogy mindent radikálisan leegyszerűsítsek, és teljes kontrollt szerezzek a dizájn felett.

A rendszer szíve a data/ mappában található egyszerű Markdown-fájlok, amelyek futásidőben alakulnak át modern HTML-kóddá. Az eredmény villámgyors, adatbázis nélkül működik, és a saját dizájnrendszernek köszönhetően (beleértve a sötét módot is) most pontosan úgy néz ki, ahogy elképzeltem. Még egy modern Mastodon megosztás gomb is helyet kapott benne.

Ha érdekel titeket a kód vagy ez a letisztult rendszer, keressetek bátran Mastodonon!