Langage Francfort, Allemagne
Connectez un dépôt contenant un package.json et Nodion le construit avec son buildpack Node.js : il installe vos dépendances à partir du lockfile, exécute votre script build et démarre le serveur avec votre script start. Express, Fastify, Hono et les autres serveurs Node.js fonctionnent ainsi, tout comme les projets Bun. L'app tourne à Francfort, à côté d'une base de données PostgreSQL managée si vous en avez besoin.
package.json sans framework frontend statiquestart, sinon node server.js, index.js ou app.jsPORT pour le processus web et y envoie le trafic. Lisez cette variable et liez le serveur à 0.0.0.0. Fastify écoute par défaut sur localhost : passez donc host: '0.0.0.0' à 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 ; sans lockfile, le build échoue. Nodion exécute directement le script start, les hooks npm comme prestart ne s'exécutent donc pas. Sans script start, les frameworks connus comme Nuxt ont leur propre commande par défaut ; tout le reste démarre avec node server.js, index.js ou app.js, et en dernier recours avec node .. Les dépendances de développement sont supprimées après le build : les outils dont vous avez besoin à l'exécution, comme tsx ou une CLI de migration, vont dans dependencies. package.json "scripts": {
"start": "node server.js"
} build et qu'aucun des fichiers server.js, app.js, index.js, src/server.js, src/index.js ou src/app.js n'existe, Nodion traite le dépôt comme un site statique et ne démarre pas votre serveur. Un serveur TypeScript que tsc compile dans dist/ correspond exactement à ce cas. Ajoutez à côté de package.json un index.js qui charge le serveur compilé (l'extrait nécessite "type": "module" ; en CommonJS, écrivez require("./dist/server.js")), et faites pointer le script start vers le fichier compilé, par exemple node dist/server.js, et non vers un outil de développement. index.js import "./dist/server.js"; DATABASE_URL. Une ligne release: dans un Procfile s'exécute une fois par build, après le build et avant le démarrage de la nouvelle version ; si elle échoue, la version en cours reste en ligne. Procfile release: npm run migrate / renvoie un code 2xx ou 3xx. Si votre API répond 404 sur /, ajoutez une route comme /health et définissez-la comme chemin de health check dans les paramètres de l'app. vite dans dependencies ou devDependencies, Nodion construit le dépôt comme un site statique et ne publie que le résultat du build, même si un server.js existe. Il en va de même pour Angular, Gatsby, Create React App et Eleventy. Pour un serveur Node.js qui construit aussi un frontend Vite, utilisez un Dockerfile.bun.lock, Nodion installe vos dépendances et lance le build avec Bun. L'app démarre toutefois via le script start, qui doit donc appeler Bun, par exemple "start": "bun run index.ts" ; sans script start, Nodion démarre l'app avec node. La règle du fichier d'entrée ci-dessus s'applique aussi aux projets Bun.web: node server.js et worker: node worker.js dans un Procfile ; sans ligne web:, la première entrée du Procfile autre que release: devient la commande par défaut. Ajoutez ensuite, dans l'onglet Processes, un processus nommé worker sans port. Valkey dans la même région fournit un REDIS_URL à votre file d'attente.DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL. release: du Procfile s'exécute à chaque nouveau build. Les apps Dockerfile, ainsi que les redéploiements ou les rollbacks vers une image antérieure, utilisent une commande de release définie sur l'app elle-même, qui prime aussi sur la ligne du Procfile. Sur les sites statiques, l'étape de release s'exécute dans une image qui ne contient que les fichiers générés par le build. Nodion a trouvé un script build mais aucun des fichiers d'entrée server.js, app.js ou index.js (également recherchés dans src/), ou bien un framework frontend statique comme Vite dans package.json. Ajoutez à côté de package.json un index.js qui charge votre serveur compilé ; si Vite figure dans le même package.json, utilisez un Dockerfile.
Node.js 24, sauf si vous en choisissez une autre. Nodion lit .node-version, .nvmrc et engines.node, dans cet ordre. Une plage de versions est résolue vers la version compatible la plus récente : "node": ">=20" donne donc Node.js 26 ; écrivez 24 dans .nvmrc pour rester sur la 24.
Oui. Nodion choisit le gestionnaire de paquets d'après le lockfile (pnpm-lock.yaml, yarn.lock, bun.lock ou package-lock.json) et installe exactement les versions qu'il indique. Les projets Bun ont aussi besoin d'un script start qui appelle bun.
Dans la région EU Central, à Francfort (Allemagne). Le build, le registry, l'app et ses bases de données, volumes, buckets, logs et métriques restent dans cette région. L'API et le plan de contrôle de Nodion sont hébergés en Allemagne. Nodion GmbH a son siège à Stuttgart.
Nodion en pose les bases : Nodion GmbH a son siège à Stuttgart (Allemagne). Dans la région de Francfort, l'app, ses bases de données et ses volumes fonctionnent en Allemagne. Vous concluez le DPA (accord de traitement des données, art. 28 RGPD) par voie électronique dans le dashboard. La conformité de votre déploiement dépend aussi de la façon dont vous configurez et utilisez l'app.
Une instance d'app coûte à partir de 1 EUR par mois. La configuration présentée dans l'encadré des coûts revient à 3.50 EUR par mois : App 2 EUR, PostgreSQL 1.50 EUR. Les prix sont HT, avec une facturation à la seconde. Vous pouvez choisir des tailles plus grandes ou davantage d'instances dès que vous en avez besoin.
Oui. Chaque app reçoit un nom d'hôte par défaut avec HTTPS. Ajoutez votre propre domaine dans l'onglet Domains de l'app. Le certificat TLS est émis et renouvelé automatiquement.
Jusqu'à 15 € de crédit de bienvenue à l'inscription.
ou par e-mail
Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.
Inscription confirmée.