Buildpack
Fai il commit del codice. Nodion rileva il linguaggio, installa un runtime e crea un'immagine.
In Applications → New collega un repository Gite scegli Buildpacks. Nodion usa il builder predefinito, a meno che tu non ne scelga un altro. In un monorepo, fai puntare Base directory alla cartella dell'app.
Usa invece un Dockerfilese ne hai già uno, o se il repository non è in un linguaggio supportato.
Cosa sono
I Nodion Buildpacks sono Cloud Native Buildpacks. Le fasi di rilevamento, build e avvio seguono questa specifica. I pacchetti dei linguaggi, lo stack Ubuntu e le versioni dei runtime sono di Nodion. Non sono buildpack di Paketo, Heroku o Google.
Lo stack attuale è nodion-26: Ubuntu 26.04 LTS. L'immagine di build contiene compilatori e header. L'immagine di runtime contiene le librerie client più comuni (Postgres, MySQL, ImageMagick, certificati CA e simili). Il processo gira come utente non root. I pacchetti di sistema aggiuntivi vanno in un Aptfile o in project.toml.
Cosa fa una build
- Guarda i file nella base directory e sceglie il primo gruppo di linguaggi che corrisponde.
- Risolve un runtime a partire dalla versione che hai fissato (o da quella predefinita), poi installa quella versione.
- Installa le dipendenze dal lockfile o dal manifest.
- Esegue la build del linguaggio (asset,
mix release,go builde così via). - Imposta un processo
webpredefinito. Un Procfile lo sovrascrive.
Metti l'app in ascolto su PORT: la variabile la imposta Nodion. La maggior parte dei comandi predefiniti ripiega su 8080 se non è impostata.
Rilevamento
I gruppi vengono provati dall'alto. Vince il primo gruppo i cui file richiesti sono tutti presenti. I pacchetti Debian aggiuntivi sono opzionali in ogni gruppo.
| Se il repo contiene | Nodion usa |
|---|---|
package.json e un frontend statico | Node.js, poi static |
composer.json e package.json | PHP più Node (per esempio Laravel con Vite) |
Gemfile e package.json | Ruby più Node (Rails con JS) |
composer.json | PHP |
Gemfile | Ruby |
requirements.txt, Pipfile o pyproject.toml | Python |
go.mod | Go |
Cargo.toml | Rust |
mix.exs | Elixir |
pom.xml o file Gradle | Java |
*.csproj, *.fsproj o *.sln | .NET |
solo package.json (un'app server) | Node.js |
static.toml e nessun package.json | Sito statico |
solo Procfile | I tuoi tipi di processo, nessuna installazione del linguaggio |
La scansione nella dashboard ti avvisa quando non trova nessun file indicativo di un linguaggio supportato. Puoi comunque scegliere Buildpacks, passare a un Dockerfile o impostare una base directory diversa.
Versioni supportate
Nodion supporta ogni serie di versioni di un linguaggio fino al termine del supporto e per un massimo di tre mesi dopo. Se richiedi una versione minor, ottieni l'ultima patch pubblicata per quella versione. Se richiedi una versione precedente alla serie pubblicata più vecchia, la build fallisce perché è fuori supporto. Se ne richiedi una più recente di quelle già disponibili, fallisce perché non è ancora disponibile.
Go e Rust sono l'eccezione: la build dell'app usa la toolchain pubblicata più recente. Valori più vecchi in go.mod o rust-version compilano comunque.
Le versioni qui sotto sono aggiornate a settembre 2026. Le patch cambiano man mano che le pubblichiamo. Se vuoi scegliere la versione minor, fissala in un file come indicato nella pagina del linguaggio.
| Linguaggio | Predefinita | Versioni pubblicate |
|---|---|---|
| Node.js | 24 | 22, 24, 25, 26 |
| Python | 3.13 | 3.10-3.14 |
| PHP | 8.3 | 8.2-8.5 |
| Ruby | 3.4 | 3.3, 3.4, 4.0 |
| Go | 1.26 | Toolchain più recente (attualmente 1.25-1.27) |
| Rust | 1.96 | Toolchain più recente (attualmente 1.95-1.98) |
| Java | 21 | 11, 17, 21, 25, 26 |
| .NET | 10 | 8, 9, 10 |
| Elixir | 1.20 | 1.15-1.20 (Erlang/OTP 26-29, predefinita 28) |
Procfile
Un Procfile nella Base directory definisce i tipi di processo. Il predefinito è web, se presente, altrimenti la prima riga. I valori predefiniti del linguaggio valgono solo se non c'è un Procfile.
web: gunicorn myapp.wsgi --bind 0.0.0.0:$PORT
worker: python worker.py Ogni tipo di processo è un processo a sé dell'app. Nella scheda Processes scali le repliche e imposti il comando.
Pacchetti Debian aggiuntivi
Usa preferibilmente project.toml. Un Aptfile (un pacchetto o un URL .deb per riga) funziona ancora. Se esistono entrambi, vince project.toml.
[com.nodion.buildpacks.deb-packages]
install = ["ffmpeg", "pandoc"]
I pacchetti vengono estratti nell'immagine. Gli script del maintainer non vengono eseguiti, quindi i pacchetti che creano utenti di sistema o avviano servizi non funzionano. Un URL diretto https://…/*.deb viene scaricato così com'è, senza risoluzione delle dipendenze.