Files
2026-06-09 18:40:21 +02:00

4.5 KiB


title: Caddy created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, web-server, go, auto-hebergement] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://caddyserver.com/]

🚦 Caddy

Serveur web et reverse proxy moderne écrit en Go. Réputation : HTTPS automatique, configuration minimale, performance solide.

📋 Informations Générales

Champ Valeur
Site web caddyserver.com
GitHub caddyserver/caddy
License Apache-2.0
Langage Go
Étoiles GitHub 73k
Dernière MAJ 2026-06-05
Catégorie [[cat-reverse-proxy

📝 Description

Caddy est un serveur web open-source qui a révolutionné le monde du reverse proxy en rendant HTTPS automatique par défaut. Caractéristiques :

  • HTTPS automatique via Let's Encrypt (zero config)
  • Configuration ultra-simple (Caddyfile)
  • HTTP/2 et HTTP/3 (QUIC) par défaut
  • Reverse proxy avec load balancing
  • Plugins pour étendre les fonctionnalités
  • Cross-platform : Linux, Windows, macOS, Docker, ARM
  • Single binary : pas de dépendances

Public cible : utilisateurs qui veulent un truc qui marche out-of-the-box, sans se battre avec des configs Nginx/Traefik pendant des heures.

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
version: '3.8'
services:
  caddy:
    image: caddy:2
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    networks:
      - proxy

networks:
  proxy:
    external: true

volumes:
  caddy_data:
  caddy_config:

Caddyfile (exemple)

# /etc/caddy/Caddyfile
# Configuration ultra-simple : HTTPS automatique !

# Site principal
example.com {
    reverse_proxy app1:8080
}

# Sous-domaine
api.example.com {
    reverse_proxy app2:5000
}

# Avec auth basique
admin.example.com {
    basicauth {
        admin $2a$14$... # hash bcrypt
    }
    reverse_proxy admin-app:9000
}

C'est tout ! Pas de certbot, pas de configuration SSL. Caddy fait tout tout seul.

Option 2 : Binaire natif

# Installation sur Linux
curl -fsSL https://get.caddyserver.com | bash -s personal

# Ou via package manager
sudo apt install caddy

⚙️ Configuration Initiale

  1. Écrire un Caddyfile (voir exemple ci-dessus)
  2. Monter le dossier contenant le Caddyfile dans le conteneur
  3. Lancer : Caddy va automatiquement :
    • Générer les certs Let's Encrypt
    • Configurer HTTPS
    • Reload la config à la volée (modifié = caddy reload ou auto-reload)

🔄 Alternatives

Open Source

Comparaison Caddy vs Traefik

Critère Caddy Traefik
HTTPS auto Natif Natif (via Let's Encrypt)
Config Caddyfile (très simple) Labels Docker ou YAML
Auto-discovery Docker Manuel Natif
Load balancing
HTTP/3
Plugins (build custom) (catalogue)
API dynamique

Verdict :

  • Caddy pour un setup simple (peu de services, config stable)
  • Traefik pour des stacks Docker complexes (auto-discovery, services qui apparaissent/disparaissent)

Propriétaires (ce que Caddy remplace)

  • Cloudflare Pro (avec Workers)
  • AWS CloudFront (en partie)
  • Cloudflare Tunnel + Cloudflare Access (combo Caddy + Authentik)

🔐 Sécurité

  • HTTPS par défaut : aucun risque d'oublier de configurer TLS
  • Headers de sécurité automatiques (HSTS, X-Frame-Options)
  • Rate limiting (plugin disponible)
  • OCSP Stapling activé par défaut
  • Certificate Transparency log

📚 Ressources

Pages Liées