# Toutes les commandes

> La référence du CLI ark 0.2.0, famille par famille, avec les options que chaque commande comprend vraiment.

Source : https://docs.arkya.gg/cli/commandes

`ark help` affiche la même liste dans ton terminal. Chaque commande prend d’abord ses mots, puis ses options : `ark rm mon-api --yes`, et non `ark rm --yes mon-api`.

## Désigner un service

Une commande qui agit sur un service le cherche dans cet ordre :

1. le nom que tu donnes, `ark info mon-api` ;
2. sinon le service par défaut, choisi avec `ark use mon-api` ;
3. sinon l’application du `arkya.json` du dossier courant.

Le nom peut être exact, le début du nom ou un morceau, sans tenir compte des majuscules. L’identifiant du service marche aussi. Si plusieurs services correspondent, `ark` les liste et te demande de préciser.

## Compte

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark login` | relie ce poste à ton compte, avec un jeton (`--token`, `--no-docker`) |
| `ark logout` | efface le jeton de ce poste |
| `ark whoami` | dit à quel compte tu es relié |
| `ark balance` | affiche ton solde |

## Services

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark ls` | liste tes services : gamme, état, adresse, taille, prix par mois |
| `ark ls --family ADB` | une seule gamme : `AGS`, `ACS`, `ADB`, `ACI`… |
| `ark ls --search boutique` | les services dont le nom contient ce texte |
| `ark info mon-api` | état, produit, nœud, adresse, taille, tarif, et ce que le service sait faire |
| `ark settings mon-api` | source, réseau, commande de démarrage, taille |
| `ark use mon-api` | en fait le service par défaut ; `ark use none` l’oublie |
| `ark rm mon-api` | supprime le service, après que tu as retapé son nom |

`ark rm` détruit le service, son disque et ses sauvegardes. `--yes` saute la question : à réserver aux scripts.

## Marche et arrêt

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark start mon-serveur` | démarre |
| `ark stop mon-serveur` | arrête proprement |
| `ark restart mon-serveur` | redémarre |
| `ark kill mon-serveur` | coupe net, quand l’arrêt ne répond plus |

Un service éteint ne paie plus que son stockage, ses IP et ses sauvegardes : voir [Un service éteint](https://docs.arkya.gg/facturation/service-eteint).

> **Bon à savoir**
>
> `ark suspend` et `ark resume` existent encore dans le CLI 0.2.0, mais l’API les refuse : la suspension est réservée à l’équipe Arkya. Pour payer moins, éteins le service avec `ark stop`.

## Console et journaux

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark console mon-serveur` | ouvre la console d’un serveur de jeu ; tape tes commandes, `/quit` pour sortir |
| `ark exec mon-serveur -- say Redémarrage dans 5 minutes` | envoie une seule commande à la console |
| `ark logs mon-api` | les dernières lignes du journal |
| `ark logs mon-api --lines 500` | plus de lignes |
| `ark logs mon-api --build` | le journal de la dernière construction d’une application |
| `ark logs mon-api --deploy` | le journal de la dernière mise en service |
| `ark logs mon-serveur --follow` | le journal en direct d’un serveur de jeu |

Dans `ark console`, `/start`, `/stop`, `/restart` et `/kill` envoient le signal sans quitter la console.

