# Premier déploiement

> Du Dockerfile à l’application en ligne, en HTTPS, avec le CLI ark. Quatre commandes et dix minutes.

Source : https://docs.arkya.gg/demarrer/premier-deploiement

Une application Arkya, c’est ton image Docker, servie en HTTPS sur une adresse `arkya.app`. Tu construis l’image sur ton poste, `ark` l’envoie au registre d’Arkya et la met en service.

## Ce qu’il te faut

- Un compte Arkya avec un peu de solde. Voir [Créer ton compte](https://docs.arkya.gg/demarrer/compte).
- Node.js 20 ou plus récent, pour le CLI.
- Docker, pour construire et envoyer l’image.
- Un projet avec un `Dockerfile`, dont le serveur écoute sur le port donné par la variable `PORT`.

```js server.js
const http = require("node:http");

const port = Number(process.env.PORT ?? 8080);
http
  .createServer((request, response) => response.end("Bonjour depuis Arkya\n"))
  .listen(port, "0.0.0.0");
```

Les règles de l’image sont dans [Préparer ton image](https://docs.arkya.gg/applications/image).

## 1. Installer et connecter ark

Crée un jeton dans **Jetons d’API**, sur [app.arkya.gg/cles](https://app.arkya.gg/cles), puis :

```bash
npm install -g @arkyanet/cli
ark login
```

`ark login` te demande le jeton, le range sur ton poste et connecte Docker au registre `registry.arkya.gg`.

## 2. Créer l’application

Depuis le dossier de ton projet :

```bash
ark init
```

La commande te demande le nom de l’application, puis son projet. Le nom s’écrit en minuscules, chiffres et tirets, entre 3 et 40 caractères.

Comme la création est payante, `ark init` te lit ensuite la demande de démarrage immédiat. Réponds `o` pour que l’application soit créée tout de suite. Voir [Démarrage immédiat](https://docs.arkya.gg/cli/demarrage-immediat).

`ark init` écrit enfin `arkya.json`, le manifeste de ton application :

```json arkya.json
{
  "app": "mon-api",
  "dockerfile": "Dockerfile",
  "context": ".",
  "project": "Production",
  "env": {}
}
```

## 3. Déployer

```bash
ark deploy
```

`ark deploy` construit l’image pour `linux/amd64`, l’envoie au registre, attend son analyse de sécurité, puis la met en service. Il affiche l’adresse de ton application, de la forme `mon-api-a1b2c3d.arkya.app`.

Le nom de la version est le commit Git en cours. Chaque déploiement en crée une nouvelle, et les anciennes restent disponibles.

## 4. Vérifier

```bash
ark status
ark logs mon-api
```

`ark status` montre l’état, l’image en service et les dernières versions. `ark logs` lit ce que ton application écrit sur sa sortie standard.

## Et ensuite

- Une base pour tes données : [Les bases de données](https://docs.arkya.gg/bases-de-donnees).
- Tes secrets et la connexion à la base : [Variables et références](https://docs.arkya.gg/applications/variables).
- Ton propre domaine : [Adresse et domaines](https://docs.arkya.gg/applications/domaines).
- Revenir à la version d’avant : [Versions et retour arrière](https://docs.arkya.gg/applications/versions).
