2. Progetti
2.3 Avviare un progetto: azioni e porte
Che cos'è un'azione, come si avvia e si ferma, l'output, la porta, l'azione predefinita e come aggiungerne di tue nel file panel.json.
Nell'app: «Progetti»
In breve
- Un'azione è un comando del progetto con un nome: «npm run dev», «php artisan serve», il sito web…
- Le azioni web ricevono una porta dal kit, che aspetta che rispondano e ti dà l'indirizzo da aprire.
- La stella «Predefinita» sceglie l'azione del pulsante «Avvia».
- Le azioni si riconoscono da sole; le tue si aggiungono con «Nuova azione» e finiscono nel file panel.json del progetto.

In alto i pulsanti Avvia, Editor, Terminale e Agente; sotto, l'azione scelta con stato, comando e porta, e l'elenco delle azioni.
La sezione «Avvio»
In alto c'è il dettaglio dell'azione scelta (all'inizio quella predefinita), sotto l'elenco «Azioni». Un clic su una riga la sceglie e ne mostra l'output; ▶ e ■ sulla riga la avviano e la fermano.
| Voce | Che cosa dice |
|---|---|
| Stato | fermo, in avvio, in ascolto (azione web pronta), in esecuzione, terminato, fermato, errore (con il codice di uscita). |
| Comando | Il comando eseguito, oppure il server che serve il sito (file server del kit, Apache o Caddy). |
| Cartella | Dove viene eseguito il comando. |
| Porta | Solo per le azioni web: «automatica» o un numero scelto da te. |
| Indirizzo | Mentre l'azione è in ascolto, l'indirizzo da aprire (un collegamento). |
| Dal telefono | Con «Rete locale» accesa nelle Impostazioni, l'indirizzo con l'IP di questo PC sulla rete, da aprire da un telefono o da un altro PC collegato alla stessa rete: «Copia», e «Mostra il QR» da inquadrare con la fotocamera, invece di ricopiare l'IP. Il QR lo crea Atollo, senza servizi su internet. Non c'è per un nome come shop.localhost di un server condiviso: il telefono non può mandare quel nome. |
| Origine | panel.json, se l'azione è scritta a mano nel progetto. |
Sotto il dettaglio c'è il riquadro «Output di …» con la casella «Segui», che tiene in vista le ultime righe. Il kit conserva le ultime 3000 righe di ogni azione; le sue note compaiono come righe che iniziano con [Atollo]. I pulsanti in alto: la stella «Predefinita», «Apri nel browser» (mentre un'azione web è in ascolto) e «Togli l'output» (quando l'azione è finita).
Che cosa succede quando premi «Avvia»
- RileggeRiconosce di nuovo il progetto: panel.json potrebbe essere cambiato.
- InstallaSe all'azione manca un componente, lo installa prima.
- PreparaAmbiente del kit, versioni del progetto, porta, variabili dell'azione.
- AvviaEsegue il comando nella cartella dell'azione.
- AspettaPer un'azione web, finché la porta risponde: allora è «in ascolto».
- Il browser non si apre da solo: usa «Apri nel browser» (qui, nel «Pannello rapido» o nel pannello «Attività»). L'indirizzo è di solito http://localhost:<porta>/.
- Se il programma ignora la porta assegnata e ne stampa un'altra nell'output, il kit segue quella.
- «Ferma» chiude l'intero albero di processi dell'azione. Chiudendo Atollo si fermano tutte le azioni.
- Le azioni avviate compaiono anche nel pannello «Attività» e nel contatore della barra di stato; nel pannello «Ferma tutto», dopo una conferma, le ferma insieme ai database e ai server web in esecuzione.
La porta
Ogni azione web ha una porta tutta sua, scelta dal kit tra 7100 e 7999 la prima volta e poi tenuta uguale a ogni avvio: così l'indirizzo non cambia. Se ti serve un numero preciso, scrivilo nel campo «Porta» e premi Invio (o esci dal campo); svuotandolo torni alla porta automatica.
- La porta deve essere tra 1024 e 65535.
- Le porte da 7000 a 7099 sono dell'editor: una di queste viene rifiutata con «Le porte da 7000 a 7099 sono dell'editor».
- Una porta già usata da un'altra azione viene rifiutata con «Porta già assegnata a …», seguito da progetto → azione.
- Viene rifiutata anche una porta che ha già un pool dei server web o una versione di un database, e il messaggio dice di chi è: «La porta … è già del server …: scegline un'altra.» oppure «La porta … è già del database …: scegline un'altra.» (per esempio MySQL 8.4).
L'azione predefinita
È quella che parte con il pulsante «Avvia» della pagina, con ▶ nella riga del progetto e con Maiusc+Invio in «Apri un progetto». Per cambiarla scegli l'azione nell'elenco e premi la stella «Predefinita». Quando servi il progetto come sito web, il sito diventa da solo l'azione predefinita.
Aggiungere, modificare e togliere azioni
- Nella sezione «Avvio» premi «Nuova azione», accanto al titolo «Azioni».
- Compila «Nome», «Tipo» («Sito o server web», «App con finestra» o «Comando») e «Comando»; se serve, «Cartella» (relativa al progetto), «Indirizzo» (solo per un sito) e «Variabili», una NOME=valore per riga. Nel comando, {port} diventa la porta dell'azione.
- Premi «Salva». L'azione compare nell'elenco; l'identificativo si ricava dal nome.
- «Modifica», sull'azione scelta, riapre lo stesso modulo. Su un'azione riconosciuta salva una tua versione con lo stesso identificativo, che prende il suo posto.
- «Togli» c'è solo per le azioni tue e chiede conferma; se esiste un'azione riconosciuta con lo stesso identificativo, torna quella.
- Il sito web si modifica nella sezione «Sito web», non qui.
Il file panel.json
Le azioni tue, la stella e il sito web stanno nel file panel.json nella cartella del progetto. Puoi anche scriverlo a mano e premere «Aggiorna». Il file sta nel progetto, quindi va in Git e vale per chiunque usi il progetto con Atollo.
projects\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"
}
]
}| Chiave | Significato |
|---|---|
id | Identificativo dell'azione: minuscole, cifre e - _ : . (al massimo 40 caratteri). |
label | Il nome che vedi nell'elenco. |
type | web (un server con porta), desktop (un'app con finestra) o command (un comando che fa qualcosa e finisce). |
command | Il comando. {port} viene sostituito con la porta dell'azione. |
folder | La sottocartella in cui eseguirlo (facoltativa). |
url | L'indirizzo da aprire, se non è http://localhost:{port}/ (facoltativo). |
env | Variabili d'ambiente in più solo per questa azione (facoltativo). |
default | In cima al file: l'id dell'azione predefinita. |
replace | In cima al file: true per togliere tutte le azioni riconosciute e tenere solo le tue. |
Sotto il cofano
- Il comando viene eseguito con cmd.exe su Windows e /bin/sh su macOS e Linux, nella cartella dell'azione, con l'ambiente del kit e le versioni del progetto. I token degli agenti (CLAUDE_CODE_OAUTH_TOKEN, GEMINI_API_KEY, LLAMA_API_KEY) non ci sono: arrivano solo agli agenti avviati da Atollo.
- Le azioni web ricevono le variabili PORT (e ROCKET_PORT) con la porta; tutte ricevono BROWSER=none, PYTHONUNBUFFERED=1 e ATOLLO_LANG. Se il progetto ha un database MySQL del kit e il suo .env non dice un'altra porta, ricevono anche DB_PORT.
- Le porte assegnate e quelle scelte da te sono in data\projects\<progetto>\ports.json, fuori dal progetto.
- Ogni azione gira in un suo gruppo di processi (un Job Object su Windows): «Ferma» chiude anche i processi figli, per esempio il server avviato da npm.
- Nei file vecchi sono ancora accettate le chiavi in italiano (azioni, etichetta, comando, cartella, predefinita) e {porta} al posto di {port}.