Mans blogs // Digitālais arhīvs

Domas, projekti un tehniskas piezīmes

Rādīt ierakstus ar tagu: #md-blog Rādīt visus ×

Sākotnēji mana bloga konfigurācija tika plānota kā tīrs IPv6 projekts, izmantojot WireGuard, jo tas viss darbojas uz mājas servera (bezmaksas IPv6 adreses, starp citu, var iegūt vietnē route64.org). Lai uzlabotu pieejamību, tagad esmu pievienojis ārēju IPv4 starpniekserveri (paldies @Larvitz).

Tomēr uzreiz radās SSL problēmas: tā kā sākotnēji gan A, gan AAAA ieraksti gāja caur starpniekserveri, Let's Encrypt validācija manā serverī neizdevās.

Risinājums: „IPv6 triks”

Risinājums bija skaidri novirzīt AAAA ierakstu tieši uz mana servera WireGuard IP, nevis sūtīt to arī caur starpniekserveri.

  • Domēns: blog.burningboard.org
  • A ieraksts (Proxy): 194.28.98.217
  • AAAA ieraksts (Serveris): 2a11:6c7:f05:a8::2 (WireGuard)

Izmantojot šo tiešo AAAA ierakstu uz manu WireGuard IP, Let’s Encrypt joprojām sasniedz manu serveri tieši caur IPv6 (tā kā AAAA ierakstam pēc noklusējuma ir prioritāte) un izsniedz SSL sertifikātu. IPv4 trafiku starpniekserveris šifrētā veidā pārsūta man.

Fināla konfigurācija

Lai saziņa noritētu bez traucējumiem, mums bija jāpielāgo Caddy serveri:

1. Manā serverī (NixOS, blog.nix)

Lai reālās apmeklētāju IP adreses tiktu saņemtas pareizi un tās netiktu aizstātas ar starpniekservera IP, tas ir jāatzīmē kā uzticams:

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

2. Ārējā starpniekserverī (Caddy)

Lai starpniekserveris pareizi sazinātos ar manu serveri, izmantojot HTTPS, tam ir jānodod resursdatora nosaukums (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
    }
}

Blogs tagad ir pieejams caur IPv4 un IPv6, tas ir droši šifrēts, un mana mājas IP adrese joprojām paliek privāta! 🚀

Svarīgākais vispirms: ierastie Markdown faili joprojām ir pamats – es vienkārši esmu liels šī vienkāršā risinājuma fans. Taču zem pārsega ir noticis daudz kas:

Esmu nedaudz pielāgojis iestatījumus:

📂 MD faili: emuāra struktūra joprojām ir vienkārša, balstīta uz Markdown.

🌍 Globālāks nekā jebkad agrāk: mans emuārs tagad atbalsta tulkojumus 43 valodās. Jā, ieskaitot klingonu valodu! 🖖 (Qapla'!)

Bija plānots pilnībā automātisks reāllaika tulkojums, pamatojoties uz pārlūkprogrammas valodas noteikšanu. Spoileris: tas darbojās tikai daļēji. Var pamanīt: MI ir iespaidīgs, taču vēl nav gluži "tur", kur mēs vēlētos.

Risinājums: tagad es vienkārši iepriekš iztulkoju katru ierakstu visās noteiktajās valodās, kas ir arī ievērojami labāk meklētājprogrammām (SEO). Ja automātiskā noteikšana kādreiz nenostrādā, varat manuāli iestatīt vēlamo valodu, izmantojot zemeslodes ikonu, un tā tiks vienkārši saglabāta, izmantojot sīkfailu.

Tulkojumi tagad tiek veikti ar Gemini 3 Flash, kas sniedz pārsteidzoši labus rezultātus. Tomēr MI ir rūpīgi jāuzrauga: pirmajā masveida apstrādes reizē kļūdaini tika iztulkoti arī tagi, kas, protams, nebija plānots.

Kods joprojām ir pieejams (ja ir interese, vienkārši uzrakstiet man ziņu) 👍 Taču ņemiet vērā, ka sistēmai tagad ir nepieciešama sava Gemini API atslēga 🔑.

Esmu ātri nomainījis savu emuāru no WriteFreely uz paša izstrādātu risinājumu: MD-Blog (MD, protams, nozīmē Markdown). Iemesls bija neveiksmīgs vecās sistēmas atjauninājums – taču galu galā tas bija lielisks stimuls, lai visu radikāli vienkāršotu un iegūtu pilnīgu kontroli pār dizainu.

Sistēmas pamatā ir vienkārši Markdown faili mapē data/, kas izpildlaikā tiek pārveidoti modernā HTML formātā. Rezultāts ir zibensātrs, darbojas bez datubāzes un, pateicoties paša izstrādātajai dizaina sistēmai (ieskaitot tumšo režīmu), tagad izskatās tieši tā, kā biju iecerējis. Tagad ir pievienota pat moderna Mastodon kopīgošanas poga.

Ja jūs interesē kods vai šī vienkāršā uzstādīšana, droši sazinieties ar mani Mastodon tīklā!