
Apache Iceberg pour une architecture lakehouse sur AWS
Ce guide présente Apache Iceberg, un format de table moderne pour les données volumineuses, la gestion des versions et des performances optimisées.

Sommaire
Suite aux offres OVH VPS 2026 j'ai décidé de migrer mon vieux Digital Ocean toujours bloqué sur une debian 12. J'aime héberger mes différents services en utilisant des containers et en mettant un reverse proxy devant. Sur mon ancienne configuration j'utilisais Traefik, pour changer un peu j'ai décidé que c'était l'occasion de tester Caddy.
J'ai cherché un peu de doc afin de le configurer correctement (notamment la partie wildcard avec dns challenge) et je n'ai pas trouvé d'article récent parlant de ce sujet, du coup je vous partage mon expérience en espérant pouvoir vous aider :)
Attention, j'utilise la version Docker de Caddy, mais vous pouvez tout de même suivre cet article si vous l'avez installé directement sur votre système !
Prérequis :
auto_https prefer_wildcard plus de détails ici) via Docker ou directement.*.example.com IN A 1.1.1.1 (où 1.1.1.1 correspond à l'ip de votre serveur) si vous utilisez ovh vous pouvez vous référer à cette docLa première étape est de trouver son provider DNS dans le repository suivant : https://github.com/caddy-dns
J'utilise personnellement ovh. Pour la suite de l'article ce sera donc : https://github.com/caddy-dns/ovh
Il faut maintenant ajouter le plugin à Caddy :
Installation direct : xcaddy build --with github.com/caddy-dns/ovh
Pour Docker on va créer un dossier par exemple dans notre home : mkdir -p ~/caddy/config (le dossier config vous sera utile juste après)
Ensuite créer un Dockerfile avec le contenu suivant dans notre dossier ~/caddy :
FROM caddy:builder AS builder
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
xcaddy build \
--with github.com/caddy-dns/ovh
FROM caddy:latest
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
Exemple de Caddyfile à utiliser (pour une installation via Docker le placer dans le path suivant : ~/caddy/config/Caddyfile il sera utilisé par le compose.yaml plus tard) :
{
debug
}
*.example.com, example.com {
tls {
dns ovh {
endpoint {$OVH_ENDPOINT}
application_key {$OVH_APPLICATION_KEY}
application_secret {$OVH_APPLICATION_SECRET}
consumer_key {$OVH_CONSUMER_KEY}
}
}
# default handle
handle {
respond "it works !"
}
}
(n'oubliez pas de remplacer example.com par votre nom de domaine)
Les variables d'environnement nécessaires à la configuration d'OVH seront renseignées dans les chapitres suivants.
Attention, ici j'ai pris l'exemple de configurations pour ovh, veillez à la remplacer par celle de votre provider que vous trouverez dans le README du repository https://github.com/caddy-dns de votre provider.
Afin de trouver les informations requises par Let's Encrypt pour communiquer et gérer nos enregistrements DNS OVH le README nous indique qu'il va falloir aller créer une application (avec accès API) à notre compte OVH.
La documentation Caddy nous redirige vers ce lien : https://github.com/libdns/ovh#authenticating
Qui ensuite nous mène ici : https://github.com/ovh/go-ovh#supported-apis
L'idée est de trouver quelle est notre OVH région afin de suivre le lien "Create script credentials (all keys at once)".
La mienne étant Europe, je vais donc suivre https://eu.api.ovh.com/createToken/
Authentifiez-vous à votre compte OVH et vous devriez arriver sur cette page :

Vous allez remplir le formulaire de la manière suivante :

Si vous avez un doute référez vous à la page que j'ai indiqué précédemment : https://github.com/libdns/ovh#authenticating . Je vous conseille de suivre la configuration pour un simple domaine, mais si vous avez vocation à laisser votre Caddy gérer plusieurs domaines différents, alors vous devriez suivre la configuration pour multiple domaines !
Une fois enregistré, n'oubliez pas de sauvegarder les informations suivantes (Attention, vous ne pourrez plus accéder à ces informations par la suite) :
Nous allons les utiliser dès maintenant !
Si vous avez installé Caddy directement alors modifiez les info dans votre Caddyfile.
Si vous avez utilisé Docker je vous conseille de fournir ces infos via un compose.yaml :
services:
caddy:
build: .
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./conf:/etc/caddy
- ./site:/srv
- caddy_data:/data
- caddy_config:/config
environment:
OVH_ENDPOINT: "ovh-eu"
OVH_APPLICATION_KEY: "votre-application-key"
OVH_APPLICATION_SECRET: "votre-application-secret"
OVH_CONSUMER_KEY: "votre-consumer-key"
volumes:
caddy_data:
caddy_config:
Le moment de vérité est arrivé ! Relancez Caddy pour qu'il prenne en compte votre nouvelle configuration
Sans Docker :
sudo systemctl restart caddy
Avec Docker :
sudo docker compose up -d && sudo docker compose logs -f
Rendez-vous sur votre nom de domaine et vous devriez voir la phrase "it works !" ainsi qu'un certificat tls !
Si vous voulez tester un sous domain, rien de plus simple.
Ajoutez le bloc suivant à votre Caddyfile (en modifiant bien subdomain.example.com par votre nom de domaine et le sous domain désiré)
@subdomain host subdomain.example.com
handle @subdomain: {
respond "subdomain works !"
}
Dans le bloc précédemment ajouté, entre le bloc tls et l'instruction handle
Relancez Caddy via les commandes suivantes :
Sans Docker :
sudo systemctl reload caddy
Avec Docker :
sudo docker compose exec -w /etc/caddy caddy caddy reload
Si vous avez une erreur sur le formattage de votre fichier Caddy vous pouvez utiliser la commande suivante :
sudo docker compose exec -w /etc/caddy caddy caddy fmt --override
Puis reload Caddy.
Et allez tester votre sous-domaine :)
Have fun !
Auteur(s)
Noel Kania
PHP, Symfony2, auto-hébergement, vps, bières...
Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !
Notre équipe d'experts répond à toutes vos questions.
Nous contacterDécouvrez nos autres contenus dans le même thème

Ce guide présente Apache Iceberg, un format de table moderne pour les données volumineuses, la gestion des versions et des performances optimisées.

Plongez dans le monde des AST et découvrez comment cette structure de données fondamentale révolutionne le développement moderne.

Retour sur ma première journée de conférences autour de l'IA au Grand Rex à Paris