Initial vault setup
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
---
|
||||
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](https://caddyserver.com/) |
|
||||
| **GitHub** | [caddyserver/caddy](https://github.com/caddyserver/caddy) |
|
||||
| **License** | Apache-2.0 |
|
||||
| **Langage** | Go |
|
||||
| **Étoiles GitHub** | 73k ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-05 |
|
||||
| **Catégorie** | [[cat-reverse-proxy|Reverse Proxy]], Web Server |
|
||||
|
||||
## 📝 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é)
|
||||
|
||||
```yaml
|
||||
# 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)
|
||||
|
||||
```caddyfile
|
||||
# /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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
- [[app-traefik]] — Plus adapté aux stacks Docker (auto-discovery)
|
||||
- [[app-nginx-proxy-manager]] — Si vous voulez une GUI
|
||||
- [[app-haproxy]] — Pour la haute performance
|
||||
|
||||
### 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
|
||||
|
||||
- [Documentation officielle](https://caddyserver.com/docs/)
|
||||
- [Caddyfile référence](https://caddyserver.com/docs/caddyfile)
|
||||
- [Communauté](https://caddy.community/)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-reverse-proxy]] — Catégorie Reverse Proxy
|
||||
- [[app-traefik]] — Concurrent principal
|
||||
- [[tls-https]] — HTTPS / TLS
|
||||
- [[comparatif-reverse-proxy]] — Comparaison détaillée
|
||||
- [[securisation-home-lab]] — Sécurité
|
||||
Reference in New Issue
Block a user