caddyserver
caddyserver

caddy

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Analisi AI · Italiano

openai · gpt-4o-mini

Sintesi

Caddy è un server web multi-piattaforma veloce ed estensibile, noto per la sua configurazione semplice e l'abilitazione automatica di HTTPS. Supporta HTTP/1.1, HTTP/2 e HTTP/3, offre una robusta gestione dei certificati TLS e una grande scalabilità. È ideale per deployment moderni che richiedono sicurezza e performance.

Casi d'uso

  • Servire un sito web o un'applicazione con HTTPS automatico e senza configurazioni complesse.
  • Utilizzare come reverse proxy per bilanciare il carico tra più backend o esporre servizi interni in modo sicuro.
  • Sviluppare e testare applicazioni web localmente con certificati TLS gestiti automaticamente dal CA locale di Caddy.
  • Implementare API gateway con routing dinamico e autenticazione per microservizi.
  • Hosting di file statici o come CDN con supporto HTTP/3 per prestazioni ottimali.

Idee SaaS / Business

Caddy as a Service (CaaS)

Una piattaforma SaaS che offre Caddy pre-configurato e gestito per l'hosting di siti web e applicazioni. Gli utenti possono caricare il loro Caddyfile o configurazione JSON e il servizio si occupa di deployment, scaling, monitoraggio, backup e gestione dei certificati TLS, consentendo agli sviluppatori di concentrarsi sul codice.

Secure API Gateway by Caddy

Un servizio che sfrutta le capacità di reverse proxy e di sicurezza di Caddy per fornire un API Gateway gestito. Offri funzionalità avanzate come autenticazione JWT, rate limiting, routing basato su path/header, caching e osservabilità, tutto configurabile tramite un'interfaccia utente web intuitiva e un'API.

Caddy Dev Proxy & Tunnel

Un tool SaaS che semplifica lo sviluppo locale e la condivisione di progetti. Fornisce un'istanza Caddy gestita che crea tunnel sicuri dal localhost a URL pubblici, con HTTPS automatico. Utile per testare webhook, collaborare o presentare preview di progetti a clienti senza deployare su un server staging.

Target utenti
Sviluppatori web (frontend, backend), DevOps, amministratori di sistema, piccole e medie imprese, e chiunque abbia bisogno di un server web semplice, sicuro e performante con HTTPS automatico.
Categoria
Go, HTTP/1.1, HTTP/2
Monetizzazione
Il progetto è open source. La monetizzazione potrebbe avvenire tramite offerte di supporto enterprise (contratti di supporto gestiti da partner), sponsorizzazioni dirette al progetto attraverso GitHub Sponsors, e l'offerta di versioni commerciali o servizi cloud gestiti (Caddy as a Service) per funzionalità avanzate o supporto premium.
Licenza
Apache License 2.0
Trend: L'uso crescente di microservizi, containerizzazione e la richiesta di HTTPS automatico e HTTP/3 rendono Caddy estremamente rilevante.

README · tradotto in italiano

Caddy

Ogni sito su HTTPS

Caddy è una piattaforma server estensibile che utilizza TLS per impostazione predefinita.

Releases · Documentazione · Ottieni Aiuto

alimentato da CertMagic


Funzionalità

FunzionalitàDescrizione
Configurazione facileCon il Caddyfile
Configurazione potenteCon la sua configurazione JSON nativa
Configurazione dinamicaCon l'API JSON
Adattatori di configurazioneSe non ti piace JSON, sono disponibili adattatori
HTTPS automaticoPer impostazione predefinita, con ZeroSSL e Let's Encrypt per nomi pubblici, CA locale per nomi interni e IP, coordinamento tra istanze Caddy in un cluster, fallback multi-emittente e supporto ECH.
ResilienzaRimane attivo anche quando altri server si bloccano a causa di problemi relativi a TLS/OCSP/certificati.
Pronto per la produzioneHa gestito trilioni di richieste e milioni di certificati TLS.
ScalabilitàScala a centinaia di migliaia di siti, dimostrato in produzione.
Supporto HTTPSupporta HTTP/1.1, HTTP/2 e HTTP/3 per impostazione predefinita.
Altamente estensibileArchitettura modulare che permette a Caddy di fare qualsiasi cosa senza ingombro.
PortabilitàFunziona ovunque senza dipendenze esterne (nemmeno libc).
Sicurezza della memoriaScritto in Go, un linguaggio con maggiori garanzie di sicurezza della memoria rispetto ad altri server.
Divertente da usareUn'esperienza utente gradevole.
AltroMolto altro da scoprire.

