Lenguaje Fráncfort, Alemania
Conecta un repositorio con un package.json y Nodion hace la build con su buildpack de Node.js: instala tus dependencias desde el lockfile, ejecuta tu script build y arranca el servidor con tu script start. Así funcionan Express, Fastify, Hono y otros servidores Node.js, y también los proyectos Bun. La app se ejecuta en Fráncfort, junto a una base de datos PostgreSQL gestionada si la necesitas.
package.json sin framework frontend estáticostart; si no, node server.js, index.js o app.jsPORT para el proceso web y envía allí el tráfico. Lee la variable y enlaza el servidor a 0.0.0.0. Fastify escucha en localhost por defecto, así que pasa 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; sin lockfile, la build falla. Nodion ejecuta el script start directamente, por lo que los hooks de npm como prestart no se ejecutan. Sin script start, los frameworks conocidos como Nuxt usan su propio comando por defecto; todo lo demás arranca con node server.js, index.js o app.js y, como último recurso, con node .. Las dependencias de desarrollo se eliminan después de la build, así que las herramientas que necesitas en tiempo de ejecución, como tsx o una CLI de migraciones, van en dependencies. package.json "scripts": {
"start": "node server.js"
} build y no existe ninguno de los archivos server.js, app.js, index.js, src/server.js, src/index.js o src/app.js, Nodion trata el repositorio como un sitio estático y no arranca tu servidor. Un servidor TypeScript que tsc compila en dist/ tiene exactamente ese aspecto. Añade junto al package.json un index.js que cargue el servidor compilado (el fragmento necesita "type": "module"; en CommonJS escribe require("./dist/server.js")) y haz que el script start apunte al archivo compilado, por ejemplo node dist/server.js, no a una herramienta de desarrollo. index.js import "./dist/server.js"; DATABASE_URL. Una línea release: en un Procfile se ejecuta una vez por build, después de la build y antes de que arranque la nueva versión; si falla, la versión en ejecución sigue activa. Procfile release: npm run migrate / responde con un estado 2xx o 3xx. Si tu API responde 404 en /, añade una ruta como /health y defínela como ruta de health check en los ajustes de la app. vite figura en dependencies o devDependencies, Nodion hace la build del repositorio como sitio estático y solo publica el resultado de la build, aunque exista un server.js. Lo mismo vale para Angular, Gatsby, Create React App y Eleventy. Para un servidor Node.js que además compila un frontend Vite, usa un Dockerfile.bun.lock, Nodion instala tus dependencias y ejecuta la build con Bun. Aun así, la app arranca mediante el script start, por lo que el script tiene que llamar a Bun, por ejemplo "start": "bun run index.ts"; sin él, Nodion arranca la app con node. La regla del archivo de entrada de arriba también se aplica a los proyectos Bun.web: node server.js y worker: node worker.js en un Procfile; sin una línea web:, la primera entrada del Procfile distinta de release: pasa a ser el comando por defecto. Después añade en la pestaña Processes un proceso llamado worker sin puerto. Valkey en la misma región le da a tu cola una REDIS_URL.DATABASE_URL, REDIS_URL o CLICKHOUSE_URL. release: del Procfile se ejecuta con cada nueva build. Las apps con Dockerfile, así como los redeploys o rollbacks a una imagen anterior, usan un comando de release definido en la propia app, que además tiene prioridad sobre la línea del Procfile. En los sitios estáticos, el paso de release se ejecuta en una imagen que solo contiene los archivos generados por la build. Nodion ha encontrado un script build sin ninguno de los archivos de entrada server.js, app.js o index.js (también los busca en src/), o bien un framework de frontend estático como Vite en el package.json. Añade junto al package.json un index.js que cargue tu servidor compilado; si Vite está en el mismo package.json, usa un Dockerfile.
Node.js 24, salvo que elijas otra. Nodion lee .node-version, .nvmrc y engines.node, en ese orden. Un rango selecciona la versión más reciente compatible, así que "node": ">=20" obtiene Node.js 26; escribe 24 en .nvmrc para quedarte en la 24.
Sí. Nodion elige el gestor de paquetes según el lockfile (pnpm-lock.yaml, yarn.lock, bun.lock o package-lock.json) e instala exactamente las versiones que indica. Los proyectos Bun necesitan además un script start que llame a bun.
En la región EU Central, en Fráncfort (Alemania). La build, el registry, la app y sus bases de datos, volúmenes, buckets, logs y métricas permanecen en esa región. La API y el plano de control de Nodion están alojados en Alemania. Nodion GmbH tiene su sede en Stuttgart.
Nodion te ofrece las bases para ello: Nodion GmbH tiene su sede en Stuttgart (Alemania); en la región de Fráncfort, la app, sus bases de datos y sus volúmenes se ejecutan en Alemania. Puedes formalizar electrónicamente el DPA (contrato de encargo del tratamiento, art. 28 del RGPD) en el dashboard. Que tu uso cumpla el RGPD también depende de cómo configures y uses la app.
Una instancia de app cuesta desde 1 EUR al mes. La configuración del recuadro de costes cuesta 3.50 EUR al mes: App 2 EUR, PostgreSQL 1.50 EUR. Los precios no incluyen IVA y la facturación es por segundo. Puedes elegir tamaños mayores o más instancias cuando lo necesites.
Sí. Cada app recibe un nombre de host predeterminado con HTTPS. Añade tu propio dominio en la pestaña Domains de la app; el certificado TLS se emite y se renueva automáticamente.
Hasta 15 € de crédito al registrarte.
o con tu email
Novedades del producto, sin spam. Puedes darte de baja cuando quieras.
Suscripción completada.