Dove gira questo sito
Un sito che ti invita a scendere dal cloud deve dire dove sta lui. Eccolo, senza ritocchi.
Cosa è in casa
- I server: alcuni server virtuali presso un fornitore europeo, riuniti in un piccolo cluster Kubernetes che gestisco io. Se uno si ferma, i servizi si spostano sugli altri.
- Il sito: un insieme di pagine statiche. Niente database, niente server applicativo, niente pannello di amministrazione: poco da rompere e poco da violare.
- Le statistiche di visita: raccolte sullo stesso cluster, senza cookie e senza cedere dati a nessuno.
- Il software: tutto open source, dal sistema che genera le pagine a quello che le serve.
Lo stack, pezzo per pezzo
Per chi vuole i nomi. Sono tutti progetti open source, e ognuno si può sostituire con un altro senza dover chiedere il permesso a nessuno.
Il sito
- Hugo genera le pagine a partire da testi scritti in Markdown.
- nginx le serve, dentro un container senza privilegi di amministratore.
- Umami conta le visite, senza cookie e senza tracciare le persone.
Il cluster
- k3s, una distribuzione leggera di Kubernetes, coordina i server e decide dove far girare ogni servizio.
- Traefik riceve le richieste e le smista al servizio giusto.
- cert-manager chiede e rinnova da solo i certificati per l’HTTPS, rilasciati da Let’s Encrypt.
- ExternalDNS crea i record DNS quando nasce un nuovo sito, senza passare dal pannello del fornitore.
Il rilascio
- Flux tiene il cluster allineato a un repository Git: la configurazione di tutto sta scritta lì, e ogni modifica lascia traccia.
- Renovate controlla se esistono versioni nuove dei componenti e propone l’aggiornamento. Le correzioni minori entrano da sole, il resto aspetta che io lo approvi.
Cosa non è in casa, ancora
- Cloudflare, davanti ai server. Protegge da attacchi e mette in cache le pagine. Vuol dire che le richieste passano da un’azienda americana, ed è una scelta di comodo che sto ripensando: ci sarà un articolo su questo.
- GitHub, dove stanno il codice del sito, le build e le immagini pronte da installare. Il piano è spostare tutto su un’istanza Forgejo mia, con una copia di sicurezza esterna.
Perché lo dico
Perché scendere dal cloud non è un salto, è una scala. Si scende un gradino alla volta, partendo da quello che costa meno e rende di più. Questo sito è a metà scala, e lo racconterò man mano che scende.