Quindi vuoi configurare un web server.
Ottimo.
Questo significa che sei pronto a entrare nell’antico mondo di:
- file di configurazione,
- porte,
- log,
- permessi,
- ed errori misteriosi che appaiono solo quando sei stanco.
Ma oggi non scegliamo la sofferenza come modello operativo principale.
Oggi usiamo Caddy.
Caddy è un web server moderno che può servire file statici, funzionare come reverse proxy e gestire HTTPS automaticamente quando usi un dominio reale.
In altre parole, fa molte delle cose noiose al posto tuo.
Non tutte, ovviamente.
Questo è ancora Linux.
Non sei completamente libero.
Ma ci sei molto vicino.
Perché Caddy?
Caddy è popolare perché rende sorprendentemente semplici molte attività comuni di un web server.
Con Caddy puoi:
- servire un semplice sito statico,
- fare da reverse proxy a un’applicazione,
- usare una configurazione pulita e leggibile,
- ottenere HTTPS automatico con domini reali,
- ricaricare la configurazione senza trasformare la serata in un documentario drammatico.
Se Nginx a volte sembra leggere documenti legali scritti da un robot molto serio, Caddy sembra più tipo:
“Dimmi che sito vuoi, e proverò a non rendere tutto strano.”
Molto rinfrescante.
Installare Caddy su Linux
Installiamo Caddy su Arch Linux, Fedora e Ubuntu.
Scegli la tua distribuzione e segui i comandi.
Nessuna cerimonia spirituale richiesta.
Probabilmente.
Arch Linux: la strada coraggiosa
Su Arch Linux, l’installazione è meravigliosamente semplice.
Esegui:
sudo pacman -Syu caddy
Tutto qui.
Gli utenti Arch amano quando le cose sono semplici, perché così hanno più tempo per spiegare perché usano Arch.
Controlla che Caddy sia installato:
caddy version
Se vedi un numero di versione, Caddy è pronto.
Il tuo terminale ha approvato l’operazione.
Per ora.
Fedora: pulito, moderno e leggermente serio
Su Fedora, installa Caddy con:
sudo dnf install caddy
Poi controlla la versione:
caddy version
Fedora di solito dà l’impressione di essere lucido e professionale, come una workstation che beve espresso e legge la documentazione prima di colazione.
Caddy ci sta benissimo.
Ubuntu: qualche passo in più, perché la tradizione
Su Ubuntu, prima aggiungiamo il repository ufficiale di Caddy.
Installa i pacchetti necessari:
sudo apt update
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
Aggiungi la chiave GPG di Caddy:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
Aggiungi il repository di Caddy:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
Rendi leggibili la chiave e la lista del repository:
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
Aggiorna la lista dei pacchetti e installa Caddy:
sudo apt update
sudo apt install caddy
Ora controlla la versione:
caddy version
Se risponde, congratulazioni.
Ubuntu e Caddy ora si parlano.
Che è già più comunicazione di quella che hanno alcuni sistemi in produzione.
Creare un semplice sito web
Prima di configurare qualcosa di serio, creiamo una piccola pagina HTML.
Niente di drammatico.
Solo abbastanza per dimostrare che il server è vivo e non ci sta giudicando in silenzio.
Crea una cartella:
mkdir my_website
cd my_website
Crea un file index.html:
nano index.html
Aggiungi questo HTML:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ciao da Caddy</title>
</head>
<body>
<h1>Ciao, mondo!</h1>
<p>Questo semplice sito sta girando tramite Caddy.</p>
</body>
</html>
Salva il file.
Ora hai un sito web.
Piccolo, sì.
Ma anche Roma è iniziata con una pietra messa in un punto probabilmente sospetto.
Testare Caddy senza Caddyfile
Ora serviamo direttamente questa cartella.
Assicurati di essere dentro la cartella my_website:
pwd
Poi esegui:
caddy file-server --listen :8080
Apri il browser e vai su:
http://localhost:8080
Se vedi la tua pagina, Caddy funziona.
Questo è quel bellissimo momento in cui il browser mostra qualcosa e tu ti senti brevemente un amministratore di sistema.
Goditelo.
Potrebbe non durare per sempre.
Creare un Caddyfile
Eseguire Caddy dalla riga di comando è utile per i test.
Ma per una configurazione reale, di solito vuoi un Caddyfile.
Il Caddyfile è il file di configurazione di Caddy.
Dice a Caddy cosa servire, da dove servirlo e quanto drammatica diventerà la serata.
Dentro la cartella my_website, crea un file chiamato Caddyfile:
nano Caddyfile
Aggiungi questo:
localhost:8080 {
root * .
file_server
}
Questo dice a Caddy:
- ascolta su
localhost:8080, - usa la cartella attuale come root del sito,
- servi i file da questa cartella.
Ora esegui Caddy usando il Caddyfile:
caddy run
Apri:
http://localhost:8080
Se la tua pagina appare di nuovo, funziona tutto.
Caddy ha letto le tue istruzioni e si è comportato come un adulto responsabile.
Raro, ma bellissimo.
Formattare il Caddyfile
Caddy può formattare da solo il suo file di configurazione.
È utile, perché i computer spesso formattano meglio degli esseri umani che cercano di configurare server dopo cena.
Esegui:
caddy fmt --overwrite Caddyfile
Questo sistemerà la formattazione.
Un Caddyfile ordinato è un Caddyfile felice.
O almeno meno sospetto.
Validare la configurazione
Prima di usare seriamente una configurazione, validala:
caddy validate --config Caddyfile
Se Caddy dice che la configurazione è valida, bene.
Se si lamenta, leggi attentamente l’errore.
Gli errori di Caddy di solito sono più educati di quelli di molti altri web server.
Questo non significa che siano sempre piacevoli.
Ma almeno ci provano.
Usare un dominio reale con HTTPS
Qui Caddy diventa davvero interessante.
Se hai un dominio reale che punta al tuo server, puoi scrivere qualcosa del genere:
example.com {
root * /var/www/example.com
file_server
}
Con un dominio reale, Caddy può gestire automaticamente i certificati HTTPS.
Questo significa niente lotte manuali con i certificati.
Niente rituali lunghi con file casuali.
Niente battaglia emotiva con il rinnovo dei certificati all’1:13 di notte.
Solo una configurazione pulita e HTTPS automatico.
Quasi troppo bello per non essere sospetto.
Una configurazione più realistica per un sito statico
Su un server reale, probabilmente non vuoi tenere il sito dentro una cartella casuale nella tua home.
Un posto comune per i siti web è /var/www.
Crea una cartella per il sito:
sudo mkdir -p /var/www/example.com
Copia lì il tuo file HTML:
sudo cp index.html /var/www/example.com/index.html
Ora modifica il Caddyfile di sistema:
sudo nano /etc/caddy/Caddyfile
Usa questa configurazione:
example.com {
root * /var/www/example.com
file_server
}
Sostituisci example.com con il tuo vero dominio.
Poi ricarica Caddy:
sudo systemctl reload caddy
Se per qualche motivo il reload non funziona, riavvialo:
sudo systemctl restart caddy
Il reload è più delicato.
Il restart è il metodo “spegni e riaccendi”.
Entrambi hanno il loro posto nella sacra storia dell’informatica.
Eseguire Caddy come servizio di sistema
Se hai installato Caddy tramite il package manager della tua distribuzione, puoi eseguirlo con systemd.
Abilita Caddy in modo che parta automaticamente all’avvio:
sudo systemctl enable caddy
Avvialo ora:
sudo systemctl start caddy
Oppure fai entrambe le cose insieme:
sudo systemctl enable --now caddy
Controlla lo stato:
sudo systemctl status caddy
Se vedi:
active (running)
Caddy è vivo e sta lavorando.
Il tuo server ora ha un piccolo dipendente che non dorme mai.
Trattalo meglio di come molte aziende trattano gli stagisti.
Ricaricare Caddy dopo le modifiche
Quando modifichi /etc/caddy/Caddyfile, ricarica Caddy:
sudo systemctl reload caddy
Questo applica la nuova configurazione senza fermare completamente il servizio.
Prima di ricaricare, puoi anche validare il Caddyfile di sistema:
sudo caddy validate --config /etc/caddy/Caddyfile
È una buona abitudine.
Non entusiasmante.
Ma molte buone abitudini sono noiose.
Ed è proprio per questo che ci salvano da sofferenze future.
Controllare i log di Caddy
Se qualcosa non funziona, controlla i log:
sudo journalctl -u caddy -f
Questo mostra i log di Caddy in tempo reale.
È come ascoltare il tuo server sussurrare:
“Ecco esattamente perché mi rifiuto di collaborare.”
A volte i log sono utili.
A volte sono educativi.
A volte sembrano un attacco personale scritto in linguaggio tecnico.
Comunque leggili.
Comandi Caddy più utili
Ecco alcuni comandi comodi.
Controllare la versione di Caddy
caddy version
Avviare Caddy nella cartella attuale
caddy file-server --listen :8080
Avviare Caddy con un Caddyfile
caddy run
Formattare un Caddyfile
caddy fmt --overwrite Caddyfile
Validare un Caddyfile
caddy validate --config Caddyfile
Riavviare il servizio di sistema
sudo systemctl restart caddy
Ricaricare il servizio di sistema
sudo systemctl reload caddy
Vedere i log
sudo journalctl -u caddy -f
Una piccola nota sulle porte
Per i test locali, la porta 8080 è comoda.
Di solito non richiede permessi speciali e non litiga con altri web server.
Per i siti reali, normalmente si usano:
- porta
80per HTTP, - porta
443per HTTPS.
Se un altro servizio sta già usando queste porte, Caddy potrebbe rifiutarsi di partire.
Per controllare cosa è in ascolto, esegui:
sudo ss -tulpn
Poi cerca :80 o :443.
Se trovi un altro web server lì, congratulazioni.
Ora hai una piccola discussione da risolvere sul server.
Considerazioni finali
Ecco fatto.
Hai installato Caddy, creato una semplice pagina HTML, servito il sito in locale, scritto un Caddyfile e imparato a eseguire Caddy come servizio di sistema.
Non male.
Caddy è uno di quegli strumenti che rendono la configurazione di un server meno simile a magia antica e più simile a una conversazione con un assistente molto pratico.
Non costruirà il sito al posto tuo.
Non sistemerà il tuo CSS.
Non spiegherà perché il tuo JavaScript funziona solo dopo aver aggiornato la pagina due volte.
Però può servire il tuo sito, gestire HTTPS e restare tranquillamente in esecuzione in background.
E sinceramente, è già tanto.
Goditi il tuo nuovo web server.
E ricorda:
La migliore configurazione server è quella che riesci ancora a capire tre mesi dopo.