Installazione

Il modo più semplice e cross-platform per iniziare è scaricare Caddy da GitHub Releases e posizionare il file eseguibile nel tuo PATH.

Consulta la nostra documentazione online per altre istruzioni di installazione.

Compilazione da sorgente

Requisiti:

Per lo sviluppo

Nota: Questi passaggi non incorporeranno le informazioni sulla versione corrette. Per questo, segui le istruzioni nella sezione successiva.

$ git clone "https://github.com/caddyserver/caddy.git"
$ cd caddy/cmd/caddy/
$ go build

Quando esegui Caddy, potrebbe tentare di associarsi a porte basse a meno che non sia specificato diversamente nella tua configurazione. Se il tuo sistema operativo richiede privilegi elevati per questo, dovrai concedere al tuo nuovo binario il permesso di farlo. Su Linux, questo può essere fatto facilmente con: sudo setcap cap_net_bind_service=+ep ./caddy

Se preferisci usare go run che crea solo binari temporanei, puoi comunque farlo con lo script setcap.sh incluso, come segue:

$ go run -exec ./setcap.sh main.go

Se non vuoi digitare la tua password per setcap, usa sudo visudo per modificare il tuo file sudoers e consentire al tuo account utente di eseguire quel comando senza password, ad esempio:

username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap

sostituendo username con il tuo nome utente effettivo. Fai molta attenzione e fallo solo se sai cosa stai facendo! Siamo qualificati solo per documentare come usare Caddy, non gli strumenti Go o il tuo computer, e forniamo queste istruzioni solo per comodità; impara a usare il tuo computer a tuo rischio e con eventuali aggiustamenti necessari.

Quindi puoi eseguire i test in tutti i moduli o in uno specifico:

$ go test ./...
$ go test ./modules/caddyhttp/tracing/

Con informazioni sulla versione e/o plugin

Utilizzando il nostro strumento di compilazione, xcaddy...

$ xcaddy build

...i seguenti passaggi sono automatizzati:

  1. Crea una nuova cartella: mkdir caddy
  2. Entraci: cd caddy
  3. Copia il main.go di Caddy nella cartella vuota. Aggiungi gli import per tutti i plugin personalizzati che desideri aggiungere.
  4. Inizializza un modulo Go: go mod init caddy
  5. (Opzionale) Fissa la versione di Caddy: go get github.com/caddyserver/caddy/v2@version sostituendo version con un tag git, un commit o un nome di branch.
  6. (Opzionale) Aggiungi plugin aggiungendo il loro import: _ "import/path/here"
  7. Compila: go build -tags=nobadger,nomysql,nopgx

Avvio rapido

Il sito web di Caddy contiene documentazione che include tutorial, guide all'avvio rapido, riferimenti e altro ancora.

Raccomandiamo a tutti gli utenti -- indipendentemente dal livello di esperienza -- di seguire la nostra guida Iniziare per familiarizzare con l'utilizzo di Caddy.

Se hai solo un minuto, il sito web ha diversi tutorial rapidi tra cui scegliere! Tuttavia, dopo aver completato un tutorial rapido, ti preghiamo di leggere più documentazione per capire come funziona il software. 🙂

Panoramica

Caddy è usato più spesso come server HTTPS, ma è adatto a qualsiasi programma Go di lunga esecuzione. Anzitutto, è una piattaforma per eseguire applicazioni Go. Le "app" di Caddy sono semplicemente programmi Go implementati come moduli Caddy. Due app -- tls e http -- vengono spedite standard con Caddy.

Le app Caddy beneficiano immediatamente della documentazione automatizzata, delle modifiche di configurazione on-line con API e dell'unificazione con altre app Caddy.

Sebbene JSON sia il linguaggio di configurazione nativo di Caddy, Caddy può accettare input da adattatori di configurazione che possono essenzialmente convertire qualsiasi formato di configurazione di tua scelta in JSON: Caddyfile, JSON 5, YAML, TOML, configurazione NGINX e altro ancora.

Il modo principale per configurare Caddy è tramite la sua API, ma se preferisci i file di configurazione, la linea di comando li supporta anche.

Caddy espone un livello di controllo senza precedenti rispetto a qualsiasi server web esistente. In Caddy, di solito imposti i valori effettivi dei tipi inizializzati in memoria che alimentano tutto, dai tuoi gestori HTTP e handshake TLS al tuo mezzo di archiviazione. Caddy è anche incredibilmente estensibile, con un potente sistema di plugin che apporta enormi miglioramenti rispetto ad altri server web.