## Variables, fichiers, sauvegardes

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark env ls mon-serveur` | les variables de démarrage d’un serveur de jeu |
| `ark env set mon-serveur MAX_PLAYERS=32` | en change une ou plusieurs |
| `ark env unset mon-serveur MOTD` | en vide une |
| `ark env pull mon-serveur` | les écrit dans `.env` (`--file` pour un autre fichier) |
| `ark env push mon-serveur` | les relit depuis `.env` |
| `ark files ls mon-serveur /` | liste un dossier |
| `ark files cat mon-serveur /server.properties` | affiche un fichier |
| `ark files get mon-serveur /server.properties` | le télécharge |
| `ark files put mon-serveur server.properties /server.properties` | envoie un fichier texte |
| `ark files mkdir mon-serveur /plugins` | crée un dossier |
| `ark files rm mon-serveur /old.log` | supprime |
| `ark files mv mon-serveur /a.txt /b.txt` | renomme, dans le même dossier |
| `ark backup ls ma-base` | liste les sauvegardes et le stockage utilisé |
| `ark backup create ma-base avant-migration` | lance une sauvegarde |
| `ark backup restore ma-base avant-migration` | restaure, après confirmation |
| `ark backup rm ma-base avant-migration` | supprime une sauvegarde |
| `ark snapshot ls mon-vps` | liste les instantanés d’un VPS |
| `ark snapshot create mon-vps avant-maj --note "Avant la mise à jour"` | prend un instantané |
| `ark snapshot rollback mon-vps avant-maj` | revient à cet instantané, après confirmation |
| `ark snapshot rm mon-vps avant-maj` | le supprime |

`ark env` et `ark files` servent aux serveurs de jeu. Les variables d’une application se règlent autrement : voir [Variables et références](https://docs.arkya.gg/applications/variables). `ark files put` envoie du texte ; pour un fichier binaire, passe par [SFTP](https://docs.arkya.gg/serveurs-de-jeu/sftp).

`ark backup` sert aux serveurs de jeu et aux bases de données. Une application n’a pas de disque, donc rien à sauvegarder.

## Taille et réseau

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark scale mon-vps` | affiche la taille et les bornes permises |
| `ark scale mon-vps --cpu 2 --ram 4 --disk 40` | change la taille |
| `ark net ma-base` | affiche le nom interne, le port et l’exposition |
| `ark command mon-api` | affiche la commande de démarrage |
| `ark command mon-api node dist/worker.js` | la remplace |
| `ark command mon-api --restore` | revient à celle de l’image |
| `ark sftp mon-serveur` | l’hôte, le port et l’utilisateur SFTP |
| `ark sftp mon-serveur --reset` | génère ton mot de passe SFTP, affiché une fois |

Le disque ne se réduit jamais, et une application n’en a pas. Une nouvelle taille ou une nouvelle commande prend effet au prochain démarrage.

`ark net` accepte aussi `--public` et `--private` pour ouvrir ou fermer un service sur Internet, quand sa gamme le permet.

## Projets

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark project ls` | liste tes projets |
| `ark project create Production` | crée un projet |
| `ark project show Production` | la dépense de ses services sur 30 jours (`--range 7` pour une semaine) |
| `ark project attach mon-api Production` | range un service dans ce projet |

## Applications

| Commande | Ce qu’elle fait |
| --- | --- |
| `ark init` | crée l’application et écrit `arkya.json` |
| `ark plan` | compare le manifeste à ce qui existe, avec les prix |
| `ark plan --apply` | crée ou retaille ce qui manque, sans déployer |
| `ark build` | construit l’image pour l’architecture du nœud |
| `ark push` | l’envoie au registre et attend son analyse |
| `ark deploy` | applique le manifeste, construit, pousse et met en service |
| `ark deploy --release 8f2c1d9a44e0` | remet en service une version déjà poussée |
| `ark status` | état, image et dernières versions de l’application du dossier |
| `ark status --all` | toutes tes applications |

Options de `ark init` : `--app`, `--project`, `--node`, `--dockerfile`, `--context`, `--force` pour écraser un `arkya.json` existant. Options de `ark build`, `ark push` et `ark deploy` : `--tag` pour nommer la version, `--platform` pour forcer l’architecture.

Le détail est dans [Le manifeste arkya.json](https://docs.arkya.gg/applications/manifeste) et [Versions et retour arrière](https://docs.arkya.gg/applications/versions).

## Partout

| Option | Effet |
| --- | --- |
| `--json` | la réponse brute, pour un script ; sur `ls`, `info`, `settings`, `net`, `sftp`, `env ls`, `files ls`, `backup ls`, `snapshot ls`, `project ls` et `plan` |
| `--yes` | ne demande aucune confirmation |
| `--demarrage-immediat` | demande le démarrage immédiat d’une application ou d’une base que la commande crée : voir [Démarrage immédiat](https://docs.arkya.gg/cli/demarrage-immediat) |
| `--help` | affiche l’aide |
| `--version` | affiche la version |
