Déploiement Git
Connectez n'importe quel dépôt Git et déployez automatiquement à chaque push. sh0 gère le clonage, le build et le déploiement de votre application sans aucune configuration.
Connexion d'un dépôt
Pour déployer depuis Git, accédez à votre stack dans le tableau de bord sh0 et sélectionnez Nouvelle application → Dépôt Git. Vous pouvez connecter un dépôt en saisissant son URL ou en liant votre compte de fournisseur Git pour accéder aux dépôts privés.
Pour les dépôts publics, collez directement l'URL de clonage HTTPS. Pour les dépôts privés, vous devrez connecter votre compte de fournisseur Git ou ajouter une clé SSH dans Paramètres → Clés SSH.
https://github.com/your-org/your-app.gitFournisseurs pris en charge
sh0 fonctionne avec tout fournisseur Git prenant en charge les webhooks et le clonage SSH/HTTPS :
- GitHub -- Intégration OAuth pour la liaison de dépôt en un clic
- GitLab -- Auto-hébergé et GitLab.com pris en charge
- Bitbucket -- Éditions Cloud et Server
- Gitea / Forgejo -- Forges Git auto-hébergées
- Tout serveur Git -- Tout dépôt accessible via SSH ou HTTPS
Configuration des webhooks
Les webhooks activent le déploiement au push. Lorsque vous poussez du code vers votre dépôt, votre fournisseur Git envoie une notification à sh0, qui déclenche un nouveau build et déploiement.
Si vous avez connecté votre fournisseur Git via OAuth, les webhooks sont configurés automatiquement. Pour une configuration manuelle, ajoutez un webhook dans les paramètres de votre dépôt avec l'URL suivante :
https://your-sh0-server.com:9000/api/hooks/git/{app_id}Configurez le webhook pour se déclencher sur les événements push. sh0 génère un secret de webhook pour chaque application, que vous pouvez trouver dans Paramètres de l'application → Git → Secret du webhook. Ajoutez ce secret à votre fournisseur Git pour vérifier les charges utiles entrantes.
Sélection de branche
Par défaut, sh0 déploie depuis la branche main. Vous pouvez changer la branche de déploiement dans les paramètres de votre application pour déployer depuis n'importe quelle branche de votre dépôt.
Les configurations courantes incluent :
- Production : Déployer depuis
mainouproduction - Staging : Déployer depuis
developoustaging - Branches de fonctionnalité : Utilisez les Environnements de prévisualisation pour les déploiements automatiques de PR
Paramètres de build
sh0 détecte automatiquement la pile technologique de votre application et configure le pipeline de build en conséquence. Vous pouvez également remplacer ces paramètres manuellement.
Détection automatique du Dockerfile
Si votre dépôt contient un Dockerfile, sh0 l'utilise automatiquement. Vous pouvez également spécifier un chemin de Dockerfile et un contexte de build personnalisés :
dockerfile: ./deploy/Dockerfile
context: .
build_args:
NODE_ENV: production
API_URL: https://api.example.comsh0 prend en charge les builds multi-étapes, les arguments de build et les contextes de build personnalisés. Le build s'exécute sur votre serveur, donc les grandes images n'entraînent pas de coûts de transfert.
Buildpacks
Si votre dépôt ne contient pas de Dockerfile, sh0 analyse votre code et génère automatiquement un Dockerfile optimisé. Il détecte plus de 15 frameworks et langages :
- Node.js : Next.js, Nuxt, SvelteKit, Remix, Express, Fastify
- Python : Django, Flask, FastAPI
- Go : Modules Go standard
- Rust : Projets basés sur Cargo
- PHP : Laravel, Symfony
- Ruby : Rails, Sinatra
- Sites statiques : HTML, Astro, Hugo, Jekyll
Déploiement au push
Avec les webhooks configurés, chaque push vers votre branche de déploiement déclenche automatiquement un nouveau déploiement. Le flux de travail est le suivant :
- Vous poussez du code vers la branche configurée
- Votre fournisseur Git envoie un webhook à sh0
- sh0 récupère le dernier code de votre dépôt
- L'image Docker est construite à partir de votre Dockerfile (ou d'un Dockerfile auto-généré)
- Un nouveau conteneur est déployé en utilisant le déploiement blue-green
- Le trafic est basculé vers le nouveau conteneur une fois les bilans de santé réussis
Vous pouvez également désactiver les déploiements automatiques et les déclencher manuellement depuis le tableau de bord ou via l'API :
curl -X POST https://your-sh0-server.com:9000/api/apps/{app_id}/deploy \
-H "Authorization: Bearer YOUR_TOKEN"Consultation des logs de build
Chaque déploiement génère un log de build complet que vous pouvez diffuser en temps réel depuis le tableau de bord. Les logs de build incluent :
- Sortie du clone et checkout Git
- Étapes de build de l'image Docker (chaque couche)
- Démarrage du conteneur et résultats des bilans de santé
- Confirmation du basculement du trafic
Les logs de build sont stockés pour chaque déploiement et sont accessibles depuis l'onglet Déploiements à tout moment. Si un build échoue, sh0 conserve la version précédente en fonctionnement et marque le déploiement comme échoué avec un message d'erreur détaillé.