Docs/ CLI/ Vue d'ensemble

Vue d'ensemble du CLI

Un seul binaire pour déployer, gérer et surveiller vos apps depuis le terminal.

Qu'est-ce que le CLI sh0

Le CLI sh0 est un binaire autonome qui communique avec votre serveur sh0 via son API REST. Il fournit 30+ commandes pour tout ce que vous pouvez faire dans le tableau de bord -- déploiements, logs, scaling, variables d'environnement, tâches cron, templates et plus.

Il fonctionne depuis n'importe quelle machine : votre laptop, un runner CI ou un serveur distant. Authentifiez-vous une fois avec sh0 login et vous êtes prêt.

Installation

Une commande, aucune dépendance. Supporte Linux et macOS sur x64 et ARM64.

Install sh0
curl -fsSL https://get.sh0.dev | bash

Le script détecte votre OS et architecture, télécharge le bon binaire depuis les GitHub Releases et le place dans /usr/local/bin/sh0. Voir Installation pour le téléchargement manuel et les options de configuration.

Quatre workflows principaux

1. Push Deploy

Déployez directement depuis un répertoire local. Le CLI détecte votre stack, téléverse les fichiers, construit un conteneur et retourne une URL en ligne -- le tout en une seule commande.

Push deploy
sh0 init              # Optional: detect stack, create .sh0ignore
sh0 push              # Deploy to live URL

Le premier push crée une nouvelle app. Les pushes suivants la mettent à jour. Le lien est stocké dans .sh0/link.json pour que le CLI sache quelle app mettre à jour. Utilisez sh0 link <app> pour connecter un répertoire à une app existante. Voir Push Deploy pour le guide complet.

2. Mode surveillance

Pour les workflows de développement, sh0 watch surveille votre projet pour les changements de fichiers et relance automatiquement le push après un délai de debounce configurable (défaut : 2 secondes).

Watch mode
sh0 watch                     # Watch current directory
sh0 watch --debounce 3000     # 3s debounce

Respecte les patterns .sh0ignore. Appuyez sur Ctrl+C pour arrêter.

3. Gestion du déploiement Git

Pour les apps connectées à un dépôt Git, le CLI vous permet de déclencher des déploiements, gérer les variables d'environnement, configurer les domaines et contrôler le cycle de vie de l'app :

Git deploy workflow
sh0 deploy myapi --wait
sh0 env myapi set DATABASE_URL="postgres://..."
sh0 domains myapi add api.example.com
sh0 restart myapi

4. Surveillance et opérations

Diffusez les logs, vérifiez le statut, accédez aux conteneurs par SSH, gérez les tâches cron et contrôlez le cycle de vie des apps -- le tout sans quitter votre terminal :

Operations
sh0 logs myapi --follow --tail 50
sh0 status
sh0 ssh myapi -- ls /app
sh0 restart myapi
sh0 open myapi          # Open in browser
sh0 cron ls

Ergonomie développeur

Le CLI inclut des commandes pour fluidifier votre workflow quotidien :

  • sh0 init -- Détecter votre stack et générer un fichier .sh0ignore avec les patterns appropriés
  • sh0 link <app> -- Connecter un répertoire local à une app existante pour les futurs pushes
  • sh0 open [app] -- Ouvrir l'URL de l'app dans votre navigateur par défaut
  • sh0 config show|set|get -- Afficher et gérer la configuration CLI (URL du serveur, jeton)
  • sh0 restart|stop|start|delete -- Contrôle complet du cycle de vie des apps depuis le terminal
  • sh0 domains <app> list|add|remove -- Gérer les domaines personnalisés pour toute app

CLI vs tableau de bord

Le CLI et le tableau de bord sont complémentaires. Les deux utilisent la même API REST et ont une parité fonctionnelle complète.

ScénarioMeilleur choix
Déploiement rapide depuis un projet localsh0 push
Intégration pipeline CI/CDCLI avec sortie --json
Vue d'ensemble visuelle des stacks et ressourcesTableau de bord
Déploiements de templates en un clicTableau de bord
Diffusion de logs pendant le débogagesh0 logs --follow
Changements de variables d'env en masseScripting CLI
Tip
Chaque commande CLI supporte --json pour une sortie lisible par machine. Redirigez vers jq, alimentez des scripts ou intégrez avec tout outil d'automatisation.