Linguaggio Francoforte, Germania
Collega un repository con un package.json e Nodion ne fa la build con il suo buildpack Node.js: installa le dipendenze dal lockfile, esegue il tuo script build e avvia il server con il tuo script start. Così funzionano Express, Fastify, Hono e altri server Node.js, e anche i progetti Bun. L'app gira a Francoforte, accanto a un database PostgreSQL gestito se ti serve.
package.json senza framework frontend staticostart, altrimenti node server.js, index.js o app.jsPORT per il processo web e invia lì il traffico. Leggi la variabile e metti il server in ascolto su 0.0.0.0. Fastify ascolta su localhost per impostazione predefinita, quindi passa 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 o bun.lock; senza lockfile la build fallisce. Nodion esegue direttamente lo script start, quindi gli hook npm come prestart non vengono eseguiti. Senza script di avvio, i framework noti come Nuxt usano un loro comando predefinito; tutto il resto parte con node server.js, index.js o app.js e, come ultima opzione, con node .. Le dipendenze di sviluppo vengono rimosse dopo la build, quindi gli strumenti che ti servono a runtime, come tsx o una CLI di migrazione, vanno in dependencies. package.json "scripts": {
"start": "node server.js"
} build e non esiste nessuno dei file server.js, app.js, index.js, src/server.js, src/index.js o src/app.js, Nodion tratta il repository come sito statico e non avvia il tuo server. Un server TypeScript che tsc compila in dist/ si presenta esattamente così. Aggiungi accanto al package.json un index.js che carica il server compilato (lo snippet richiede "type": "module"; in CommonJS scrivi require("./dist/server.js")) e fai puntare lo script di avvio al file compilato, per esempio node dist/server.js, non a uno strumento di sviluppo. index.js import "./dist/server.js"; DATABASE_URL. Una riga release: in un Procfile viene eseguita una volta per ogni build, dopo la build e prima che parta la nuova versione; se fallisce, la versione in esecuzione resta online. Procfile release: npm run migrate / risponde con uno stato 2xx o 3xx. Se la tua API risponde 404 su /, aggiungi una route come /health e impostala come percorso di health check nelle impostazioni dell'app. vite in dependencies o devDependencies, Nodion fa la build del repository come sito statico e pubblica solo l'output della build, anche se esiste un server.js. Lo stesso vale per Angular, Gatsby, Create React App ed Eleventy. Per un server Node.js che fa anche la build di un frontend Vite, usa un Dockerfile.bun.lock, Nodion installa le dipendenze ed esegue la build con Bun. L'app però parte sempre tramite lo script di avvio, quindi lo script deve chiamare Bun, per esempio "start": "bun run index.ts"; senza script, Nodion avvia l'app con node. La regola sul file di ingresso descritta sopra vale anche per i progetti Bun.web: node server.js e worker: node worker.js in un Procfile; senza una riga web:, la prima voce del Procfile diversa da release: diventa il comando predefinito. Poi aggiungi nella scheda Processes un processo chiamato worker senza porta. Valkey nella stessa regione dà alla tua coda un REDIS_URL.DATABASE_URL, REDIS_URL o CLICKHOUSE_URL. release: del Procfile viene eseguita a ogni nuova build. Le app con Dockerfile, così come i redeploy e i rollback a un'immagine precedente, usano un comando di release impostato sull'app stessa, che ha anche la precedenza sulla riga del Procfile. Nei siti statici, la fase di release gira in un'immagine che contiene solo i file generati dalla build. Nodion ha trovato uno script build ma nessuno dei file di ingresso server.js, app.js o index.js (cercati anche in src/), oppure ha trovato nel package.json un framework frontend statico come Vite. Aggiungi accanto al package.json un index.js che carica il server compilato; con Vite nello stesso package.json, usa un Dockerfile.
Node.js 24, a meno che tu non ne scelga un'altra. Nodion legge .node-version, .nvmrc ed engines.node, in quest'ordine. Un intervallo si risolve nella release più recente compatibile, quindi "node": ">=20" porta a Node.js 26; scrivi 24 in .nvmrc per restare sulla 24.
Sì. Nodion sceglie il package manager in base al lockfile (pnpm-lock.yaml, yarn.lock, bun.lock o package-lock.json) e installa esattamente le versioni che contiene. I progetti Bun hanno bisogno anche di uno script di avvio che chiami bun.
Nella regione EU Central a Francoforte, in Germania. La build, il registry, l'app e i suoi database, volumi, bucket, log e metriche restano in quella regione. L'API e il control plane di Nodion sono ospitati in Germania. Nodion GmbH ha sede a Stoccarda.
Nodion offre le basi per farlo: Nodion GmbH ha sede a Stoccarda, in Germania; nella regione di Francoforte l'app, i suoi database e i volumi girano in Germania; puoi sottoscrivere il DPA (accordo sul trattamento dei dati, art. 28 GDPR) in formato elettronico nella dashboard. La conformità del tuo utilizzo dipende anche da come configuri e usi l'app.
Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 3.50 EUR al mese: App 2 EUR, PostgreSQL 1.50 EUR. I prezzi sono IVA esclusa e la fatturazione è al secondo. Puoi scegliere dimensioni più grandi o più istanze quando ti servono.
Sì. Ogni app riceve un hostname predefinito con HTTPS. Aggiungi il tuo dominio nella scheda Domains dell'app; il certificato TLS viene emesso e rinnovato automaticamente.
Fino a 15 € di credito quando ti registri.
oppure con l'email
Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.
Iscrizione completata.