Générateur Caddyfile
Infrastructure cloud moderne et reverse proxy

Générateur de Configuration Caddyfile, Reverse Proxy et HTTPS

Référence technique et guide de configuration pour générer des fichiers Caddyfile prêts pour la production.

Confidentialité 100% côté client
Zéro transmission au serveur
Préréglages :
Profile:
Domaine et hôte virtuelAuto-HTTPS Ready
TLS / SSL et certificatsACME sans configuration
Backends en amont et répartition de charge1 Nœuds
127.0.0.1:3000
Sécurisation et performances
# ========================================================
# Caddy 2 Production Server Configuration
# Site Address: app.example.com, www.app.example.com
# Workload Profile: Current Configuration
# Generated 100% Client-Side Private on ToolsAA
# ========================================================

{
    email [email protected]
    admin off
}

app.example.com, www.app.example.com {
    reverse_proxy 127.0.0.1:3000 {

        # Standard proxy header passthrough
        header_up Host {upstream_hostport}
        header_up X-Real-IP {remote_host}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Proto {scheme}

        transport http {
            dial_timeout 5s
            response_header_timeout 60s
        }
    }

    # Ultra-fast high-compression (Zstandard & Gzip)
    encode zstd gzip

    # Security Hardening & Header Manipulation
    header {
        # HTTP Strict Transport Security (HSTS 2-Year Preload)
        Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
        # Prevent MIME-type sniffing attacks
        X-Content-Type-Options "nosniff"
        # Mitigate clickjacking framing attacks
        X-Frame-Options "DENY"
        # Cross-domain referrer policy
        Referrer-Policy "strict-origin-when-cross-origin"
        # Restrict hardware API access
        Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=()"
        # Suppress fingerprinting headers
        -Server
        -X-Powered-By
    }

    # Structured Access Logging
    log {
        output file /var/log/caddy/app.example.com.access.log {
            roll_size 10mb
            roll_keep 5
            roll_keep_for 720h
        }
        format json
    }
}
Domaines & sites
1 Nom d'hôte
app.example.com, www.app.example.com
Upstreams du proxy
1 Backend Nœud Configuré
Policy: round_robin
Sécurité & statut TLS
Automatic HTTPS Enabled
HTTP/3 (QUIC) & Zstandard Ready

Génération 100% privée côté client

Zéro envoi vers un serveur. Vos noms de domaine, ports et adresses réseau sont traités exclusivement dans la mémoire du navigateur.

Directives Caddy 2 & HTTPS automatique

Gestion automatique des certificats Let's Encrypt / ZeroSSL, HTTP/3 QUIC, tunnels WebSocket et compression Zstandard.

Prêt pour le déploiement en production

Exportez les fichiers Caddyfile avec leur définition Docker Compose, fichier de service Systemd et commandes de validation en ligne de commande.

Référence technique et guide d'architecture

Référence Développeur pour Caddyfile Generator — Guide de référence

Référence technique et guide de configuration pour générer des fichiers Caddyfile prêts pour la production.

Paramètres clés et contrôles

domainstring

Nom de domaine pleinement qualifié (FQDN) ou adresse IP définissant le bloc d'adresse principal dans le Caddyfile.

Par défaut : example.com
tlsMode"auto" | "internal" | "custom" | "off"

Mode de certificat TLS : certificats ACME automatisés (auto), autorité locale (internal), fichiers PEM personnalisés (custom) ou HTTP brut (off).

Par défaut : auto
upstreamsstring[]

Liste des adresses de serveurs d'arrière-plan ou sockets unix ciblés par la directive reverse_proxy.

Par défaut : ["localhost:3000"]
lbPolicy"round_robin" | "least_conn" | "ip_hash" | "first" | "random"

Politique de répartition de charge appliquée par reverse_proxy lors de la distribution entre plusieurs backends.

Par défaut : round_robin
enableHealthCheckboolean

Active des sondes de santé périodiques sur une URI spécifique pour exclure les backends indisponibles du routage.

Par défaut : false
enableSecurityHeadersboolean

Injecte les en-têtes de sécurité recommandés, notamment HSTS, X-Content-Type-Options: nosniff et la protection de cadre.

Par défaut : true

Conseils de pro et bonnes practices

Rechargement à Chaud sans Arrêt

Ne redémarrez jamais le processus Caddy en production. Utilisez `caddy reload --config /etc/caddy/Caddyfile` pour basculer de configuration en mémoire sans interrompre les connexions actives.

Délais d'Attente Upstream Nets

