> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitlab.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI

> Déployez et gérez OrbitLab depuis votre terminal et vos pipelines CI avec la commande `orbitlab`.

La CLI OrbitLab fait tout ce que le tableau de bord permet pour vos projets : déployer depuis Git, gérer les variables d'environnement, lire les journaux, rattacher des domaines, modifier le DNS, interroger les bases de données, gérer les fichiers et votre organisation, et payer vos services. Elle utilise l'[API REST](/fr/api) avec un jeton d'API.

## Installation

```bash theme={null}
npm install -g @orbitlab/cli
orbitlab --version
```

La CLI nécessite Node.js 18.17 ou plus récent, sans autre dépendance. Vous pouvez aussi l'utiliser sans l'installer : `npx @orbitlab/cli <commande>`.

## Connexion

```bash theme={null}
orbitlab login
```

La CLI affiche un code court et ouvre votre navigateur. Vérifiez que le code correspond, choisissez les organisations auxquelles la CLI peut accéder, puis cliquez sur **Autoriser**. La CLI enregistre alors un jeton d'API dans `~/.config/orbitlab/config.json`, lisible par vous seul. Ce jeton expire au bout de 90 jours ; relancez `orbitlab login` à son expiration.

* Vous avez déjà un jeton ? Transmettez-le par l'entrée standard pour qu'il n'apparaisse pas dans l'historique : `orbitlab login --with-token < token.txt`
* Sur un serveur sans navigateur : `orbitlab login --no-browser`, puis ouvrez le lien affiché sur n'importe quel appareil.
* `orbitlab whoami` affiche le compte, l'organisation et le jeton utilisés.
* `orbitlab logout` révoque le jeton enregistré et le supprime de la machine.

<Note>
  En CI, n'utilisez pas `orbitlab login`. Créez un jeton dans **Tableau de bord → Paramètres → Jetons d'API** et fournissez-le via la variable d'environnement `ORBITLAB_TOKEN`.
</Note>

## Choisir une organisation

Les commandes agissent sur une organisation à la fois. Par défaut, c'est la première organisation que vous avez rejointe.

```bash theme={null}
orbitlab orgs ls              # * indique l'organisation utilisée
orbitlab orgs switch acme     # identifiant, slug ou nom
orbitlab services ls --org beta
```

