2. Projets

2.3 Démarrer un projet : actions et ports

Ce qu'est une action, comment la démarrer et l'arrêter, la sortie, le port, l'action par défaut et comment ajouter les vôtres dans le fichier panel.json.

Dans l'application: «Projets»

En bref

  • Une action est une commande du projet avec un nom : « npm run dev », « php artisan serve », le site web…
  • Les actions web reçoivent un port du kit, qui attend qu'elles répondent et vous donne l'adresse à ouvrir.
  • L'étoile « Par défaut » choisit l'action du bouton « Démarrer ».
  • Les actions se reconnaissent toutes seules ; les vôtres s'ajoutent avec « Nouvelle action » et vont dans le fichier panel.json du projet.
La page d'un projet, section « Lancement »données d'exemple
La page d'un projet, section « Lancement »

En haut les boutons Démarrer, Éditeur, Terminal et Agent ; en dessous, l'action choisie avec état, commande et port, et la liste des actions.

La section « Lancement »

En haut se trouve le détail de l'action choisie (au début, celle par défaut), en dessous la liste « Actions ». Un clic sur une ligne la choisit et affiche sa sortie ; ▶ et ■ sur la ligne la démarrent et l'arrêtent.

ÉlémentCe qu'il indique
Étatarrêté, démarrage, en écoute (action web prête), en cours d'exécution, terminé, arrêté, erreur (avec le code de sortie).
CommandeLa commande exécutée, ou le serveur qui sert le site (serveur de fichiers du kit, Apache ou Caddy).
DossierOù la commande est exécutée.
PortSeulement pour les actions web : « automatique » ou un numéro choisi par vous.
AdressePendant que l'action est en écoute, l'adresse à ouvrir (un lien).
Depuis le téléphoneAvec « Réseau local » activé dans les Paramètres, l'adresse avec l'IP de ce PC sur le réseau, à ouvrir depuis un téléphone ou un autre PC du même réseau : « Copier », et « Afficher le QR code » à scanner avec l'appareil photo, au lieu de recopier l'IP. Atollo crée le QR code lui-même, sans service sur internet. Il n'y en a pas pour un nom comme shop.localhost d'un serveur partagé : le téléphone ne peut pas envoyer ce nom.
Originepanel.json, si l'action est écrite à la main dans le projet.

