Buildpacks

Commitez votre code. Nodion détecte le langage, installe un runtime et construit une image.

Dans Applications → New, connectez un dépôt Gitet choisissez Buildpacks. Nodion utilise le builder par défaut, sauf si vous en choisissez un autre. Dans un monorepo, faites pointer Base directory vers le dossier de l'app.

Utilisez plutôt un Dockerfilesi vous en avez déjà un, ou si le dépôt ne correspond pas à un langage pris en charge.

De quoi s'agit-il ?

Les Nodion Buildpacks sont des Cloud Native Buildpacks. Les phases de détection, de build et de lancement suivent cette spécification. Les buildpacks de langage, la stack Ubuntu et les versions de runtime sont propres à Nodion. Ce ne sont pas des buildpacks Paketo, Heroku ou Google.

La stack actuelle est nodion-26 : Ubuntu 26.04 LTS. L'image de build contient des compilateurs et des fichiers d'en-tête. L'image d'exécution (run image) contient les bibliothèques client courantes (Postgres, MySQL, ImageMagick, certificats CA, etc.). Le processus s'exécute sous un utilisateur non root. Déclarez les paquets système supplémentaires dans un Aptfile ou dans project.toml.

Ce que fait un build

  1. Examine les fichiers du répertoire de base et choisit le premier groupe de langage correspondant.
  2. Détermine le runtime à partir de la version que vous avez fixée (ou de la version par défaut), puis l'installe.
  3. Installe les dépendances à partir du fichier de verrouillage (lockfile) ou du manifeste.
  4. Exécute le build propre au langage (assets, mix release, go build, etc.).
  5. Définit un processus web par défaut. Un Procfile le remplace.

Votre app doit écouter sur PORT ; Nodion définit cette variable. La plupart des commandes par défaut utilisent 8080 si elle n'est pas définie.

Détection

Les groupes sont testés de haut en bas. Le premier groupe dont tous les fichiers requis sont présents l'emporte. Les paquets Debian supplémentaires sont facultatifs dans chaque groupe.

Si l'arborescence contient Nodion utilise
package.json et un frontend statique Node.js, puis static
composer.json et package.json PHP et Node (Laravel avec Vite, par exemple)
Gemfile et package.json Ruby et Node (Rails avec JS)
composer.json PHP
Gemfile Ruby
requirements.txt, Pipfile ou pyproject.toml Python
go.mod Go
Cargo.toml Rust
mix.exs Elixir
pom.xml ou fichiers Gradle Java
*.csproj, *.fsproj ou *.sln .NET
package.json seul (une app serveur) Node.js
static.toml et pas de package.json Site statique
Procfile seul Vos types de processus, sans installation de langage

L'analyse du dashboard affiche un avertissement lorsqu'elle ne trouve aucun marqueur pris en charge. Vous pouvez tout de même choisir Buildpacks, passer à un Dockerfile ou définir un autre répertoire de base.

Versions prises en charge

Nodion conserve une branche de langage jusqu'à sa fin de vie, puis pendant trois mois au maximum. Si vous demandez une version mineure, vous obtenez son dernier correctif publié. Une version antérieure à la plus ancienne branche publiée fait échouer le build (fin de vie). Une version plus récente que toutes les versions déjà construites fait également échouer le build (pas encore disponible).

Go et Rust font exception : la toolchain publiée la plus récente construit l'app, même si go.mod ou rust-version indique une version plus ancienne.

Les branches ci-dessous étaient disponibles en septembre 2026. Les correctifs évoluent au fil de nos publications. Si vous avez besoin d'une version mineure précise, fixez-la dans le fichier indiqué sur la page du langage.

Langage Par défaut Branches publiées
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 la plus récente (actuellement 1.25-1.27)
Rust 1.96 Toolchain la plus récente (actuellement 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, 28 par défaut)

Procfile

Un Procfile dans le répertoire de base définit les types de processus. web est le processus par défaut s'il existe, sinon c'est la première ligne. Les valeurs par défaut du langage ne s'appliquent qu'en l'absence de Procfile.

web: gunicorn myapp.wsgi --bind 0.0.0.0:$PORT
worker: python worker.py

Chaque type devient un processus distinct de l'app. Réglez le nombre de réplicas et la commande dans l'onglet Processes.

Paquets Debian supplémentaires

Privilégiez project.toml. Un Aptfile (un paquet ou une URL .deb par ligne) fonctionne toujours. Si les deux existent, project.toml l'emporte.

[com.nodion.buildpacks.deb-packages]
install = ["ffmpeg", "pandoc"]

Les paquets sont extraits dans l'image. Leurs scripts de maintenance (maintainer scripts) ne s'exécutent pas ; les paquets qui créent des utilisateurs système ou démarrent des services ne fonctionneront donc pas. Un paquet pointé par une URL directe https://…/*.deb est téléchargé tel quel, sans résolution des dépendances.

Offrez un cloud à votre agent.

Jusqu'à 15 € de crédit de bienvenue à l'inscription.

Continuer avec GitHub

ou par e-mail

Restez informé.

Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.