# La commande ark

> Tout ton hébergement Arkya, depuis le terminal.

`ark` pilote les six gammes : serveurs de jeu, applications, instances, machines
virtuelles, dédiés, stockage. Elle parle à la même API que l'espace client, avec un
[jeton](/commencer/jetons) plutôt qu'une session.

```bash
ark --help
```

## Les commandes

<CardGroup cols={2}>
  <Card title="Compte" icon="user" href="/cli/compte">
    `login` · `logout` · `whoami` · `balance`
  </Card>
  <Card title="Services" icon="server" href="/cli/services">
    `ls` · `info` · `use` · `settings` · `rm`
  </Card>
  <Card title="Marche et arrêt" icon="power-off" href="/cli/marche-et-arret">
    `start` · `stop` · `restart` · `kill` · `suspend` · `resume`
  </Card>
  <Card title="Console" icon="signal-stream" href="/cli/console">
    `console` · `exec`
  </Card>
  <Card title="Journaux" icon="scroll" href="/cli/logs">
    `logs` · `logs --follow`
  </Card>
  <Card title="Variables" icon="sliders" href="/cli/env">
    `env ls|set|unset|pull|push`
  </Card>
  <Card title="Fichiers" icon="folder-open" href="/cli/files">
    `files ls|cat|get|put|mkdir|rm|mv`
  </Card>
  <Card title="Sauvegardes" icon="clock-rotate-left" href="/cli/backup">
    `backup ls|create|restore|rm`
  </Card>
  <Card title="Instantanés" icon="camera" href="/cli/snapshot">
    `snapshot ls|create|rollback|rm`
  </Card>
  <Card title="Taille" icon="up-right-and-down-left-from-center" href="/cli/scale">
    `scale --cpu --ram --disk`
  </Card>
  <Card title="Réseau" icon="network-wired" href="/cli/net">
    `net --public|--private` · `command`
  </Card>
  <Card title="SFTP" icon="key" href="/cli/sftp">
    `sftp` · `sftp --reset`
  </Card>
  <Card title="Projets" icon="folder-tree" href="/cli/project">
    `project ls|create|show|attach`
  </Card>
  <Card title="Applications" icon="docker" href="/cli/applications">
    `init` · `build` · `push` · `deploy` · `status`
  </Card>
</CardGroup>

## Les options partout

| Option | Ce qu'elle fait |
| --- | --- |
| `--json` | Rend la réponse brute de l'API, sans tableau ni couleur. Pour un script. |
| `--yes` | Ne demande aucune confirmation. Pour l'automatisation. |
| `--help` | Rappelle la page d'aide. |

## La forme d'une commande

```
ark <commande> [verbe] [service] [arguments] [--options]
```

Les commandes à verbes — `env`, `files`, `backup`, `snapshot`, `project` — prennent
leur verbe en premier :

```bash
ark backup create survie-2026 avant-maj
ark files get survie-2026 /logs/latest.log
ark env set api-boutique LOG_LEVEL=debug
```

Les autres prennent le service directement :

```bash
ark restart survie-2026
ark console survie-2026
ark scale survie-2026 --ram 12
```

## Ce que le CLI refuse de faire

Il ne commande pas de service — le catalogue, les prix et le solde sont dans
l'espace client. La seule exception est l'application conteneurisée, que `ark init`
crée parce qu'elle naît d'un dépôt de code.

Il ne fait pas semblant non plus : si un service n'a pas de console, `ark console`
le dit plutôt que d'ouvrir un tuyau vide.

## Quand ça ne marche pas

Le CLI essaie de dire quoi faire, pas seulement ce qui a raté :

```
x Aucun service ne répond à « survi ».
  Lance `ark ls` pour voir ce que tu héberges.
```

```
x Rien n'écoute sur https://api.arkya.gg.
  En développement, démarre la pile : pnpm dev:local
```

Le code de sortie est `0` en cas de succès, `1` sinon — de quoi écrire un `set -e`
tranquille.
