Buildpacki
Zrób commit kodu. Nodion wykrywa język, instaluje runtime i buduje obraz.
W Applications → New połącz repozytorium Giti wybierz Buildpacks. Nodion używa domyślnego buildera, chyba że wybierzesz inny. W monorepo ustaw Base directory na folder aplikacji.
Użyj Dockerfilezamiast buildpacków, jeśli już go masz albo jeśli repozytorium nie ma struktury obsługiwanego języka.
Czym są
Nodion Buildpacks to Cloud Native Buildpacks. Fazy detect, build i launch są zgodne z tą specyfikacją. Buildpacki językowe, stack Ubuntu i wersje runtime'ów są opracowywane przez Nodion. To nie są buildpacki Paketo, Heroku ani Google.
Aktualny stack to nodion-26: Ubuntu 26.04 LTS. Obraz buildu zawiera kompilatory i pliki nagłówkowe. Obraz uruchomieniowy (run image) zawiera popularne biblioteki klienckie (Postgres, MySQL, ImageMagick, certyfikaty CA i podobne). Proces działa jako użytkownik bez uprawnień roota. Dodatkowe pakiety systemowe dodaj przez Aptfile lub project.toml.
Co robi build
- Sprawdza pliki w Base directory i wybiera pierwszą pasującą grupę językową.
- Ustala runtime na podstawie przypiętej wersji (lub domyślnej), a potem instaluje tę wersję.
- Instaluje zależności na podstawie pliku lockfile lub manifestu.
- Uruchamia build właściwy dla języka (assety,
mix release,go buildi tak dalej). - Ustawia domyślny proces
web. Procfile go nadpisuje.
Twoja aplikacja musi nasłuchiwać na PORT. Nodion ustawia tę zmienną. Jeśli nie jest ustawiona, większość domyślnych poleceń używa portu 8080.
Wykrywanie
Grupy są sprawdzane od góry. Wybierana jest pierwsza grupa, dla której znaleziono wszystkie wymagane pliki. W każdej grupie możesz opcjonalnie dodać pakiety Debiana.
| Jeśli repozytorium zawiera | Nodion używa |
|---|---|
package.json i statyczny frontend | Node.js, potem strona statyczna |
composer.json i package.json | PHP plus Node (na przykład Laravel z Vite) |
Gemfile i package.json | Ruby plus Node (Rails z JS) |
composer.json | PHP |
Gemfile | Ruby |
requirements.txt, Pipfile lub pyproject.toml | Python |
go.mod | Go |
Cargo.toml | Rust |
mix.exs | Elixir |
pom.xml lub pliki Gradle | Java |
*.csproj, *.fsproj lub *.sln | .NET |
Tylko package.json (aplikacja serwerowa) | Node.js |
static.toml i brak package.json | Strona statyczna |
Tylko Procfile | Twoje typy procesów, bez instalacji języka |
Skan w dashboardzie ostrzega, gdy nie znajdzie żadnego obsługiwanego pliku wskazującego język. Nadal możesz wybrać Buildpacks, przełączyć się na Dockerfile albo ustawić inny Base directory.
Obsługiwane wersje
Nodion utrzymuje linię języka do końca jej wsparcia (end-of-life) i jeszcze przez maksymalnie trzy miesiące. Jeśli wskażesz wersję minor, otrzymasz jej najnowszą opublikowaną wersję poprawkową. Build z wersją starszą niż najstarsza opublikowana linia kończy się błędem end-of-life. Build z wersją nowszą niż wszystkie dotąd zbudowane kończy się błędem „jeszcze niedostępna”.
Wyjątkiem są Go i Rust: aplikację buduje najnowszy opublikowany toolchain. Starsze wartości w go.mod lub rust-version nadal się kompilują.
Poniższe linie są aktualne według stanu na wrzesień 2026. Wersje poprawkowe zmieniają się wraz z nowymi publikacjami. Jeśli zależy Ci na konkretnej wersji minor, przypnij ją w pliku opisanym na stronie danego języka.
| Język | Domyślnie | Opublikowane linie |
|---|---|---|
| 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 | Najnowszy toolchain (obecnie 1.25-1.27) |
| Rust | 1.96 | Najnowszy toolchain (obecnie 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, domyślnie 28) |
Procfile
Procfile w Base directory definiuje typy procesów. Domyślnym procesem jest web, jeśli istnieje, a w przeciwnym razie pierwsza linia. Domyślne ustawienia języka obowiązują tylko wtedy, gdy nie ma Procfile.
web: gunicorn myapp.wsgi --bind 0.0.0.0:$PORT
worker: python worker.py Każdy typ to osobny proces aplikacji. Liczbę replik i polecenie ustawiasz w zakładce Processes.
Dodatkowe pakiety Debiana
Najlepiej użyj project.toml. Aptfile (jeden pakiet lub URL .deb na linię) nadal działa. Jeśli istnieją oba, wygrywa project.toml.
[com.nodion.buildpacks.deb-packages]
install = ["ffmpeg", "pandoc"]
Pakiety są rozpakowywane do obrazu. Skrypty opiekunów pakietów nie są uruchamiane, więc pakiety, które tworzą użytkowników systemowych lub uruchamiają usługi, nie będą działać. Pakiet z bezpośredniego adresu URL https://…/*.deb jest pobierany bez zmian i bez rozwiązywania zależności.