arkya.json décrit l’état voulu de ton application : où elle tourne, quelle puissance elle a, de quoi elle a besoin pour démarrer. ark plan dit ce qui manque pour y arriver, ark deploy l’applique puis déploie.
arkya.json

L’application

Sans size, le service prend le minimum qu’accepte le nœud — 1 vCPU, 1 Go, et le disque plancher de la machine, souvent 10 Go. C’est la plus petite taille qui démarre vraiment, pas une valeur théorique.
size vaut aussi bien à la création qu’ensuite : si tu montes ram de 2 à 4, ark deploy retaille l’application avant de déployer. Le disque ne se réduit pas.

La commande de démarrage

start remplace le CMD de ton image. C’est là que va un script de migration, par exemple :
Elle s’applique au prochain démarrage — donc à la mise en service que ark deploy enchaîne juste après. Chaque image du manifeste a la sienne.

Les prérequis

Chaque entrée de services est un service qu’Arkya doit tenir prêt. La clé est l’alias : c’est par lui que tu y fais référence dans env. Les éditions disponibles se lisent dans le catalogue :

Les références

Dans env, ${alias.clé} est remplacé par la vraie valeur du service, au moment du déploiement.
Une référence vers un alias absent de services arrête le déploiement plutôt que de poser une variable vide. C’est volontaire : une application qui démarre avec une DATABASE_URL tronquée est plus difficile à diagnostiquer qu’un refus net.

Voir avant de faire

Chaque ligne porte son tarif mensuel, y compris les services déjà en place — le total est celui que tu paieras une fois le manifeste tenu, pas seulement le coût de ce qui change. Une retaille montre en plus l’écart avec le tarif actuel. Les valeurs qui contiennent un secret sont masquées à l’affichage — le mot de passe part bien au service, il ne s’affiche simplement pas dans ton terminal.

Appliquer

Les deux montrent le plan et demandent confirmation avant de commander quoi que ce soit : déclarer une base dans un fichier, c’est engager une dépense. --yes saute la question, pour l’intégration continue.

Plusieurs images dans un même dépôt

Un service de type app est une seconde image, construite depuis le même dépôt : un worker, un cron, un consommateur de file.
ark deploy construit, pousse et met en service chaque image, avec le même nom de version — tu sais toujours quelle ligne de code tourne, des deux côtés.
Chaque image a son propre bloc env : le worker ne reçoit pas les variables de l’API, et inversement. dockerfile et context valent ceux de l’application quand ils ne sont pas précisés.

Venir de Railway

Un railway.json se traduit presque ligne pour ligne, à deux exceptions près :
arkya.json
Sur le redémarrage : le nœud relance tout seul un conteneur qui s’arrête en erreur, et cesse d’insister quand il replante dans la minute. Ce n’est pas réglable par application, et il n’y a pas de sonde de santé : un processus qui répond mal sans planter ne sera pas redémarré à ta place. ark logs --follow reste le moyen de voir ce qui se passe.

Ce que ça ne fait pas

  • Rien n’est supprimé. Retirer un service du manifeste ne le détruit pas : il reste, simplement plus personne ne le réclame. La suppression passe par ark rm, à la main.
  • Le nœud ne change pas après coup. node sert à la création ; déplacer un service d’un nœud à l’autre ne se fait pas depuis le CLI.