De la WriteFreely la BSSG
Saluton!
Site-ul acesta tocmai a trebuit printr-o schimbare...
Mai devreme anul acesta, nu mă întrebați de ce, mi-a venit ideea de a scrie în limba română despre Linux, BSD-uri și așa mai departe. În cele din urmă, mi-am făcut curaj și am publicat ceva pe un profil separat de pe server-ul meu de Hubzilla (platformă descentralizată de pe protocolul ActivityPub, compatibil cu Mastodon ș.a.; are o mie și una de opțiuni, mai puțin exportarea automată de RSS/Atom feeds!). Imediat ce mi-am împărtășit textul pe instanța Matrix a comunității Linux Romania, mi s-a spus că scriu bine, doar că ar fi nemaipomenit dacă aș avea suport RSS! Așa că am luat în pripă decizia de a face self-hosting la un alt software ActivityPub care este orientat strict către blogging și are și suport integral RSS: WriteFreely...
Primele dureri de cap le-am avut de la instalare, când versiunea Docker nu mi-a mers cum mă așteptam, sfârșind prin a rula WriteFreely de pe un utilizator separat special creat, serviciu specificat la nivel de runtime prin OpenRC (echivalentul systemd de pe Alpine Linux)... Apoi nu mi-am pus problema cât de ușor sau de greu se pot face actualizări. Am avut parte de un duș rece când am încercat să instalez cea mai recentă versiune de WriteFreely - după mai multe încercări, site-ul meu refuza în continuare să ruleze altceva decât versiunea veche...
Până la urmă, am șters WriteFreely și am luat decizia de a adopta un static site generator (SSG), intrând astfel în rând cu lumea de pe IndieWeb - în locuri precum bubbles.town, 512kb.club sau bearblog.dev sunt prezentate nenumărate asemenea site-uri statice, accesibile prin RSS, unde programatori și diverși alți oameni scriu materiale interesante (tot anul acesta, am adoptat pentru prima dată un RSS reader; citesc asemenea materiale în special de pe tableta mea veche de peste 10 ani (resuscitată cu LineageOS), pe care o mai folosesc pentru a învăța noțiuni de Emacs și Termux în general).
Prima mea alegere a fost un SSG care se numea barf și care se lăuda că este foarte minimal și ar merge și pe Alpine sau OpenBSD... Problema este că acesta se cerea compilat, iar GNU make mi-a făcut fițe... N-am mai stat să descâlcesc misterul; m-am gândit să caut alt SSG, fiindcă mă gândeam că e imposibil să nu existe ceva care să meargă out of the box, chiar și pentru cineva ca mine care rulează Alpine, care nu se folosește de systemd și nici de glibc; deși Alpine e o distribuție cunoscută și respectată, foarte mulți din spațiul Linux nu au chef decât să țintească doar Debian, Fedora ori Arch. Mai în glumă, mai în serios, mă gândesc că mi-aș putea face un portofoliu prolific pe GitHub numai cu pull requests în care să adaug la documentația diferitelor software-uri instrucțiuni de OpenRC, pe lângă cele de systemd...
Cum m-am plâns pe mastodon.bsd.cafe, cineva mi-a recomandat BSSG, un SSG creat chiar de administratorul BSD Cafe, Stefano Marinelli (care este și creierul principal din spatele littleFedi, o nouă platformă ActivityPub care urmează să fie open-sourced în următoarele săptămâni și care este optimizat pentru a rula pe aproape orice, chiar și un Raspberry Pi Zero W cu NetBSD). Există SSG-uri în diverse limbaje de programare, inclusiv Lisp, dar mi-am zis să nu fac nazuri și să încerc și acest BSSG, unde B vine de la Bash - întregul program fiind o serie de scripturi .sh, atât.
Chiar și așa, eu fiind mai bătut in cap, recunosc, am interpretat documentația greșit și m-am dus un pic prin păpușoi cu opțiunile de build și posibilitățile de deployment... Cu multă răbdare și generozitate, Stefano Marinelli însuși - îi mulțumesc și pe această cale! - mi-a răspuns în privat că este cel mai simplu să urmez succesiunea aceasta:
git clone brew.bsd.cafe/stefano/BSSG.git
cd BSSG
./bssg.sh init /website
y
nano /website/config.sh.local #înlocuiește măcar URL-ul și titlul site-ului
./bssg build
și, la final, se servește /website/output pe post de file_server direct în Caddy (asta folosesc acum în loc de Nginx), ori mai întâi faci un alt director ca website root!
Site-ul este reconstruit de fiecare dată după ce rulez:
./bssg post
BSSG mai are și niște chestii în plus, cum ar fi RAM-only mode și o oarecare integrare cu ActivityPub, dar vă las să citiți documentația dacă v-am stârnit documentația...
P.S. Cunosc pe cineva care și-a pus mâinile în cap când a auzit că m-am apucat de folosit un SSG în loc să folosesc WordPress ca "oamenii normali"! E drept că WordPress are până și un plugin pentru integrarea cu ActivityPub, jos pălăria! Dar WordPress nu este deloc minimalist și mi-e greu să cred că ar putea avea vreodată o securitate mai bună decât un site static fără conturi, creat exclusiv prin script-uri Bash...