Sous le détail se trouve le volet « Sortie de … » avec la case « Suivre », qui garde les dernières lignes en vue. Le kit conserve les 3000 dernières lignes de chaque action ; ses notes apparaissent comme des lignes qui commencent par [Atollo]. Les boutons en haut : l'étoile « Par défaut », « Ouvrir dans le navigateur » (pendant qu'une action web est en écoute) et « Effacer la sortie » (quand l'action est terminée).

Ce qui se passe quand vous appuyez sur « Démarrer »

  1. RelitReconnaît de nouveau le projet : panel.json a pu changer.
  2. InstalleS'il manque un composant à l'action, il l'installe d'abord.
  3. PrépareEnvironnement du kit, versions du projet, port, variables de l'action.
  4. DémarreExécute la commande dans le dossier de l'action.
  5. AttendPour une action web, jusqu'à ce que le port réponde : elle est alors « en écoute ».
  • Le navigateur ne s'ouvre pas tout seul : utilisez « Ouvrir dans le navigateur » (ici, dans le « Panneau rapide » ou dans le panneau « Activité »). L'adresse est en général http://localhost:<port>/.
  • Si le programme ignore le port attribué et en affiche un autre dans la sortie, le kit suit celui-là.
  • « Arrêter » ferme toute l'arborescence de processus de l'action. Fermer Atollo arrête toutes les actions.
  • Les actions démarrées apparaissent aussi dans le panneau « Activité » et dans le compteur de la barre d'état ; dans le panneau, « Tout arrêter », après une confirmation, les arrête avec les bases de données et les serveurs web en cours d'exécution.

Le port

Chaque action web a son propre port, choisi par le kit entre 7100 et 7999 la première fois puis conservé à chaque démarrage : ainsi l'adresse ne change pas. Si vous avez besoin d'un numéro précis, tapez-le dans le champ « Port » et appuyez sur Entrée (ou quittez le champ) ; en le vidant, vous revenez au port automatique.

  • Le port doit être compris entre 1024 et 65535.
  • Les ports de 7000 à 7099 sont réservés à l'éditeur : l'un d'eux est refusé avec « Les ports 7000 à 7099 sont réservés à l'éditeur ».
  • Un port déjà utilisé par une autre action est refusé avec « Port déjà attribué à … », suivi de projet → action.
  • Un port qu'a déjà un pool de serveurs web ou une version d'une base de données est refusé aussi, et le message dit à qui il est : « Le port … appartient déjà au serveur … : choisissez-en un autre. » ou « Le port … appartient déjà à la base de données … : choisissez-en un autre. » (par exemple MySQL 8.4).

L'action par défaut

C'est celle qui démarre avec le bouton « Démarrer » de la page, avec ▶ dans la ligne du projet et avec Maj+Entrée dans « Ouvrir un projet ». Pour la changer, choisissez l'action dans la liste et appuyez sur l'étoile « Par défaut ». Quand vous servez le projet comme site web, le site devient tout seul l'action par défaut.

Ajouter, modifier et retirer des actions

  1. Dans la section « Lancement », appuyez sur « Nouvelle action », à côté du titre « Actions ».
  2. Remplissez « Nom », « Type » (« Site ou serveur web », « Application avec fenêtre » ou « Commande ») et « Commande » ; si besoin, « Dossier » (relatif au projet), « Adresse » (sites seulement) et « Variables », une NOM=valeur par ligne. Dans la commande, {port} devient le port de l'action.
  3. Appuyez sur « Enregistrer ». L'action apparaît dans la liste ; son identifiant vient du nom.
  • « Modifier », sur l'action choisie, rouvre le même formulaire. Sur une action reconnue, il enregistre votre version avec le même identifiant, qui prend sa place.
  • « Retirer » n'existe que pour vos actions et demande confirmation ; si une action reconnue a le même identifiant, elle revient.
  • Le site web se modifie dans la section « Site web », pas ici.

Le fichier panel.json

Vos actions, l'étoile et le site web se trouvent dans le fichier panel.json dans le dossier du projet. Vous pouvez aussi l'écrire à la main et appuyer sur « Actualiser ». Le fichier est dans le projet, donc il va dans Git et vaut pour quiconque utilise le projet avec Atollo.

Exemple de panel.jsonprojects\gestionale\panel.json
{
  "default": "dev",
  "actions": [
    {
      "id": "dev",
      "label": "Avvia tutto",
      "type": "web",
      "command": "npm run dev -- --port {port}",
      "folder": "frontend",
      "env": { "API_URL": "http://localhost:8000" }
    },
    {
      "id": "test",
      "label": "Prove",
      "type": "command",
      "command": "php artisan test"
    }
  ]
}
CléSignification
idIdentifiant de l'action : minuscules, chiffres et - _ : . (40 caractères au maximum).
labelLe nom que vous voyez dans la liste.
typeweb (un serveur avec un port), desktop (une application avec fenêtre) ou command (une commande qui fait quelque chose et se termine).
commandLa commande. {port} est remplacé par le port de l'action.
folderLe sous-dossier où l'exécuter (facultatif).
urlL'adresse à ouvrir, si ce n'est pas http://localhost:{port}/ (facultatif).
envVariables d'environnement supplémentaires pour cette action seulement (facultatif).
defaultEn tête du fichier : l'id de l'action par défaut.
replaceEn tête du fichier : true pour retirer toutes les actions reconnues et ne garder que les vôtres.
Sous le capot
  • La commande est exécutée avec cmd.exe sous Windows et /bin/sh sous macOS et Linux, dans le dossier de l'action, avec l'environnement du kit et les versions du projet. Les jetons des agents (CLAUDE_CODE_OAUTH_TOKEN, GEMINI_API_KEY, LLAMA_API_KEY) n'y sont pas : seuls les agents lancés par Atollo les reçoivent.
  • Les actions web reçoivent les variables PORT (et ROCKET_PORT) avec le port ; toutes reçoivent BROWSER=none, PYTHONUNBUFFERED=1 et ATOLLO_LANG. Si le projet a une base de données MySQL du kit et que son .env n'indique pas un autre port, elles reçoivent aussi DB_PORT.
  • Les ports attribués et ceux que vous avez choisis sont dans data\projects\<projet>\ports.json, en dehors du projet.
  • Chaque action tourne dans son propre groupe de processus (un Job Object sous Windows) : « Arrêter » ferme aussi les processus enfants, par exemple le serveur lancé par npm.
  • Dans les anciens fichiers, les clés en italien (azioni, etichetta, comando, cartella, predefinita) et {porta} à la place de {port} sont encore acceptées.