Linguagem Frankfurt, Alemanha
Ligue um repositório com um package.json e a Nodion faz o build com o buildpack de Node.js: instala as dependências a partir do lockfile, executa o seu script build e inicia o servidor com o seu script start. É assim que funcionam o Express, o Fastify, o Hono e outros servidores Node.js, e também os projetos Bun. A aplicação é executada em Frankfurt, junto a uma base de dados PostgreSQL gerida, se precisar de uma.
package.json sem framework frontend estáticostart, caso contrário node server.js, index.js ou app.jsPORT para o processo web e envia o tráfego para lá. Leia essa variável e ponha o servidor a escutar em 0.0.0.0. O Fastify escuta em localhost por omissão, por isso passe host: '0.0.0.0' a listen. server.js const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("ok"));
const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0"); package-lock.json, yarn.lock, pnpm-lock.yaml ou bun.lock; sem lockfile, o build falha. A Nodion executa o script start diretamente, por isso os hooks do npm como prestart não são executados. Sem script start, os frameworks conhecidos como o Nuxt têm o seu próprio comando predefinido; tudo o resto arranca com node server.js, index.js ou app.js e, em último caso, com node .. As dependências de desenvolvimento são removidas depois do build, por isso as ferramentas de que precisa em runtime, como tsx ou uma CLI de migrações, ficam em dependencies. package.json "scripts": {
"start": "node server.js"
} build e não existir nenhum dos ficheiros server.js, app.js, index.js, src/server.js, src/index.js ou src/app.js, a Nodion trata o repositório como um site estático e não inicia o seu servidor. Um servidor TypeScript que o tsc compila para dist/ tem exatamente este aspeto. Adicione junto ao package.json um index.js que carregue o servidor compilado (o excerto precisa de "type": "module"; em CommonJS, escreva require("./dist/server.js")) e aponte o script start para o ficheiro compilado, por exemplo node dist/server.js, e não para uma ferramenta de desenvolvimento. index.js import "./dist/server.js"; DATABASE_URL. Uma linha release: num Procfile é executada uma vez por build, depois do build e antes de a nova versão arrancar; se falhar, a versão em execução continua online. Procfile release: npm run migrate / responde com um estado 2xx ou 3xx. Se a sua API responder 404 em /, adicione uma rota como /health e defina-a como caminho do health check nas definições da aplicação. vite em dependencies ou devDependencies, a Nodion faz o build do repositório como site estático e publica apenas o resultado do build, mesmo que exista um server.js. O mesmo vale para Angular, Gatsby, Create React App e Eleventy. Para um servidor Node.js que também faz o build de um frontend Vite, use um Dockerfile.bun.lock, a Nodion instala as dependências e executa o build com o Bun. Mesmo assim, a aplicação arranca através do script start, por isso o script tem de chamar o Bun, por exemplo "start": "bun run index.ts"; sem script start, a Nodion inicia a aplicação com node. A regra do ficheiro de entrada acima também se aplica aos projetos Bun.web: node server.js e worker: node worker.js num Procfile; sem uma linha web:, a primeira entrada do Procfile que não seja release: passa a ser o comando predefinido. Depois, adicione no separador Processes um processo chamado worker sem porta. O Valkey na mesma região dá à sua fila um REDIS_URL.DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL. release: do Procfile é executada a cada novo build. As aplicações com Dockerfile, bem como os redeploys ou rollbacks para uma imagem anterior, usam um comando de release definido na própria aplicação, que também tem prioridade sobre a linha do Procfile. Nos sites estáticos, a etapa de release é executada numa imagem que contém apenas os ficheiros gerados pelo build. A Nodion encontrou um script build mas nenhum dos ficheiros de entrada server.js, app.js ou index.js (também procurados em src/), ou então um framework frontend estático como o Vite no package.json. Adicione junto ao package.json um index.js que carregue o seu servidor compilado; com o Vite no mesmo package.json, use um Dockerfile.
Node.js 24, a menos que escolha outra. A Nodion lê .node-version, .nvmrc e engines.node, por esta ordem. Um intervalo resolve-se para a versão compatível mais recente, por isso "node": ">=20" fica com Node.js 26; escreva 24 no .nvmrc para ficar na 24.
Sim. A Nodion escolhe o gestor de pacotes a partir do lockfile (pnpm-lock.yaml, yarn.lock, bun.lock ou package-lock.json) e instala exatamente as versões que ele indica. Os projetos Bun também precisam de um script start que chame bun.
Na região EU Central, em Frankfurt (Alemanha). O build, o registry, a aplicação e as respetivas bases de dados, volumes, buckets, logs e métricas ficam nessa região, e a API e o plano de controlo da Nodion estão alojados na Alemanha. A Nodion GmbH tem sede em Stuttgart.
A Nodion cria as condições para isso: a Nodion GmbH tem sede em Stuttgart (Alemanha); na região de Frankfurt, a aplicação, as bases de dados e os volumes são executados na Alemanha. O acordo de tratamento de dados (DPA, art. 28.º do RGPD) é celebrado eletronicamente no dashboard. A conformidade da sua utilização depende também da forma como configura e utiliza a aplicação.
Uma instância da aplicação custa a partir de 1 EUR por mês. A configuração apresentada no quadro de custos custa 3.50 EUR por mês: Aplicação 2 EUR, PostgreSQL 1.50 EUR. Os preços não incluem IVA e a faturação é ao segundo. Pode escolher tamanhos maiores ou mais instâncias sempre que precisar.
Sim. Cada aplicação recebe um hostname atribuído por omissão com HTTPS. Adicione o seu próprio domínio no separador Domains da aplicação; o certificado TLS é emitido e renovado automaticamente.
Ganhe até 15 € de crédito ao registar-se.
ou com e-mail
Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.
Subscrição efetuada com sucesso.