Om å få sine egne greier på internett
For nesten seks år siden skrev jeg min aller første blogpost, hvor jeg argumenterte for at før en kaster seg hodestups inn i det siste og heteste frontendrammeverket, så burde en ha litt peiling på mer grunnleggende HTML og CSS — de fundamentale byggesteinene. Jeg har sagt mye dumt i livet, men dette er vel noe av det mer oppegående. Jeg mener fremdeles at det er en god idé, jeg er glad jeg gjorde det selv, og jeg prioriterer fremdeles å se hva som er mulig med HTML og CSS før jeg skriver Javascript for å løse en oppgave.
Men når støvet har lagt seg, tastaturet har fått hvile, og det har vært på tide å sende all denne HTML-en, CSS-en og kanskje til og med Javascripten, til andres nettlesere, da har jeg gått i akkurat samme felle som jeg advarte mot for seks år siden: Hoppet bukk over grunnmuren og kjørt rett på click-to-deploy løsninger som Netlify, Vercel, Heroku og lignende.
På et vis er det forståelig: Jeg bet allerede over for mye nytt å lære meg på en gang den gangen for lenge siden, om jeg ikke skulle tukle med serverdrift også. Og GitHub Pages bare funker!
Og senere, når jeg begynte å få betalt for å drive med utvikling,
så kom jeg som regel inn i prosjekter hvor vi enten kjørte på en Platform as a
Service, øh, -plattform, eller så var det en egen avdeling i bedriften som var
ansvarlig for deploy-pipline og Kubernetes og alt sånt. Det eneste jeg behøvde
å gjøre var å skrive git push.
Nok er nok
Jeg har i det siste funnet glede i å lære meg Clojure, og hadde hin dagen snekret sammen en pitteliten kodesnutt hvor jeg bruker http-kit og hiccup til å vise IP-en til den besøkende. Ikke noe revolusjonerende, men et lite lekeprosjekt som i alle fall lar meg dyppe tærne i Clojures web-vann og kjenne på temperaturen.
Etter hvert ville jeg ha dette på internett, og da stod (egentlig satt) jeg der: Det er ikke så mange click-to-deploy tjenester for Clojure, og jeg nekter å skrive 40 linjer Docker for 20 linjer Clojure.
Dette ble dråpen som fikk begeret til å renne over. Jeg leide billigste mulige
server fra Hetzner, sa ja takk til Debian, gav den en SSH-nøkkel, og fikk en
IP-adresse tilbake. Jeg kopierte koden over med rsync, installerte Clojure, installerte
Caddy og skrev 3 linjer konfigurasjon, satte opp
ufw for å ikke slippe inn hvem som helst hvor som helst, knotet meg gjennom
akkurat nok systemd til å få en tjeneste opp og gå men ikke nok til å ha
sterke meninger om det, og så … bare virket det?
Og når jeg først var så godt i gang så bygget jeg bloggen på min lokale maskin
(den benytter Astro til å lage en site som kun er
lange flate filer),
kopierte dist-mappen til min rykende ferske server, og la til dette i Caddyfile:
eaj.no {
root /var/www/blog
file_server
}
Så var det bare å endre litt på DNS hos min domeneregistrar, og så fungerte fader meg det også.
Og la gå, dette er kanskje ikke like beinhardt som å ha hele dritten på en Raspberry Pi skapet, men det er jo likevel litt tilfredsstillende at ordene du leser nå har sitt opphav fra en pitteliten VM i Finland. Og at neste gang jeg har et lite prosjekt jeg vil dele, så vet jeg akkurat hvordan — og SQLite er helt fint, det.
Serveren har i alle fall litt å gå på.
uptime | cut -d ',' -f 4-6
load average: 0.00, 0.00, 0.00