Configurez `dial_timeout 5s` et `response_header_timeout 30s` dans `transport http` pour empêcher qu'un backend bloqué ne sature l'ensemble des descripteurs de connexion.

Éviter les Quotas de Taux ACME

Lors de vos tests locaux ou en intégration continue, utilisez `tls internal` ou l'environnement de staging Let's Encrypt afin de ne pas atteindre les plafonds de délivrance de certificats.

Pièges courants et dépannage

caddy validate échoue avec une directive inconnue ou une accolade mal fermée

Lancez `caddy validate --config /etc/caddy/Caddyfile` pour cibler la ligne fautive. L'accolade ouvrante `{` doit obligatoirement figurer sur la même ligne que le nom de domaine, et les extraits importés doivent être définis au préalable.

Le défi ACME HTTP-01 échoue sur le port 80 avec connexion refusée

Vérifiez que le port 80 est ouvert sur votre pare-feu (UFW, iptables ou groupes de sécurité cloud). Caddy requiert impérativement le port 80 entrant pour résoudre les défis Let's Encrypt ou ZeroSSL.

reverse_proxy renvoie une erreur HTTP 502 Bad Gateway au client

Assurez-vous que le backend écoute sur IPv4 (`127.0.0.1`) plutôt que sur IPv6 (`::1`). Sous Docker, substituez `localhost` par le nom de service Docker Compose pour assurer la résolution DNS interne.

Foire aux questions (FAQ)

En quoi le format Caddyfile diffère-t-il du JSON natif de Caddy ?▼

Le Caddyfile est un langage déclaratif lisible que Caddy convertit automatiquement en sa structure JSON interne à l'exécution. Vous pouvez examiner le JSON produit via la commande `caddy adapt --config Caddyfile --pretty`.

Mes domaines, mots de passe ou certificats sont-ils envoyés à un serveur distant ?▼

Non. L'analyse et la génération du Caddyfile s'effectuent exclusivement dans le bac à sable de votre navigateur. Aucune donnée d'authentification ni adresse IP n'est transmise ou enregistrée à distance.

Quel algorithme de hachage est exigé par la directive basic_auth ?▼

La directive basic_auth de Caddy exige des chaînes hachées en bcrypt et rejette formellement les mots de passe en clair. Générez vos clés au préalable avec la commande CLI officielle `caddy hash-password --plaintext "votremotdepasse"`.

Peut-on exporter directement les configurations vers Docker Compose et systemd ?▼

Oui. Le générateur propose des onglets dédiés produisant des fichiers Docker Compose (avec volumes persistants pour `/data` et `/config`) ainsi que des unités de service systemd optimisées pour le rechargement à chaud.

Outils et utilitaires connexes

Tous les outils →
Guide Développeur : Benchmark de Compression Brotli & Gzip et Estimateur d'Économie de Bande PassanteDéveloppement

Analysez les charges utiles de texte, CSS et JS via l'API native CompressionStream, en évaluant les ratios Brotli/Gzip et les temps de chargement mobiles 3G/4G.

Ouvrir l'outil→
Guide de développement du convertisseur Protobuf .proto vers Interfaces et Enums TypeScriptDéveloppement

Analysez les définitions de messages Protocol Buffers (proto2 et proto3), enums et champs imbriqués en interfaces TypeScript propres.

Ouvrir l'outil→
Guide Développeur : Générateur de Documentation API OpenAPI & Swagger vers MarkdownDéveloppement

Convertissez les spécifications OpenAPI 3.0 et Swagger 2.0 JSON/YAML en documentation de référence GitHub Flavored Markdown claire et professionnelle.

Ouvrir l'outil→
Guide développeur du convertisseur GraphQL SDL vers schéma PrismaDéveloppement

Convertissez les types d'objets, énumérations et directives du langage SDL GraphQL en modèles et relations Prisma ORM propres et optimisés.

Ouvrir l'outil→
Guide Développeur : Générateur d'entités TypeORM à partir de DDL SQL (Entités TypeScript)Développement

Convertissez vos instructions SQL CREATE TABLE DDL en classes d'entités TypeScript TypeORM propres avec @Column, @PrimaryGeneratedColumn, relations et index.

Ouvrir l'outil→
Guide du Développeur pour le Convertisseur SQL CREATE TABLE DDL vers Schéma ZodDéveloppement

Traduisez les schémas de tables SQL, types de données, contraintes et colonnes nullables en schémas d'objets Zod fortement typés pour TypeScript.

Ouvrir l'outil→