Buildpacks
Commit je code. Nodion detecteert de taal, installeert een runtime en bouwt een image.
Koppel op Applications → New een Git-repository en kies Buildpacks. Nodion gebruikt de standaardbuilder, tenzij je een andere kiest. Laat in een monorepo Base directory naar de map van de app wijzen.
Gebruik in plaats daarvan een Dockerfileals je er al een hebt, of als de repository geen ondersteunde taal gebruikt.
Wat het zijn
Nodion Buildpacks zijn Cloud Native Buildpacks. Detect, build en launch volgen die specificatie. De taalbuildpacks, de Ubuntu-stack en de runtimeversies zijn van Nodion zelf. Het zijn geen buildpacks van Paketo, Heroku of Google.
De huidige stack heet nodion-26: Ubuntu 26.04 LTS. De build-image bevat compilers en headers. De run-image bevat gangbare clientlibraries (Postgres, MySQL, ImageMagick, CA-certificaten en vergelijkbare). Het proces draait als gebruiker zonder rootrechten. Extra systeempakketten geef je op in een Aptfile of project.toml.
Wat een build doet
- Bekijkt de bestanden in de Base directory en kiest de eerste passende taalgroep.
- Kiest een runtime op basis van je vastgezette versie (of de standaardversie) en installeert die versie.
- Installeert dependencies uit de lockfile of het manifest.
- Draait de build van de taal (assets,
mix release,go buildenzovoort). - Stelt een standaard
web-proces in. Een Procfile overschrijft dat.
Je app moet luisteren op PORT. Nodion stelt die variabele in. De meeste standaardcommando's vallen terug op 8080 als die niet is ingesteld.
Detectie
Groepen worden van boven naar beneden geprobeerd. De eerste groep waarvan alle vereiste bestanden aanwezig zijn, wint. Extra Debian-pakketten zijn in elke groep optioneel.
| Aanwezig in de repository | Nodion gebruikt |
|---|---|
package.json en een statische frontend | Node.js, daarna statische site |
composer.json en package.json | PHP plus Node (bijvoorbeeld Laravel met Vite) |
Gemfile en package.json | Ruby plus Node (Rails met JS) |
composer.json | PHP |
Gemfile | Ruby |
requirements.txt, Pipfile of pyproject.toml | Python |
go.mod | Go |
Cargo.toml | Rust |
mix.exs | Elixir |
pom.xml of Gradle-bestanden | Java |
*.csproj, *.fsproj of *.sln | .NET |
Alleen package.json (een server-app) | Node.js |
static.toml en geen package.json | Statische site |
Alleen een Procfile | Je eigen procestypes, zonder taalruntime |
De scan in het dashboard waarschuwt als er geen herkenbaar bestand wordt gevonden. Je kunt nog steeds Buildpacks kiezen, overstappen op een Dockerfile of een andere Base directory instellen.
Ondersteunde versies
Nodion houdt een versielijn van een taal aan zolang die niet end-of-life is, en tot drie maanden daarna. Vraag je een minorversie aan, dan krijg je de nieuwste gepubliceerde patch van die minor. Vraag je een versie onder de oudste gepubliceerde lijn aan, dan krijg je een end-of-life-fout. Vraag je een versie aan die nog niet is gebouwd, dan krijg je de foutmelding dat die nog niet beschikbaar is.
Go en Rust zijn uitzonderingen: de nieuwste gepubliceerde toolchain bouwt de app. Oudere waarden in go.mod of rust-version compileren nog steeds.
De lijnen hieronder zijn actueel per september 2026. Patches veranderen zodra we ze publiceren. Zet je versie vast met een bestand van de taalpagina als je een specifieke minorversie nodig hebt.
| Taal | Standaard | Gepubliceerde lijnen |
|---|---|---|
| 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 | Nieuwste toolchain (nu 1.25-1.27) |
| Rust | 1.96 | Nieuwste toolchain (nu 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, standaard 28) |
Procfile
Een Procfile in de Base directory definieert procestypes. web is de standaard als die bestaat, anders de eerste regel. Taalstandaarden gelden alleen als er geen Procfile is.
web: gunicorn myapp.wsgi --bind 0.0.0.0:$PORT
worker: python worker.py Elk type is een eigen proces van de app. Replica's en het commando stel je in op het tabblad Processes.
Extra Debian-pakketten
Gebruik bij voorkeur project.toml. Een Aptfile (één pakket of .deb-URL per regel) werkt nog steeds. Bestaan ze allebei, dan wint project.toml.
[com.nodion.buildpacks.deb-packages]
install = ["ffmpeg", "pandoc"]
Pakketten worden in de image uitgepakt. Maintainer-scripts worden niet uitgevoerd, dus pakketten die systeemgebruikers aanmaken of services starten, werken niet. Een directe https://…/*.deb-URL wordt ongewijzigd gedownload, zonder dat dependencies worden opgelost.