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
| Exigence | Minimum | Recommandé |
|---|---|---|
| SE | Linux (toute distribution) | Ubuntu 22.04+ / Debian 12+ |
| RAM | 1 GB | 2 GB+ |
| Disque | 10 GB | 20 GB+ (SSD) |
| CPU | 1 vCPU | 2 vCPUs+ |
| Docker | Installé automatiquement par sh0 si absent | |
Plateformes prises en charge
sh0 fournit des binaires préconstruits pour les architectures suivantes :
x86_64(AMD64) -- La plupart des serveurs cloud et fournisseurs VPSaarch64(ARM64) -- AWS Graviton, Oracle Ampere, Raspberry Pi 4+
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 :
curl -fsSL https://get.sh0.dev | bashLe script effectue les étapes suivantes :
- Détecte votre architecture CPU (x86_64 ou aarch64)
- Télécharge le dernier binaire sh0 vers
/usr/local/bin/sh0 - Définit les permissions d'exécution
- Crée une unité de service systemd
- Active et démarre le service
Téléchargement manuel
Si vous préférez installer à la main, téléchargez l'archive de la version sur GitHub et vérifiez-la avec les sommes de contrôle publiées avant de l'extraire :
# Download the archive and the checksums (use sh0-linux-arm64.tar.gz on ARM64)
curl -fsSLO https://github.com/zerosuite-inc/sh0/releases/latest/download/sh0-linux-x64.tar.gz
curl -fsSLO https://github.com/zerosuite-inc/sh0/releases/latest/download/checksums.txt
# Check the archive, then extract it
sha256sum --ignore-missing -c checksums.txt
tar -xzf sh0-linux-x64.tar.gz
# Install the binary
sudo install -m 0755 sh0 /usr/local/bin/sh0
sh0 --versionsh0-linux-x64.tar.gz: OK
sh0 1.10.2Une installation manuelle ne crée pas le service systemd : configurez-le comme indiqué ci-dessous, puis démarrez-le.
Vérification de l'installation
Vérifiez que sh0 est installé et en cours d'exécution :
# Check the version
sh0 --version
# Check the service status
systemctl status sh0
# Verify the API answers
curl -s http://localhost:9000/api/v1/healthLe point de terminaison de santé devrait retourner une réponse JSON confirmant que le serveur est opérationnel :
{"data":{"license":{"plan":"business","status":"active"},"mode":"selfhosted","needs_setup":false,"status":"ok","version":"1.10.3-rc9"}}Configuration du service systemd
Si vous avez utilisé le script d'installation rapide, le service systemd est déjà configuré. Pour une installation manuelle, créez le même fichier de service que celui qu'écrit l'installateur :
[Unit]
Description=sh0 -- Self-Hosted PaaS
Documentation=https://sh0.dev/docs
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service
[Service]
Type=simple
ExecStart=/usr/local/bin/sh0 serve
Restart=always
RestartSec=5
Environment=RUST_LOG=info
WorkingDirectory=/var/lib/sh0
KillMode=process
NoNewPrivileges=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictSUIDSGID=true
RestrictRealtime=true
LockPersonality=true
LimitNOFILE=65535:524288
StandardOutput=journal
StandardError=journal
SyslogIdentifier=sh0
[Install]
WantedBy=multi-user.targetKillMode=process. Sans ce réglage, redémarrer le service sh0 arrête aussi les processus qu'il a lancés, et vos applications tombent le temps du redémarrage.Puis activez et démarrez le service :
sudo systemctl daemon-reload
sudo systemctl enable sh0
sudo systemctl start sh0journalctl -u sh0 -f.pgsty/minio (Pigsty), épinglée par empreinte. Ce n'est pas une source officielle MinIO. Pour utiliser une autre image compatible MinIO, ajoutez Environment=SH0_MINIO_IMAGE=<image> à l'environnement du service, lancez systemctl daemon-reload, supprimez le conteneur sh0-system-minio et redémarrez sh0 : l'image ne s'applique qu'à la création du conteneur, et le volume de données est conservé.Configuration du pare-feu
sh0 nécessite que les ports suivants soient accessibles :
| Port | Protocole | Objectif |
|---|---|---|
| 80 | TCP | Trafic HTTP (redirige vers HTTPS) |
| 443 | TCP | Trafic HTTPS pour vos applications déployées |
| 9000 | TCP | Tableau de bord et API sh0 |
Si vous utilisez ufw (Ubuntu/Debian) :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 9000/tcpMise à jour de sh0
Votre configuration, vos applications déployées et vos données vivent dans le répertoire de données, pas dans le binaire : une mise à jour ne remplace que le binaire. La commande intégrée télécharge la dernière version finale, la vérifie et garde la version précédente pour un retour arrière :
sudo sh0 updateLes canaux, le retour arrière et les contrôles d'hôte de sh0 doctor sont décrits dans Mises à jour et diagnostic.