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.
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.
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
| Composant | Technologie | Rôle |
|---|---|---|
| Moteur principal | Rust + Axum | Serveur API, orchestration de build, logique de déploiement |
| Reverse proxy | Caddy | Terminaison HTTPS, Let's Encrypt automatique, routage |
| Runtime de conteneurs | Docker Engine | Construction d'images, exécution de conteneurs, réseau |
| Base de données | SQLite | Configuration, historique de déploiement, stockage des métriques |
| Tableau de bord | Svelte 5 + SvelteKit | Interface 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 :
- Serveur API -- Un serveur HTTP Axum écoute sur le port 9000, servant à la fois le tableau de bord et l'API REST.
- 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.
- 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.
- 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.
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 :
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)Prochaines étapes
Prêt à commencer ? Suivez le guide d'installation pour faire fonctionner sh0 sur votre serveur en moins d'une minute.