Buildpacks

Faça commit do código. A Nodion deteta a linguagem, instala um runtime e cria uma imagem.

Em Applications → New, ligue um repositório Gite escolha Buildpacks. A Nodion usa o builder por omissão, a menos que escolha outro. Num monorepo, aponte Base directory para a pasta da aplicação.

Opte por um Dockerfilese já tiver um, ou se o repositório não corresponder a uma linguagem suportada.

O que são

Os Nodion Buildpacks são Cloud Native Buildpacks. As fases detect, build e launch seguem essa especificação. Os buildpacks de linguagem, a stack Ubuntu e as versões de runtime são da própria Nodion. Não são buildpacks Paketo, Heroku nem Google.

A stack atual é nodion-26: Ubuntu 26.04 LTS. A imagem de build tem compiladores e ficheiros de cabeçalho. A imagem de execução (run image) tem as bibliotecas cliente habituais (Postgres, MySQL, ImageMagick, certificados CA e semelhantes). O processo é executado como utilizador sem privilégios de root. Os pacotes de sistema adicionais vão num Aptfile ou em project.toml.

O que faz um build

  1. Analisa os ficheiros do Base directory e escolhe o primeiro grupo de linguagem correspondente.
  2. Determina um runtime a partir da versão fixada (ou da versão por omissão) e instala essa versão.
  3. Instala as dependências a partir do lockfile ou do manifesto.
  4. Executa o build da linguagem (assets, mix release, go build, etc.).
  5. Define um processo web por omissão. Um Procfile substitui-o.

A aplicação deve escutar em PORT. A Nodion define esta variável. A maioria dos comandos por omissão usa 8080 se ela não estiver definida.

Deteção

Os grupos são testados de cima para baixo. É escolhido o primeiro grupo cujos ficheiros obrigatórios estejam todos presentes. Os pacotes Debian adicionais são opcionais em todos os grupos.

Se o repositório tiver A Nodion usa
package.json e um frontend estático Node.js, depois site estático
composer.json e package.json PHP mais Node (por exemplo, Laravel com Vite)
Gemfile e package.json Ruby mais Node (Rails com 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 ficheiros Gradle Java
*.csproj, *.fsproj ou *.sln .NET
Só package.json (uma aplicação de servidor) Node.js
static.toml e nenhum package.json Site estático
Só Procfile Os seus tipos de processo, sem instalação de linguagem

A análise do dashboard avisa se não encontrar nenhum marcador suportado. Pode na mesma escolher Buildpacks, mudar para um Dockerfile ou definir outro Base directory.

Versões suportadas

A Nodion mantém uma linha de uma linguagem enquanto não atingir o fim de vida (end-of-life) e até três meses depois. Se pedir uma versão minor, obtém o patch publicado mais recente dessa minor. Uma versão abaixo da linha publicada mais antiga falha por estar em fim de vida. Uma versão mais recente do que qualquer uma já compilada falha por ainda não estar disponível.

O Go e o Rust são a exceção: a toolchain publicada mais recente compila a aplicação. Valores mais antigos em go.mod ou rust-version continuam a compilar.

As linhas abaixo estão atualizadas à data de setembro de 2026. Os patches mudam à medida que os publicamos. Se precisar de uma versão minor específica, fixe-a com um dos ficheiros indicados na página da linguagem.

Linguagem Por omissão Linhas publicadas
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 mais recente (atualmente 1.25-1.27)
Rust 1.96 Toolchain mais recente (atualmente 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 por omissão)

Procfile

Um Procfile no Base directory define os tipos de processo. A entrada web é usada por omissão, se existir; caso contrário, é usada a primeira linha. Os valores por omissão da linguagem só se aplicam quando não há Procfile.

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

Cada tipo é um processo próprio na aplicação. Ajuste as réplicas e o comando no separador Processes.

Pacotes Debian adicionais

Dê preferência a project.toml. Um Aptfile (um pacote ou URL .deb por linha) continua a funcionar. Se existirem os dois, prevalece project.toml.

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

Os pacotes são extraídos para a imagem. Os scripts de manutenção (maintainer scripts) não são executados, por isso os pacotes que criam utilizadores de sistema ou iniciam serviços não funcionam. Um URL direto https://…/*.deb é descarregado tal como está, sem resolução de dependências.

Dê uma cloud ao seu agente.

Ganhe até 15 € de crédito ao registar-se.

Continuar com o GitHub

ou com e-mail

Fique a par das novidades.

Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.