Per sfruttare la potenza di questo design, è necessario sapere come è strutturato il documento di configurazione. Si prega di consultare il nostro sito di documentazione per i dettagli sulla struttura di configurazione di Caddy.

Quasi tutta la configurazione di Caddy è contenuta in un singolo documento di configurazione, piuttosto che essere sparsa tra flag CLI, variabili d'ambiente e un file di configurazione come con altri server web. Ciò rende la gestione della configurazione del server più semplice e riduce le variabili/fattori nascosti.

Documentazione completa

Il nostro sito web ha la documentazione completa:

https://caddyserver.com/docs/

La documentazione è anche open source. Puoi contribuire a essa qui: https://github.com/caddyserver/website

Ottenere aiuto

  • Consigliamo alle aziende che utilizzano Caddy di stipulare un contratto di supporto tramite Ardan Labs prima che sia necessario aiuto.

  • Una sponsorizzazione aiuta molto! Possiamo offrire aiuto privato agli sponsor. Se Caddy sta beneficiando la tua azienda, considera una sponsorizzazione. Questo non solo aiuta a finanziare il lavoro a tempo pieno per garantire la longevità del progetto, ma fornisce alla tua azienda le risorse, il supporto e gli sconti di cui hai bisogno; oltre a essere un'ottima immagine per la tua azienda verso i tuoi clienti e potenziali clienti!

  • Gli individui possono scambiarsi aiuto gratuitamente sul nostro forum della comunità all'indirizzo https://caddy.community. Ricorda che le persone danno aiuto nel loro tempo libero e per buona volontà. Il modo migliore per ottenere aiuto è darlo prima!

Si prega di utilizzare il nostro issue tracker solo per segnalazioni di bug e richieste di funzionalità, cioè elementi di sviluppo concreti (le domande di supporto verranno solitamente indirizzate ai forum).

Informazioni

Matthew Holt ha iniziato a sviluppare Caddy nel 2014 mentre studiava informatica alla Brigham Young University. (Il nome "Caddy" è stato scelto perché questo software aiuta con le attività noiose e mondane di servire il Web, ed è anche un unico posto dove più cose possono essere organizzate insieme.) È presto diventato il primo server web a utilizzare HTTPS automaticamente e per impostazione predefinita, e ora conta centinaia di contributori e ha gestito trilioni di richieste HTTPS.

Il nome "Caddy" è un marchio registrato. Il nome del software è "Caddy", non "Caddy Server" o "CaddyServer". Si prega di chiamarlo "Caddy" o, se si desidera chiarire, "il server web Caddy". Caddy è un marchio registrato di Stack Holdings GmbH.

Caddy è un progetto di ZeroSSL, un'azienda HID Global.

L'hosting del repository di pacchetti Debian è gentilmente fornito da Cloudsmith. Cloudsmith è l'unica soluzione di gestione dei pacchetti universale, completamente ospitata e nativa del cloud, che consente alla tua organizzazione di creare, archiviare e condividere pacchetti in qualsiasi formato, ovunque, con totale fiducia.

Attività commit · ultime 26 settimane

stima

Approfondimenti AI

L'AI sta preparando gli approfondimenti…

Chiedi al repo

AI · contesto README + issue

Fai una domanda sul progetto. L'AI legge README e issue recenti.

Sponsor · Sconto esclusivo RepoRadar AI

Hai bisogno di un server per far girare caddyserver/caddy?

Abbiamo testato decine di provider e Hostinger VPS è il miglior rapporto qualità/prezzo per self-hostare le repo che trovi qui. Setup in 1 click, pannello semplice e supporto 24/7.

Deploy in 1 click
2 vCPU · 8 GB RAM · NVMe
Backup + DDoS inclusi
Attiva sconto Hostinger VPSLink affiliato — supporti RepoRadar senza costi extra per te.

Questo progetto esiste grazie a voi

RepoRadar AI è gratis e senza pubblicità. Le donazioni coprono server, API e modelli AI.

Ogni analisi tradotta che leggi costa qualche centesimo di chiamate al modello. Se RepoRadar ti ha fatto risparmiare tempo, considera una piccola donazione cripto — anche pochi euro aiutano a mantenere il servizio libero per tutti.

Ethereum
ETH
0x86ECDF546d8dFc0739d44c066A6110F11cdB7773
Bitcoin
BTC
bc1qqe0wcmhnt78enk8ql0lxvey4z8hquxsxjtyz8r
Solana
SOL
EtTK61Lz7kfdDM8543TMMiAUUTbFVpzX5tvPEcBtZ3aj

Grazie di cuore — ogni contributo conta.