Domaines personnalisés
Connectez vos propres noms de domaine aux applications sh0 avec des certificats SSL automatiques et une configuration sans interruption.
Ajout d'un domaine
Chaque application déployée sur sh0 obtient un sous-domaine par défaut sous *.sh0.app. Pour utiliser votre propre domaine, accédez aux paramètres de votre application et ajoutez-le via le panneau Domaines.
- Ouvrez le Tableau de bord et sélectionnez votre application.
- Accédez à Paramètres → Domaines.
- Cliquez sur Ajouter un domaine et saisissez votre nom de domaine (par ex.,
example.com). - sh0 affichera les enregistrements DNS requis à configurer chez votre registraire.
example.com) et des sous-domaines (app.example.com). sh0 gère les deux de manière transparente.Configuration DNS
Après avoir ajouté un domaine dans le tableau de bord, vous devez configurer les enregistrements DNS chez votre registraire de domaine (Cloudflare, Namecheap, GoDaddy, etc.). sh0 prend en charge les enregistrements A et CNAME.
Configuration de l'enregistrement A
Utilisez un enregistrement A pour les domaines racine. Pointez-le vers l'adresse IP de votre serveur sh0 :
Type: A
Name: @
Value: YOUR_SERVER_IP
TTL: 3600 (or Auto)Configuration CNAME
Utilisez un enregistrement CNAME pour les sous-domaines. Pointez-le vers le nom d'hôte de votre serveur sh0 :
Type: CNAME
Name: app
Value: your-server.example.com
TTL: 3600 (or Auto)Vérification du domaine
sh0 vérifie automatiquement la propriété du domaine en vérifiant les enregistrements DNS. Le processus de vérification fonctionne comme suit :
- sh0 génère un jeton de vérification unique pour votre domaine.
- Vous ajoutez l'enregistrement DNS tel qu'affiché dans le tableau de bord.
- sh0 vérifie périodiquement l'enregistrement (toutes les 30 secondes).
- Une fois vérifié, sh0 provisionne un certificat SSL et achemine le trafic vers votre application.
Vous pouvez également déclencher une vérification manuelle via l'API :
curl -X POST https://your-server:9000/api/domains/verify \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '[object Object]'SSL automatique via Let's Encrypt
sh0 utilise Caddy comme reverse proxy, qui obtient et renouvelle automatiquement les certificats SSL auprès de Let's Encrypt. Il n'y a rien à configurer -- une fois votre domaine vérifié :
- Un certificat HTTPS est provisionné en quelques secondes.
- Le trafic HTTP est automatiquement redirigé vers HTTPS.
- Les certificats sont renouvelés automatiquement avant expiration (tous les 60 jours).
- Les certificats RSA et ECDSA sont pris en charge.
Domaines wildcard
Les domaines wildcard vous permettent d'acheminer tous les sous-domaines d'un domaine vers une seule application. C'est utile pour les applications multi-tenant où chaque client obtient son propre sous-domaine.
Type: A
Name: *
Value: YOUR_SERVER_IP
TTL: 3600Dans le tableau de bord sh0, ajoutez le domaine wildcard comme *.example.com. Votre application recevra le nom d'hôte complet dans les en-têtes de requête et pourra acheminer en conséquence.
Indicateurs de statut du domaine
Le tableau de bord affiche un badge de statut pour chaque domaine. Voici ce que signifie chaque statut :
| Statut | Description |
|---|---|
| En attente | Les enregistrements DNS n'ont pas encore été détectés. |
| Vérification | Enregistrements DNS détectés, certificat SSL en cours de provisionnement. |
| Actif | Le domaine est vérifié, le SSL est actif, le trafic est acheminé. |
| Erreur | Le provisionnement SSL a échoué ou les enregistrements DNS sont mal configurés. |
Résolution des problèmes DNS
Si votre domaine est bloqué au statut En attente ou Erreur, essayez ces étapes :
Vérifiez vos enregistrements DNS localement :
dig example.com +short
dig CNAME app.example.com +shortVérifiez que votre serveur est accessible sur les ports 80 et 443 :
curl -I http://YOUR_SERVER_IP
curl -I https://YOUR_SERVER_IPProblèmes courants et solutions :
- DNS non propagé : Attendez jusqu'à 48 heures, ou utilisez une valeur TTL plus basse.
- Pare-feu bloquant les ports 80/443 : Assurez-vous que votre pare-feu serveur autorise le trafic HTTP et HTTPS entrant.
- Interférence du proxy Cloudflare : Passez en mode DNS uniquement (nuage gris) ou configurez le SSL Full (Strict) dans Cloudflare.
- Mauvaise adresse IP : Vérifiez l'IP publique de votre serveur avec
curl ifconfig.me. - Limite de débit : Let's Encrypt a des limites de débit (50 certificats par domaine par semaine). Si vous les atteignez, attendez ou utilisez un certificat de staging.