Configurer un serveur GPU
Déployez le cradle-server headless sur une VM Linux GPU, bootstrap-le et connectez un client Cradle.
Pour tout ce qui dépasse un seul ordinateur portable, vous exécutez Cradle Server — le daemon cradle-server headless. Il contient les données, les connecteurs et l'inférence, tandis que des clients légers (l'application de bureau ou le CLI cradle) le pilotent via une API HTTP authentifiée. Ce guide l'installe sur une VM Linux GPU.
Prérequis
- Linux x86_64 (les builds sont
linux-x64). - Node 22 et pnpm (
corepack enable, ounpm install -g pnpm@9). - Accès root pour l'installateur et le bootstrap.
- Pour l'inférence GPU : pilotes NVIDIA + CUDA toolkit. Le CPU-only fonctionne sans dépendance supplémentaire.
Installer depuis S3 (flux curl)
Le bundle serveur/CLI est publié dans le même bucket de téléchargements que l'application de bureau, sous le préfixe cradle-cli. L'installateur en une ligne gère le reste :
curl -fsSL \
https://download.opencradle.ai/cradle-cli/latest/cradle-cli-install.sh \
| sudo shRemplacez les valeurs par défaut avec des variables d'environnement :
curl -fsSL -o cradle-cli-install.sh \
https://download.opencradle.ai/cradle-cli/latest/cradle-cli-install.sh
sudo CRADLE_PORT=31416 CRADLE_DATA_DIR=/var/lib/cradle \
sh cradle-cli-install.shL'installateur vérifie Node 22 + pnpm, télécharge le zip, extrait dans /opt/cradle, installe les dépendances de production, reconstruit les modules natifs pour la plateforme cible, et bootstrap le serveur.
Installation sans root
Si vous n'avez pas les droits root (VM sur un hébergement tiers, compte
partagé), lancez le même installateur sans sudo. Il détecte l'absence de
privilèges et bascule en mode rootless : tout va sous
~/.local/share/cradle, aucune unité systemd n'est installée, et le CLI est
lié dans ~/.local/bin.
curl -fsSL \
https://download.opencradle.ai/cradle-cli/latest/cradle-cli-install.sh \
| shDémarrez le serveur vous-même :
~/.local/share/cradle/dist/server/index.js \
--data-dir ~/.local/share/cradle/data --port 31416 --bind 0.0.0.0Pour survivre à la déconnexion, ajoutez une unité utilisateur dans
~/.config/systemd/user/cradle-server.service et activez le lingering :
systemctl --user enable --now cradle-server
loginctl enable-linger $USER # si la politique de l'hôte l'autoriseLimites du mode rootless : le port doit être supérieur à 1024 (31416 convient),
le démarrage automatique au boot ne fonctionne qu'avec le lingering, et
--user cradle ne s'applique pas — le service tourne sous votre compte.
Installation manuelle (depuis le zip)
Si vous préférez voir chaque étape, ou si vous êtes sur un hôte verrouillé, faites-le à la main :
# 1. Résolvez la version courante et téléchargez le bundle
VERSION=$(curl -fsSL https://download.opencradle.ai/cradle-cli/latest/manifest.json \
| grep -o '"version": *"[^"]*"' | cut -d'"' -f4)
curl -fsSL -o cradle-cli-${VERSION}-linux-x64.zip \
https://download.opencradle.ai/cradle-cli/${VERSION}/cradle-cli-${VERSION}-linux-x64.zip
# 2. Extrayez dans /opt/cradle
sudo mkdir -p /opt/cradle
sudo unzip -o cradle-cli-${VERSION}-linux-x64.zip -d /opt/cradle
# 3. Exécutez install.sh (crée l'utilisateur `cradle`, installe les deps prod,
# reconstruit les modules natifs, installe l'unité systemd)
cd /opt/cradle
sudo ./install.shBootstrap du serveur
Le bootstrap crée le répertoire de données, initialise la base SQLite, et génère la première clé API admin. C'est piloté par l'opérateur — vous l'exécutez sur l'hôte cible ; rien n'est poussé par SSH depuis un client.
sudo /opt/cradle/dist/cli/index.js server init \
--data-dir /var/lib/cradle \
--port 31416 \
--bind 0.0.0.0 \
--install-systemdCe que cela fait :
- Crée
--data-diret corrige les permissions. - Lance le serveur en mode bootstrap pour initialiser la DB et générer une clé
admin:*. - Écrit une unité systemd et exécute
systemctl enable --now. - Attend
/admin/health, puis émet une clé client scopée. - Écrit
client-credentials.json(mode0600) dans le répertoire de données.
Relancer server init sur le même répertoire de données est idempotent : il détecte la DB initialisée et sort au lieu de créer une nouvelle clé admin.
Où se trouve quoi
Tous les chemins ci-dessous dépendent du mode d'installation :
| installation root | installation rootless | |
|---|---|---|
| Répertoire d'installation | /opt/cradle | ~/.local/share/cradle |
| Données et clés | /var/lib/cradle | ~/.local/share/cradle/data |
| Service | systemd système | systemctl --user |
sudo | requis | jamais nécessaire |
Gérer le service
Installation root — systemd système :
sudo systemctl start cradle-server
sudo systemctl enable cradle-server
sudo systemctl status cradle-server
sudo journalctl -u cradle-server -fInstallation rootless — service utilisateur. Le drapeau --user est obligatoire
dans chaque commande, et sudo ne sert jamais :
systemctl --user start cradle-server
systemctl --user enable cradle-server
systemctl --user status cradle-server
journalctl --user -u cradle-server -fConnecter un client
Récupérez les credentials dans client-credentials.json du répertoire de données —
sudo cat /var/lib/cradle/client-credentials.json après une installation root,
simplement cat ~/.local/share/cradle/data/client-credentials.json en rootless.
Transférez-les vers le client Cradle via votre canal sécurisé, puis connectez-vous :
cradle login --url http://SERVEUR:31416 --key ck_live_...Le CLI sonde /admin/health pour vérifier la connexion et stocke le profil dans ~/.cradle/cli-config.json.
Exécuter le daemon directement
En dehors de systemd, vous pouvez lancer le serveur vous-même :
cradle-server --port 31416 --data-dir ~/.cradle
cradle-server --bind 0.0.0.0 # écoute sur toutes les interfaces
cradle-server --no-api-autostart # désactive le démarrage auto du canal APIL'arrêt gracieux sur SIGINT/SIGTERM arrête les canaux, libère les runners de modèles, et ferme la base de données.
Nœuds GPU distants
Pour décharger l'inférence lourde vers une machine GPU séparée, configurez un nœud distant. Le CLI stocke uniquement la configuration — il ne pousse jamais de commandes SSH ; l'opérateur les exécute sur la jump host de l'organisation :
cradle remote set \
--host gpu-1.local --user cradle \
--ssh-key-path /root/.ssh/gpu-1 \
--remote-port 8080 --model-path /models/qwen3-8b.gguf
cradle remote showLe nœud est ensuite utilisé en créant un modèle avec provider=remote-gpu. Pour plusieurs nœuds, cradle remote pool probe vérifie leur santé et cradle remote pool plan affiche un plan d'autoscaling — il n'exécute jamais lui-même de SSH ou d'appels cloud.
Voir la référence CLI pour le catalogue complet de commandes et le déploiement serveur distant pour le flux réseau fermé.
Installer l'application de bureau
Téléchargez et installez Cradle, le client de bureau, sur macOS, Windows ou Linux.
Vue d'ensemble de l'architecture
Comment Cradle se divise en un cœur indépendant de l'hôte avec deux points d'entrée — le serveur headless et l'application de bureau — et comment un message circule de bout en bout.