L'organisation est déterminée, dans l'ordre, par : `--org`, la variable `ORBITLAB_ORG`, le [projet lié](#lier-un-dossier), puis `orbitlab orgs switch`. Un jeton limité à une organisation utilise toujours celle-ci.

## Lier un dossier

Liez le dossier de votre projet à son service pour ne plus répéter le nom du service :

```bash theme={null}
cd mon-app
orbitlab link mon-app
orbitlab deploy --wait
orbitlab env ls
```

`orbitlab link` crée `.orbitlab/project.json` (identifiants du service et de l'organisation, aucun secret) et ajoute `.orbitlab` au `.gitignore`. Le lien fonctionne depuis n'importe quel sous-dossier. Supprimez-le avec `orbitlab unlink`. Les commandes acceptent aussi un identifiant, un nom ou un domaine de service en argument ou via `--service`.

## Déployer depuis Git

Commandez une application, connectez son dépôt, puis déployez :

```bash theme={null}
orbitlab plans ls --type application
orbitlab buy app --plan app-1 --label api
orbitlab services ls
orbitlab services setup api --repo https://github.com/acme/api \
  --build-cmd "npm run build" --start-cmd "npm start" --env NODE_ENV=production
```

Les dépôts GitHub privés sont détectés automatiquement une fois l'application GitHub installée (`orbitlab git connect`).

```bash theme={null}
orbitlab deploy                     # branche de production
orbitlab deploy --commit 3f2c1ab    # un commit précis
orbitlab deploy --wait              # affiche le build ; code de sortie 1 en cas d'échec
orbitlab deployments ls
orbitlab deployments logs <deploymentId>
orbitlab restart
orbitlab settings set --branch release --root-dir apps/api
```

## Variables d'environnement

```bash theme={null}
orbitlab env ls                   # valeurs masquées ; --reveal pour les afficher
orbitlab env set API_URL=https://api.example.com SENTRY_DSN=https://…
orbitlab env rm OLD_KEY
orbitlab env pull .env.local      # télécharger dans un fichier
orbitlab env push .env.production # envoyer un fichier
```

Les modifications s'appliquent au prochain déploiement ou après `orbitlab restart`.

## Journaux et métriques

```bash theme={null}
orbitlab logs --since 1h
orbitlab logs --follow --stream stderr
orbitlab logs -q "timeout"
orbitlab logs --runtime             # sortie en direct du conteneur
orbitlab requests --status 5xx --since 30m
orbitlab metrics
orbitlab metrics --history --from 24h
```

## Domaines et DNS

```bash theme={null}
orbitlab domains check example.cd
orbitlab domains buy example.cd --quantity 2
orbitlab domains add www.example.com       # rattacher au service lié
orbitlab domains verify www.example.com    # après avoir créé les enregistrements affichés
orbitlab domains update example.cd --auto-renew --lock --privacy
orbitlab domains auth-code example.cd
```

Pour transférer le DNS d'un domaine chez OrbitLab, lancez `orbitlab domains import example.com`, configurez chez votre registraire les serveurs de noms affichés, puis lancez `orbitlab domains activate example.com`.

```bash theme={null}
orbitlab dns ls example.com
orbitlab dns add example.com www CNAME web.orbitlab.sh
orbitlab dns add example.com @ MX mail.example.com --priority 10
orbitlab dns add example.com @ TXT "v=spf1 include:_spf.example.com ~all"
orbitlab dns update example.com <recordId> --value 203.0.113.10
orbitlab dns rm example.com <recordId>
```

## Bases de données

```bash theme={null}
orbitlab db ls
orbitlab db inspect app-db              # identifiants pour les propriétaires et administrateurs
orbitlab db tables app-db
orbitlab db rows app-db users --limit 20
orbitlab db query app-db "SELECT count(*) FROM users"
orbitlab db create boutique --service mon-site   # hébergement mutualisé
```

## Fichiers et SFTP

Les chemins sont relatifs à la racine du site (WordPress, PHP) ou au stockage persistant de l'application dans `/app/data`.

```bash theme={null}
orbitlab files ls wp-content/uploads
orbitlab files get wp-config.php
orbitlab files put ./logo.png wp-content/uploads
orbitlab files mkdir backups
orbitlab files sftp
```

## WordPress

```bash theme={null}
orbitlab wp actions
orbitlab wp run cache:flush --wait
orbitlab wp run plugin:install --param slug=wordfence --wait
orbitlab wp reset-admin --password "un-long-nouveau-mot-de-passe"
```

## Hébergement mutualisé

```bash theme={null}
orbitlab buy hosting --plan starter --period yearly
orbitlab hostings ls
orbitlab hostings add-website <hostingId> --template wordpress --label blog
orbitlab orders provision <orderId> --template php-starter
```

## Facturation

```bash theme={null}
orbitlab buy vps --plan vps-1
orbitlab buy app --plan app-1 --pay mobile-money --phone +243812345678 --autopay --wait
orbitlab promo validate BIENVENUE --plan app-1
orbitlab orders ls
orbitlab orders invoice <orderId>
orbitlab billing ls
orbitlab billing renew service api
orbitlab billing autopay --disable
```

Les commandes se paient par Mobile Money : une demande de paiement est envoyée au numéro `--phone`, et l'opérateur est détecté à partir du numéro, ou indiquez `--network`. Une commande gratuite, par exemple entièrement couverte par `--promo`, ne nécessite pas de numéro. Le paiement par carte est actuellement indisponible.

## Organisation et accès

```bash theme={null}
orbitlab members ls
orbitlab invitations create dev@example.com --role admin
orbitlab members role dev@example.com member
orbitlab members rm dev@example.com
orbitlab tokens ls
orbitlab tokens rm <tokenId>
```

## Scripts et CI

* `--json` produit une sortie exploitable par machine sur stdout. Les messages de progression vont sur stderr.
* Les commandes qui suppriment ou modifient un élément important demandent une confirmation. Ajoutez `--yes` (`-y`) dans vos scripts.
* Codes de sortie : `0` succès, `1` échec (erreur de l'API, déploiement échoué, domaine non vérifié), `2` utilisation invalide.
* `orbitlab api` appelle n'importe quel [point d'accès de l'API](/fr/api) avec vos identifiants : `orbitlab api /v1/services -F type=app`.

Déployer un commit après la réussite des tests avec GitHub Actions :

```yaml .github/workflows/deploy.yml theme={null}
name: Deploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npx @orbitlab/cli deploy ${{ vars.ORBITLAB_SERVICE }} --commit ${{ github.sha }} --wait
        env:
          ORBITLAB_TOKEN: ${{ secrets.ORBITLAB_TOKEN }}
```

## Options globales et variables d'environnement

| Option            | Variable              | Description                                                               |
| ----------------- | --------------------- | ------------------------------------------------------------------------- |
| `--token <token>` | `ORBITLAB_TOKEN`      | Jeton d'API à utiliser à la place de la connexion enregistrée             |
| `--org <org>`     | `ORBITLAB_ORG`        | Identifiant ou slug de l'organisation                                     |
| `--api-url <url>` | `ORBITLAB_API_URL`    | URL de base de l'API (par défaut `https://orbitlab.dev`)                  |
| `--json`          |                       | Sortie JSON                                                               |
| `-y`, `--yes`     |                       | Ignorer les confirmations                                                 |
| `--debug`         |                       | Journaliser les requêtes HTTP sur stderr                                  |
|                   | `ORBITLAB_CONFIG_DIR` | Emplacement de la connexion enregistrée (par défaut `~/.config/orbitlab`) |
|                   | `NO_COLOR`            | Désactiver les couleurs                                                   |

## Référence des commandes

Lancez `orbitlab help` pour la liste et `orbitlab <commande> --help` pour toutes les options d'une commande.

| Commande                        | Description                                                                             |
| ------------------------------- | --------------------------------------------------------------------------------------- |
| `orbitlab login`                | Se connecter et enregistrer un jeton d'API sur la machine                               |
| `orbitlab logout`               | Révoquer et oublier le jeton enregistré                                                 |
| `orbitlab whoami`               | Afficher l'utilisateur, l'organisation et le jeton                                      |
| `orbitlab tokens ls`            | Lister vos jetons d'API                                                                 |
| `orbitlab tokens rm`            | Révoquer un jeton d'API                                                                 |
| `orbitlab orgs ls`              | Lister vos organisations                                                                |
| `orbitlab orgs switch`          | Choisir l'organisation par défaut                                                       |
| `orbitlab orgs inspect`         | Afficher une organisation                                                               |
| `orbitlab orgs rename`          | Renommer l'organisation active                                                          |
| `orbitlab members ls`           | Lister les membres                                                                      |
| `orbitlab members role`         | Changer le rôle d'un membre (propriétaire uniquement)                                   |
| `orbitlab members rm`           | Retirer un membre, ou quitter l'organisation                                            |
| `orbitlab invitations ls`       | Lister les invitations en attente                                                       |
| `orbitlab invitations create`   | Inviter une personne                                                                    |
| `orbitlab invitations rm`       | Révoquer une invitation                                                                 |
| `orbitlab invitations accept`   | Accepter une invitation                                                                 |
| `orbitlab services ls`          | Lister les services (applications, sites WordPress, VPS)                                |
| `orbitlab services inspect`     | Afficher un service, ses URL et son dernier déploiement                                 |
| `orbitlab services setup`       | Connecter un dépôt Git à une nouvelle application et la déployer                        |
| `orbitlab services rm`          | Supprimer le projet d'un service (l'abonnement est conservé)                            |
| `orbitlab services retry`       | Relancer la mise en service d'un site WordPress en attente                              |
| `orbitlab link`                 | Lier le dossier courant à un service                                                    |
| `orbitlab unlink`               | Supprimer le lien du dossier                                                            |
| `orbitlab settings get`         | Afficher les paramètres de build et Git                                                 |
| `orbitlab settings set`         | Modifier les paramètres de build et Git                                                 |
| `orbitlab firewall get`         | Afficher les listes d'IP autorisées et bloquées                                         |
| `orbitlab firewall set`         | Remplacer les listes d'IP autorisées et bloquées                                        |
| `orbitlab deploy`               | Déployer la branche de production ou un commit                                          |
| `orbitlab deployments ls`       | Lister les déploiements                                                                 |
| `orbitlab deployments inspect`  | Afficher un déploiement                                                                 |
| `orbitlab deployments logs`     | Afficher le journal de build                                                            |
| `orbitlab deployments rm`       | Supprimer un déploiement                                                                |
| `orbitlab restart`              | Redémarrer le conteneur                                                                 |
| `orbitlab env ls`               | Lister les variables d'environnement                                                    |
| `orbitlab env set`              | Ajouter ou modifier des variables                                                       |
| `orbitlab env rm`               | Supprimer des variables                                                                 |
| `orbitlab env pull`             | Télécharger les variables dans un fichier .env                                          |
| `orbitlab env push`             | Envoyer les variables d'un fichier .env                                                 |
| `orbitlab logs`                 | Afficher les journaux de l'application                                                  |
| `orbitlab requests`             | Afficher les journaux de requêtes HTTP                                                  |
| `orbitlab metrics`              | Afficher l'utilisation CPU, mémoire, réseau et stockage                                 |
| `orbitlab domains ls`           | Lister les domaines                                                                     |
| `orbitlab domains inspect`      | Afficher un domaine                                                                     |
| `orbitlab domains check`        | Vérifier la disponibilité d'un domaine                                                  |
| `orbitlab domains search`       | Suggérer des domaines pour un mot-clé                                                   |
| `orbitlab domains buy`          | Enregistrer un domaine                                                                  |
| `orbitlab domains add`          | Rattacher un domaine à un service                                                       |
| `orbitlab domains verify`       | Vérifier le DNS et activer un domaine                                                   |
| `orbitlab domains remove`       | Détacher un domaine                                                                     |
| `orbitlab domains update`       | Modifier renouvellement, verrou de transfert, confidentialité WHOIS ou serveurs de noms |
| `orbitlab domains auth-code`    | Afficher le code de transfert (EPP)                                                     |
| `orbitlab domains import`       | Transférer l'hébergement DNS d'un domaine chez OrbitLab                                 |
| `orbitlab domains activate`     | Terminer un import DNS                                                                  |
| `orbitlab dns ls`               | Lister les enregistrements DNS                                                          |
| `orbitlab dns add`              | Créer un enregistrement DNS                                                             |
| `orbitlab dns update`           | Modifier un enregistrement DNS                                                          |
| `orbitlab dns rm`               | Supprimer un enregistrement DNS                                                         |
| `orbitlab db ls`                | Lister les bases de données                                                             |
| `orbitlab db inspect`           | Afficher une base et ses identifiants                                                   |
| `orbitlab db create`            | Ajouter une base à un hébergement mutualisé                                             |
| `orbitlab db rm`                | Supprimer une base                                                                      |
| `orbitlab db tables`            | Lister les tables                                                                       |
| `orbitlab db rows`              | Parcourir les lignes d'une table                                                        |
| `orbitlab db query`             | Exécuter une requête SQL                                                                |
| `orbitlab files ls`             | Lister les fichiers                                                                     |
| `orbitlab files get`            | Télécharger un fichier                                                                  |
| `orbitlab files put`            | Envoyer un fichier                                                                      |
| `orbitlab files mkdir`          | Créer un dossier                                                                        |
| `orbitlab files sftp`           | Afficher les informations de connexion SFTP                                             |
| `orbitlab wp actions`           | Lister les actions WordPress gérées                                                     |
| `orbitlab wp run`               | Exécuter une action gérée                                                               |
| `orbitlab wp job`               | Afficher une tâche                                                                      |
| `orbitlab wp reset-admin`       | Réinitialiser le compte administrateur WordPress                                        |
| `orbitlab hostings ls`          | Lister les hébergements mutualisés                                                      |
| `orbitlab hostings inspect`     | Afficher un hébergement et ses sites                                                    |
| `orbitlab hostings add-website` | Créer un site sur un hébergement mutualisé                                              |
| `orbitlab plans ls`             | Lister les formules et les prix                                                         |
| `orbitlab templates ls`         | Lister les modèles déployables                                                          |
| `orbitlab buy`                  | Commander une application, un hébergement, un VPS ou un domaine                         |
| `orbitlab orders ls`            | Lister les commandes                                                                    |
| `orbitlab orders inspect`       | Afficher une commande                                                                   |
| `orbitlab orders retry`         | Relancer un paiement                                                                    |
| `orbitlab orders provision`     | Mettre en service l'hébergement ou le VPS d'une commande payée                          |
| `orbitlab orders invoice`       | Télécharger une facture                                                                 |
| `orbitlab billing ls`           | Lister les abonnements et dates de renouvellement                                       |
| `orbitlab billing renew`        | Renouveler un service, un hébergement ou un domaine                                     |
| `orbitlab billing autopay`      | Afficher ou désactiver le renouvellement automatique                                    |
| `orbitlab billing providers`    | Lister les opérateurs Mobile Money                                                      |
| `orbitlab promo validate`       | Tester un code promo                                                                    |
| `orbitlab git ls`               | Lister les installations de l'application GitHub                                        |
| `orbitlab git repos`            | Lister les dépôts déployables                                                           |
| `orbitlab git connect`          | Installer l'application GitHub                                                          |
| `orbitlab git disconnect`       | Désinstaller l'application GitHub                                                       |
| `orbitlab api`                  | Appeler n'importe quel point d'accès de l'API                                           |
