Docs / Premiers pas / Introduction

Introduction

sh0 est une plateforme de déploiement auto-hébergée qui regroupe tout ce dont vous avez besoin dans un seul binaire. Pas de manifestes YAML, pas de complexité d'orchestration de conteneurs -- poussez simplement votre code et il s'exécute.

Qu'est-ce que sh0 ?

sh0 est une plateforme de déploiement que vous installez sur votre propre serveur. Elle gère l'ensemble du cycle de vie de vos applications -- de la construction du code source en conteneurs, à la configuration des reverse proxies avec SSL automatique, en passant par la surveillance de la disponibilité et la gestion des sauvegardes.

Contrairement aux solutions PaaS traditionnelles qui nécessitent des comptes cloud et des abonnements mensuels, sh0 s'exécute entièrement sur une infrastructure que vous contrôlez. Un simple VPS à 5 $/mois suffit pour commencer, et la plateforme évolue avec vous au fur et à mesure que vos besoins grandissent.

À qui s'adresse sh0 ?
Les développeurs, agences et équipes qui veulent la commodité d'une plateforme gérée sans renoncer au contrôle de leur infrastructure. Si vous avez déjà déployé un conteneur Docker manuellement et souhaitiez un tableau de bord, sh0 est fait pour vous.

Architecture à binaire unique

L'ensemble de la plateforme sh0 est livré sous forme d'un seul binaire Rust compilé. Il n'y a pas de dépendances d'exécution au-delà de Docker -- pas de Node.js, pas de Python, pas de Java, pas de bases de données externes à provisionner. Le tableau de bord, le serveur API, le gestionnaire de reverse proxy, le système de build et le moteur de surveillance sont tous compilés en un seul exécutable.

Architecture diagram showing the sh0 binary containing the API server, Svelte dashboard, Caddy proxy manager, Docker orchestrator, and SQLite database

Cette architecture signifie que l'installation prend quelques secondes, les mises à jour se résument à un remplacement de fichier, et il y a très peu de composants mobiles qui peuvent tomber en panne en production.

Composants principaux

ComposantTechnologieRôle
Moteur principalRust + AxumServeur API, orchestration de build, logique de déploiement
Reverse proxyCaddyTerminaison HTTPS, Let's Encrypt automatique, routage
Runtime de conteneursDocker EngineConstruction d'images, exécution de conteneurs, réseau
Base de donnéesSQLiteConfiguration, historique de déploiement, stockage des métriques
Tableau de bordSvelte 5 + SvelteKitInterface web intégrée dans le binaire, servie sur le port 9000

Ce qu'il remplace

sh0 est conçu pour éliminer le besoin d'assembler plusieurs outils pour déployer des applications sur votre propre serveur. Voici à quoi ressemble une configuration auto-hébergée typique avant et après sh0 :

Sans sh0

  • -- Commandes Docker manuelles par application
  • -- Fichiers de configuration Nginx/Traefik à maintenir
  • -- Tâches cron Certbot pour le renouvellement SSL
  • -- Pipelines CI/CD personnalisés pour chaque projet
  • -- Outils de surveillance et d'alerte séparés
  • -- Scripts de sauvegarde manuels

Avec sh0

  • + Un binaire, une commande pour installer
  • + Configuration automatique du reverse proxy
  • + SSL automatique via Let's Encrypt
  • + Déploiement Git au push, intégré
  • + Surveillance, métriques et alertes incluses
  • + Sauvegardes planifiées vers S3/R2

Comment ça fonctionne

Lorsque vous exécutez sh0 serve, le binaire démarre plusieurs sous-systèmes :

  1. Serveur API -- Un serveur HTTP Axum écoute sur le port 9000, servant à la fois le tableau de bord et l'API REST.
  2. Gestionnaire Caddy -- sh0 lance et gère une instance Caddy en tant que processus enfant, mettant à jour dynamiquement sa configuration lorsque vous ajoutez des domaines.
  3. Client Docker -- Communique avec le moteur Docker via le socket Unix pour construire des images, créer des conteneurs et gérer les réseaux.
  4. Workers en arrière-plan -- Gère les tâches planifiées comme l'exécution des sauvegardes, les bilans de santé, le renouvellement des certificats SSL et la collecte de métriques.
Diagram showing the request flow: user browser connects to Caddy on port 80/443, which routes to Docker containers, while the dashboard on port 9000 communicates with the sh0 API

Fonctionnalités clés

Déploiement Git au push

Connectez un dépôt Git et déployez à chaque push. Prend en charge GitHub, GitLab, Bitbucket et toute URL Git.

Plus de 170 modèles

Déploiement en un clic pour les piles populaires -- WordPress, PostgreSQL, Redis, Ghost, Plausible, et plus.

SSL automatique

Chaque domaine obtient un certificat Let's Encrypt gratuit, automatiquement provisionné et renouvelé par Caddy.

Déploiements blue-green

Déploiements sans interruption avec retour en arrière instantané. L'ancienne version continue de fonctionner jusqu'à ce que la nouvelle soit saine.

Gestion des bases de données

Provisionnez PostgreSQL, MySQL, MariaDB, MongoDB ou Redis avec des sauvegardes automatisées et l'injection de chaînes de connexion.

Multi-serveur

Évoluez au-delà d'un seul serveur en ajoutant des nœuds distants. sh0 déploie les conteneurs sur votre flotte via des tunnels SSH.

Flux de déploiement

Voici ce qui se passe lorsque vous déployez une application avec sh0 :

Deployment Pipeline
1. Source Code     -- Git clone or image pull
2. Stack Detection -- Auto-detect language and framework
3. Build           -- Generate Dockerfile, build container image
4. Health Check    -- Verify the new container starts and responds
5. Route           -- Update Caddy reverse proxy configuration
6. Live            -- Traffic flows to the new container
7. Cleanup         -- Remove old container (kept for rollback)
Note
sh0 détecte automatiquement la pile technologique de votre projet (Node.js, Python, Go, Rust, PHP, Ruby, sites statiques, et plus) et génère un Dockerfile optimisé. Vous pouvez également fournir votre propre Dockerfile ou fichier Docker Compose.

Prochaines étapes

Prêt à commencer ? Suivez le guide d'installation pour faire fonctionner sh0 sur votre serveur en moins d'une minute.