Docs / Premiers pas / Installation

Installation

Installez sh0 sur un serveur propre en moins d'une minute. Une seule commande télécharge le binaire -- sh0 gère automatiquement toutes les dépendances.

Configuration système requise

ExigenceMinimumRecommandé
SELinux (toute distribution)Ubuntu 22.04+ / Debian 12+
RAM1 GB2 GB+
Disque10 GB20 GB+ (SSD)
CPU1 vCPU2 vCPUs+
DockerInstallé automatiquement par sh0 si absent
Note
sh0 lui-même utilise très peu de mémoire (environ 30 Mo). L'exigence en RAM est principalement pour Docker et les applications que vous déployez. Un serveur de 1 Go peut confortablement exécuter sh0 plus 2 à 3 petites applications.

Plateformes prises en charge

sh0 fournit des binaires préconstruits pour les architectures suivantes :

  • x86_64 (AMD64) -- La plupart des serveurs cloud et fournisseurs VPS
  • aarch64 (ARM64) -- AWS Graviton, Oracle Ampere, Raspberry Pi 4+
Zéro dépendance
sh0 devrait être installé sur un serveur propre. Lorsque vous exécutez sh0 serve en tant que root, il détecte et installe automatiquement Docker et Caddy s'ils sont absents. Aucune configuration manuelle requise.

Installer sh0

Installation rapide (recommandée)

Le script d'installation détecte votre architecture, télécharge le dernier binaire et configure le service systemd automatiquement :

Terminal
curl -fsSL https://sh0.dev/install | sh
Terminal output showing the sh0 install script downloading the binary, setting permissions, and starting the service
Le script d'installation se termine en quelques secondes

Le script effectue les étapes suivantes :

  1. Détecte votre architecture CPU (x86_64 ou aarch64)
  2. Télécharge le dernier binaire sh0 vers /usr/local/bin/sh0
  3. Définit les permissions d'exécution
  4. Crée une unité de service systemd
  5. Active et démarre le service

Téléchargement manuel

Si vous préférez installer manuellement, téléchargez le binaire directement :

Terminal
# Download the binary (replace ARCH with amd64 or arm64)
curl -L -o /usr/local/bin/sh0 https://sh0.dev/download/latest/sh0-linux-ARCH

# Make it executable
chmod +x /usr/local/bin/sh0

# Start the server
sh0 serve

Vérification de l'installation

Vérifiez que sh0 est installé et en cours d'exécution :

Terminal
# Check the version
sh0 --version

# Check the service status
systemctl status sh0

# Verify the dashboard is accessible
curl -s http://localhost:9000/api/health
Terminal showing sh0 version output and systemctl status showing the service as active and running
Une installation sh0 saine

Le point de terminaison de santé devrait retourner une réponse JSON confirmant que le serveur est opérationnel :

Health Response
{"data": {"status": "ok", "version": "1.6.0", "uptime": 42}}

Configuration du service systemd

Si vous avez utilisé le script d'installation rapide, le service systemd est déjà configuré. Pour les installations manuelles, créez le fichier de service :

/etc/systemd/system/sh0.service
[Unit]
Description=sh0 Deployment Platform
After=docker.service
Requires=docker.service

[Service]
Type=simple
ExecStart=/usr/local/bin/sh0 serve
Restart=always
RestartSec=5
Environment=SH0_DATA_DIR=/var/lib/sh0

[Install]
WantedBy=multi-user.target

Puis activez et démarrez le service :

Terminal
sudo systemctl daemon-reload
sudo systemctl enable sh0
sudo systemctl start sh0
Tip
Le service systemd garantit que sh0 démarre automatiquement après un redémarrage du serveur et redémarre en cas de plantage. Les logs sont disponibles via journalctl -u sh0 -f.

Configuration du pare-feu

sh0 nécessite que les ports suivants soient accessibles :

PortProtocoleObjectif
80TCPTrafic HTTP (redirige vers HTTPS)
443TCPTrafic HTTPS pour vos applications déployées
9000TCPTableau de bord et API sh0

Si vous utilisez ufw (Ubuntu/Debian) :

Terminal
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 9000/tcp
Sécurité du tableau de bord
Le port 9000 donne un accès complet à votre tableau de bord sh0. En production, envisagez de restreindre l'accès aux IP de confiance ou de le placer derrière un VPN. Vous pouvez également configurer sh0 pour servir le tableau de bord via Caddy sur un domaine personnalisé avec SSL.

Mise à jour de sh0

La mise à jour est aussi simple que de remplacer le binaire et de redémarrer le service. Votre configuration, vos applications déployées et vos données sont préservées -- elles résident dans le répertoire de données, pas à l'intérieur du binaire.

Terminal
# Download the latest version
curl -fsSL https://sh0.dev/install | sh

# Or manually:
curl -L -o /usr/local/bin/sh0 https://sh0.dev/download/latest/sh0-linux-amd64
sudo systemctl restart sh0
Note
sh0 gère automatiquement les migrations de base de données au démarrage. Après la mise à jour, toutes les modifications de schéma sont appliquées de manière transparente.